繁体   English   中英

无法解释的PHP错误(内部服务器错误500)

[英]Unexplained PHP error (Internal Server Error 500)

最近,我将站点从共享的Web主机移到了VPS,并配置了apache2 / vsftpd和其他内容。

经过一整天的混乱,我终于可以正常工作了,但是,在浏览器中加载PHP文件时遇到了问题。

PHP未显示任何错误,当我在Chrome浏览器中按F12时,加载加载消息时看到控制台日志闪烁GET: [mydomain]/api/myfile.php 500 (Internal Server Error)

我以为这与我要在文件中尝试执行的操作有关,但是当在表单所在的页面中并且jQuery调用它时,它可以完美地工作。

但是,由于我想返回特定的消息(以及仅这些消息),因此我希望将其放在空白页上,以便可以将它们回显。

因此,我创建了一个新页面,通过vsftpd载了该页面,并在浏览器中打开了它,因为我没有发布任何东西,所以我希望它回显“无POST数据”,就像我在$_POST['userStatus']未设置,但只有一个空白页。

我试图将文件更改为<?php echo "Test"; ?> <?php echo "Test"; ?>但这也不起作用。 我遇到了同样的错误。

我以为可能是www-data的权限无法访问它,

所以我做了chown -R www-data /home/myuser/mysite/public_html ,并重新启动了apache2,但是还是没有运气。 实际上,它禁止我的FTP用户继续上传,因此我不得不使用chown -R myuser /home/myuser/mysite/public_html使其重新工作。

有权限吗? 也许在Apache中配置错误?

自上次正常运行以来,我的.htaccess文件没有更改,因此我不太确定这是否是罪魁祸首。


如果很重要:

我在Debian Wheezy上运行Apache2.2
我的php.ini文件设置为显示错误
我添加了error_reporting(E_ALL)ini_set('display_errors', 1)但仍然没有错误
php -l myfile.php返回No syntax errors detected in myfile.php
当前文件只包含<?php echo "Test"; ?> <?php echo "Test"; ?>还是什么都没有。
FTP用户具有上载,覆盖,删除文件以及创建/删除目录的适当权限
我尝试删除文件/重新上传,重新启动apache,并尝试以root身份创建文件(使用vim
我已经尝试过Empty Cache and Hard Reload以确保它不只是加载页面的缓存版本

该网站的其余部分和子域均可正常运行。


我的/var/log/apache2/error.log文件:

[Mon Jul 27 05:16:45 2015] [error] [client] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 [Mon Jul 27 05:16:45 2015] [error] [client] PHP Fatal error: Unknown: Failed opening required '/path/to/dir/api/myfile.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0


我的.htaccess文件:

 RewriteEngine On Options -Indexes ErrorDocument 404 https://my-main-site/404 ErrorDocument 403 https://my-main-site/404 ErrorDocument 500 https://my-main-site/500.shtml RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^u/(.*)$ /profile.php?user=$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^u/(.*)/friends$ /profile.php?user=$1&friends [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^404$ /x/includes/errors/404.php [L] 


编辑:完全删除该文件,并以root用户身份创建一个新文件(在浏览器中显示)。 但是,我不能以FTP用户身份覆盖/更改文件。

执行chown www-data myFile.php和/或chown myftpuser myFile.php都使文件无法再次加载。

我只是再次对myftpuser myFile.php进行了chown,使我的ftp用户拥有了对该文件的所有权/权限。

该站点上的所有其他文件/目录均归我的ftp用户所有,因此我看不到会如何发生。

看起来您需要将FTP用户添加到www-data组,并使您的项目组可读/写。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM