Я пытаюсь перенести сайт ExpressionEngine на новый сервер и, похоже, столкнулся с препятствием. Для желаемой функциональности EE требуется AcceptPathInfo
директиву, которую нужно включить, и, хоть убей, я не могу заставить Apache сотрудничать.
Сервер работает под управлением Fedora Core 18, Apache 2.4.3 с модулем Apache PHP 5.4.11.
Я пробовал установить следующее в конфигурации своего виртуального хоста:
<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()
, он по-прежнему не показывает path_info, orig_path_info или orig_path_info_translated (которые, как я полагаю, создаются в результате включения директивы AcceptPathInfo).
Я также пробовал просто установить директиву AcceptPathInfo
В моем файле .htaccess, но все равно безрезультатно.
Я просматривал настройки между своими средами Dev и Live, и кажется, что сервер Dev работает с PHP с использованием FastCGI и использует cgi.fix_pathinfo.
Обычно я достаточно уверен в том, что возился с моими httpd.conf и php.ini, но на данный момент я гораздо дальше по кроличьей норе, чем мне комфортно. Что мне здесь не хватает?
Включить AcceptPathInfo
в Apache (p.ex Moodle 2.9) вам нужно будет изменить httpd.conf, например:
Для версий Apache ранее, чем 2.4:
<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>