我正在使用 Plesk 设置服务器,我们希望能够提供一个可公开访问的 phpMyAdmin 副本。
我能确定它会去哪里:
/var/www/vhosts/default/httpsdocs
但是,它将 phpMyAdmin 作为实际的 PHP 文件而不是执行的 PHP 来提供。
在该目录上启用 PHP 执行的最佳/正确方法是什么?
答案1
你没有写你使用什么网络服务器。我假设它是在 RHEL5 上运行的 Apache
首先,您必须检查 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
)。要使此更改生效(重新标记文件系统),您还应该执行semanage fcontext -a -t httpd_sys_content_t /var/www/vhosts/default/httpsdocs(/.*)?
答案2
一种方法是添加一个指令来控制/配置该目录