首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Apache的默认页面更改为PHP

将Apache的默认页面更改为PHP
EN

Stack Overflow用户
提问于 2011-08-27 05:48:16
回答 2查看 1.6K关注 0票数 0

我期待着改变阿帕奇的默认页面时,没有索引,并得到一个500错误。我的服务器是Linux Red Hat,带有使用Kloxo和/etc/httpd/conf.d/欢迎.conf设置的客户端,我正在尝试更改:

代码语言:javascript
复制
<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /error/noindex.html
</LocationMatch>

代码语言:javascript
复制
<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /error/noindex.php
</LocationMatch>

在httpd重启后,它会给出一个500错误。我假设它与PHP权限有关,因为文件是以root用户身份上传的,并且用户是特定于某个帐户的。

noindex.html文件运行良好,并且也被设置为根目录。

我知道另一种选择是使用框架目录,但我不想走那条路。

有没有人知道我该怎么做?

谢谢。

编辑:

在错误中出现错误:脚本“/var/www/suPHP/noindex.php”的UID小于min_uid

如果我将权限更改为777,我会得到500错误页面,在日志中只有这条消息:文件"/var/www/ error /noindex.php“可被其他人写入

编辑2:

创建文件400或660和用户ID 501 (lxlabs),我现在得到错误:

文件"/var/www/error/noindex.php“的目标UID (1060)和UID (501)不匹配

我认为lxlabs应该是一个普通用户,但可能没有访问该目录的权限。我不确定如何将/home/kloxo/httpd/error/noindex.php作为目标,因为welcome.conf文件似乎是从/var/www目录开始的。

编辑3:

这也可能会有所帮助。我可以在Virtualhost声明中设置suPHP细节。像这样:

代码语言:javascript
复制
<Virtualhost 123.456.78.90:8888>
SSLEngine On 
SSLCertificateFile /home/kloxo/httpd/ssl/eth0___localhost.crt
SSLCertificateKeyFile /home/kloxo/httpd/ssl/eth0___localhost.key
SSLCACertificatefile /home/kloxo/httpd/ssl/eth0___localhost.ca

DocumentRoot   /home/kloxo/httpd/webmail/
<Ifmodule mod_suphp.c>
SuPhp_UserGroup lxlabs lxlabs
</Ifmodule>
</Virtualhost>

也许我可以在welcome.conf文件中执行类似的操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-16 11:56:56

经过大量的测试和研究,似乎不可能有这样的全局文件。最好的解决办法是在每个用户的框架目录中放置一个文件。

票数 0
EN

Stack Overflow用户

发布于 2011-09-14 10:27:08

解决方案是更改脚本的所有者和权限。用户必须是普通用户。权限必须为660 (用户和组的rw)或400 (r仅限用户)。解释如下。

您正在使用suPHP,这是一个Apache模块,它试图通过以受限权限运行PHP脚本来保护它们。当请求脚本时,suPHP会在执行脚本之前切换到该脚本的所有者。

出于明显的安全原因,suPHP禁止以根用户身份运行脚本。因此,根用户拥有的PHP脚本不能通过Apache访问。这就是脚本的消息UID小于min_uid的含义。suPHP确实更通用一些:它禁止所有特殊用户。Linux为特殊用户保留第一个用户ids。普通用户的ID大于500或1000 (取决于发行版),而root用户的ID通常为0。

出于安全原因,suPHP拒绝运行任何用户都可以修改的脚本。这就是消息“文件可被其他人写入”的含义。可以使用配置参数allow_file_others_writeable来切换此行为,但是使用具有不安全配置的面向安全的模块意义不大。毕竟,suPHP的主要目的是将具有不同文件所有者的应用程序分开。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7210891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档