Назад | Перейти на главную страницу

Кажется, не удается установить AcceptPathInfo в Apache

Я пытаюсь перенести сайт 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>