簡體   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