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

Как включить выполнение PHP в каталоге по умолчанию?

Я настраиваю сервер с помощью Plesk, и мы хотели бы иметь возможность предоставить общедоступную копию phpMyAdmin.

Я смог определить, куда он может пойти:

/var/www/vhosts/default/httpsdocs

Однако он обслуживает phpMyAdmin как фактические файлы PHP, а не как исполняемый PHP.

Какой лучший / правильный способ включить выполнение PHP в этом каталоге?

Один из способов - добавить директиву для управления / настройки этого каталога.

Вы не пишете, какой веб-сервер используете. Я предполагаю, что это Apache, работающий на RHEL5

Во-первых, вы должны проверить, установлен ли модуль php, загружен в apache и правильно ли настроен.

Вы писали, что apache возвращает файлы вместо их выполнения. Это действие по умолчанию для apache, если apache не знает, что делать с файлом особого типа. В конфигурации RHEL apache по умолчанию php загружается из файла /etc/httpd/conf.d/php.conf и файл /etc/httpd/conf/httpd.conf содержит строку Include conf.d/*.conf, который включает все файлы из conf.d реж. Эти строки из php.conf следует раскомментировать:

LoadModule php5_module modules/libphp5.so
AddHandler php5-script .php
AddType text/html .php
DirectoryIndex index.php

Во-вторых, вы должны проверить, не отклоняет ли защита SELinux какие-либо запросы. Если SELinux запрещает доступ к некоторым файлам из apache, вы увидите 403 Forbidden ошибка в вашем браузере. В /var/log/audit/audit.log ты увидишь некоторые avc: denied Сообщения. Вы должны прочитать man httpd_selinux справочная страница. Файлы из каталога /var/www/vhosts/default/httpsdocs должен быть помечен httpd_sys_content_t метка (вы должны выполнить chcon -R -t httpd_sys_content_t). Чтобы сделать это изменение premament (для просмотра перемаркировки файловой системы), вы должны также выполнить semanage fcontext -a -t httpd_sys_content_t /var/www/vhosts/default/httpsdocs(/.*)?