问候专家和专家,我正在寻找apache php配置问题的一些帮助。
我已经在ubuntu服务器上的apache2设置中运行了几个网站已经有一段时间没有问题,在我的etc / apache2 / conf.d / virtual.conf文件中使用了NameVirtualHost *行。我最近将服务器版本更新到最新的lts版本,我现在无法运行php文件。
我正在运行所有网站的位置“/ home / www / [site-name] / htdocs”,我已经设置并启用了/ etc / apache2 / sites-available中的所有网站。我也禁用了默认网站。
我为每个网站文件指定了以下内容:
# Indexes + Directory Root.
# DirectoryIndex index.html index.htm index.php
DocumentRoot /home/www/[site-name]/htdocs/
# CGI Directory
ScriptAlias /cgi-bin/ /home/www/[site-name]/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
ErrorLog /home/www/[site-name]/logs/error.log
CustomLog /home/www/[site-name]/logs/access.log combined
我重新启动apache并在我的服务器上输入php测试页面的url,我遇到了“内部服务器错误”。当我检查错误日志时,我得到:
脚本“/home/www/[site-name]/htdocs/test.php”解析为“/home/www/[site-name]/htdocs/test.php”,不在配置的docroot中。
答案 0 :(得分:13)
出于某种原因,在查看错误时,suphp出现了很多。根据{{3}}:
不要被愚弄,这与Apche虚拟主机文件根有任何关系,这实际上是suphp配置文件中的另一个设置。包括包含RoundCube脚本的路径修复了这个。例如: 文档根= /无功/网络:在/ usr /共享/ roundcube:在/ var / lib中/ roundcube:$ {HOME} /的public_html
您需要修改/etc/suphp/suphp.conf
文件并将docroot
更改为适当的文件。
答案 1 :(得分:1)
看起来您错过了每个站点名称的虚拟主机配置:
<VirtualHost IP:80>
ServerName yourdomainname
ServerAlias www.yourdomainname
DocumentRoot /home/www/[site-name]/htdocs/
ScriptAlias /cgi-bin/ /home/www/[site-name]/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /home/www/[site-name]/logs/yourdomainname.ua-error.log
CustomLog /home/www/[site-name]/logs/yourdomainname-access.log combined
</VirtualHost>
<Directory "/home/www/[site-name]/htdocs/">
Options FollowSymLinks
AllowOverride None
Order allow,deny
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
答案 2 :(得分:0)
感谢所有的帮助,我最终到了那里。似乎升级到Ubuntu 10.04打开了suPHP。它最终成为一件好事,因为我收到错误的原因归结为我的htdocs中的文件管理变得草率。
要解决我的问题,我必须做几件事:
首先,我在/ etc / apache2 / sites-available / [site-name]中打开了suphp错误消息。这给了我真正的错误,告诉我我的一些页面有错误的权限。然后我将所有文件夹权限设置为www到755,文件设置为644.我还必须将suphp.conf中的min_uid和min_gid文件降低到33。