[英]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]
執行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.