这几天测试一个cms,刚好想测试下apache下通过修改.htaccess来达到任意后缀解析为php的点;
由于使用的phpstudy,在测试的时候遇到一些问题,
(1)由于phpstudy都是nts版本,即是no threat safe 非线程安全,
查了下相关资料,配置apache .htaccess需要在线程安全下,即需要php的nt版本,在phpstudy2014下的nt版本测试是ok的:
在ts版本下只需要配置.htaccess为
<FilesMatch ".php5">
SetHandler application/x-httpd-php
</FilesMatch>
或者
AddHandler application/x-httpd-php .php5
httpd.conf中默认配置:
LoadModule rewrite_module modules/mod_rewrite.so
即可
(2)phpstudy2014中php版本过低,无法运行目标程序;只能下载ts版本加载到phpstudy8.0中:
ts版本下载:
https://windows.php.net/download
这边下载php 7.3.33
下载后解压放入phpstudy_pro\Extensions\php\目录下:
同时在phpstudy的设置中能刷新看到7.3.33ts即可:
另外,默认没有php.ini,根据自身需要将php.ini-production或者php.ini-development 修改为php.ini,并修改其中两处:
extension_dir = "D:\phpstudy_pro\Extensions\php\php7.3.33ts\ext"
session.save_path = "D:\phpstudy_pro\Extensions\tmp\tmp"
在站点管理中,选择php版本即可看到:
此时还未结束,配置线程安全还需要配置httpd.conf文件中,添加:
PHPIniDir "D:\phpstudy_pro\Extensions\php\php7.3.33ts"
AddHandler application/x-httpd-php .php .phar
LoadModule php7_module "D:\phpstudy_pro\Extensions\php\php7.3.33ts\php7apache2_4.dll"
注:该处dll为php7apache2_4
,故在设置LoadModule名称时,需设置为php7_module
目前线程安全设置完成,只需在.htaccess中配置:
AddHandler php7-script .php5
需要注意的是,在php7版本环境中,需要设置php7-script
,而非php5-script
即可:
OVER