Apache+PHP+THINKPHP框架在windows上的搭建
一、背景
有个老项目用的thinkphp写的,咱也没接触过啊,只能先搭个本地环境测试一下了
二、实操
基础的搭建网上示例挺多的,版本的话按着需要来吧,大同小异。
下面给一个网址,个人觉得非常好的例子
https://blog.csdn.net/zhangtao0417/article/details/81534227主要介绍php+apache的环境搭建
https://blog.csdn.net/zhuanshu666/article/details/74936940[1]主要介绍apache添加CGI功能
现在问题主要,thinkPHP这个框架貌似用的CGI技术(别问我为什么知道,看项目原来配置猜的)。然后由于吃了没文化的亏,一直不知道问题出哪里,一直报下面这个错
接下来就是顿悟时刻了,按照这么多年对于程序的理解,程序得执行啊,按照[1]最后给的一个python示例,我猜想<Directory>里面的配置就是允许apache进行CGI执行相关设置,也就是这几行代码,参看链接【1】
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
然后博主把它的py文件放到了自己设置的directory下面,然后我就尝试着把自己的website,即thinkPHP项目所在的文件夹的directory设置给改了,如下
DocumentRoot "${SRVROOT}/htdocs/"
<Directory "${SRVROOT}/htdocs/">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn‘t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
#Options Indexes FollowSymLinks#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
#AllowOverride None#
# Controls who can get stuff from this server.
#
#Require all granted
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
大概在265行吧,结果成功跳转,具体页面就不放了哈~
三、总结
其实现在想想的话,其实如果thinkPHP用的CGI技术,那么应该给它所在的目录设置相应执行设置即可!有点被链接【1】里面的cgi-bin文件夹惯例给限制思路了。
这次的经历挺有意思的,哈哈哈。
ps:不会使php,CGI是啥也不太懂,就很尴尬啊