У меня не было очень четкого понимания конфигурации на стороне сервера, особенно между разрешениями на исходные файлы и правами собственности.
При попытке решить проблему 403 (всякий раз, когда я обращаюсь к http://symfonyApp.dev/app_dev.php/), я ошибочно выдал команду:
sudo chmod -R 777 symfonyAppWebRoot
к моему веб-корню, где мой
каталоги находятся...
1.) Как мне получить разрешение/право по умолчанию обратно на мои файлы/папки приложений Symfony?
2.) или может кто-то просто объяснить мне, почему я получаю 403 ответ, получающий доступ к app_dev.php (на чистой установке symfony2.6 после этой безрассудной команды chmod..)?
Свежие права доступа к проекту symfony2:
chmod 775 *
chmod 775 app/ app/config app/console
chmod 664 app/AppCache.php app/AppKernel.php app/autoload.php app/bootstrap.php.cache app/check.php app/phpunit.xml.dist app/SymfonyRequirements.php
chmod 664 app/config/* -R
chmod 777 app/cache app/logs
chmod 775 app/Resources src/ vendor/ web/ -R
chmod 664 app/Resources/base.html.twig
Я предполагаю, что ваш app_dev.php выглядит примерно так:
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| (!in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server')
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}
//... more stuff
Пожалуйста, замените header('HTTP/1.0 403 Forbidden');
с die("It seems like my error has nothing to do with file permissions");
и посмотреть, что произойдет. Если это ничего не изменит, читайте дальше.
"1.) Как мне получить разрешение/право по умолчанию обратно на мои файлы/папки приложений Symfony?"
Вы можете использовать chgrp -R www-data symfonyAppWebRoot
вместо chmod -R 777 symfonyAppWebRoot
. Поскольку я не знаю исходных разрешений ваших файлов, я не знаю, как восстановить эти разрешения, но это будет что-то вроде chmod -R 755 symfonyAppWebROot