@awda2dea

Как настроить nginx для работы с LN как это сделано в Apache при помощи FollowSymlink?

raster-service-1  | [php-fpm:access] 127.0.0.1 -  05/Jun/2024:02:41:34 +0000 "GET /index.php" 500 /app/index.php 0.497 2048 0.00%
raster-service-1  | NOTICE: PHP message: PHP Warning:  require(//vendor/autoload.php): Failed to open stream: No such file or directory in /app/index.php on line 31
raster-service-1  | NOTICE: PHP message: PHP Fatal error:  Uncaught Error: Failed opening required '//vendor/autoload.php' (include_path='.:/usr/local/lib/php') in /app/index.php:31
raster-service-1  | Stack trace:
raster-service-1  | #0 {main}
raster-service-1  |   thrown in /app/index.php on line 31
raster-service-1  | 10.0.0.254 - - [05/Jun/2024:02:41:34 +0000] "GET / HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 OPR/109.0.0.0 (Edition Yx GX)"


PHP+NGINX заводятся в среде rootless docker, каталог app проброшен как doker volume на каталог public приложения на хост машине. Вебсервер видит и читает каталог, но.. Для апачи я использовал хитрость, делал симлинк на каталог public и в конфиге прописывал FollowSymlink, и все отлично работало. В nginx такой прием не сработал.

В случае с nginx такой вариант не проходит. PHP не может прочитать каталог autoload. Возможно в самом скрипте ошибка при указании пути? Ведь разработка велась на win os.

define('APP_ROOT', dirname(__DIR__));
require APP_ROOT . '/vendor/autoload.php';


p.s. но по всей видимости php просто не может перейти в каталог, который находится за WEB_DOCUMENT_ROOT, который у меня установлен как /app (значение по умолчанию). Использую webdevops/php-nginx.
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
@awda2dea Автор вопроса
блин.. видимо какое-то ограничение docker, потому что если пробросить весь каталог с приложением как симлинк через docker volume, то все работает.
ln -s /app/public /docker/compose/app - не заработало, index.php лежит в public
ln -s /app /docker/compose/app - естественно заработало...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы