Недавно я переместил свой сайт с общего веб-хоста на VPS и настроил apache2 / vsftpd и все такое.
После дня, связанного со всем, я, наконец, заставил все это работать, но у меня возникла проблема с загрузкой файла PHP в браузер.
PHP не отображает ошибок, и когда я нажимаю F12
в chrome при загрузке я вижу флэш-журнал консоли GET: [mydomain]/api/myfile.php 500 (Internal Server Error)
Я думал, что это как-то связано с тем, что я пытался сделать в файле, но он отлично работал, когда на странице, где находится форма, и jQuery это вызывал.
Однако, так как я хотел возвращать определенные сообщения (и только эти сообщения), я хотел, чтобы это было на пустой странице, чтобы я мог просто выводить их.
Итак, я создал новую страницу, загрузил ее через vsftpd
и открыл его в своем браузере, так как я ничего не POSTING, я ожидал, что он отобразит «Нет данных POST», как я сделал это, когда $_POST['userStatus']
не установлен, но получил только пустую белую страницу.
Я попытался изменить файл, чтобы просто
<?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
файл не был изменен с тех пор, как он в последний раз работал должным образом, поэтому я не слишком уверен, что это будет виновником.
В случае, если это важно:
Я использую Apache2.2 на Debian Wheezy
Мой файл 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"; ?>
и до сих пор ничего.
Пользователь 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, чтобы вернуть моему пользователю ftp право собственности на этот файл.
Все остальные файлы / каталоги на сайте принадлежат моему пользователю ftp, поэтому я не понимаю, как это могло бы произойти.
Похоже, вам нужно добавить своего пользователя FTP в группу www-data и сделать вашу группу проектов читабельной / доступной для записи.
Других решений пока нет …