我试图将一个ExpressionEngine网站迁移到一个新的服务器,似乎已经遇到了障碍。 对于所需的function,EE要求打开AcceptPathInfo指令,对于我来说,似乎无法让Apache协作。
服务器运行Fedora Core 18,Apache 2.4.3和PHP 5.4.11 Apache模块。
我已经尝试在我的虚拟主机configuration中设置以下内容:
<VirtualHost *:80> DocumentRoot /home/mysite/public_html ServerName mysite.com <Directory /home/mysite/public_html/> AcceptPathInfo On Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> </VirtualHost>
但是当我使用phpinfo()debugging时,它仍然不显示path_info,orig_path_info或orig_path_info_translated(我相信这是由于AcceptPathInfo指令被打开而产生的)。
我也尝试在我的.htaccess文件中设置指令AcceptPathInfo On,但仍然无济于事。
我一直在经历Dev和Live环境之间的设置,似乎开发服务器正在使用FastCGI运行PHP并使用cgi.fix_pathinfo。
通常情况下,我对自己的httpd.conf和php.ini做了修改,但是在这一点上,我已经远远低于兔子洞了。 我在这里错过了什么?
要打开Apache中的AcceptPathInfo ,(p.ex Moodle 2.9)需要更改httpd.conf,如下所示:
对于早于2.4的Apache版本:
<VirtualHost *:80> ServerName moodleback.local DocumentRoot "/usr/local/www/moodle" AcceptPathInfo On <Directory /usr/local/www/moodle> AllowOverride None Order Allow,Deny Allow from all </Directory> </VirtualHost>
对于Apache版本2.4.x或更高版本:
<VirtualHost *:80> ServerName moodleback.local DocumentRoot "/usr/local/www/moodle" AcceptPathInfo On <Directory /usr/local/www/moodle/> AllowOverride None Require all granted </Directory> </VirtualHost>