Проблемы с символическими ссылками, приводящие к файлу не найден

В моем домашнем каталоге у меня есть папка проекта laravel:

/home
/user
/project
/public     <--------.
index.php          |
/bootstrap           |
autoload.php       |
/config              |
/public            |
/src                       |
/http                    |
/project (softlink to here)

В project/public/index.php У меня есть это:

require __DIR__.'/../bootstrap/autoload.php';

Я мягко связал мою общую папку apache с общей папкой в ​​моем пользовательском каталоге:

$ ln -s /home/user/project/public /srv/http/project

Так что я должен быть в состоянии открыть localhost/project, Но я получаю 500 внутренних ошибок сервера. Вот соответствующий журнал от Apache:

$ cat /var/log/httpd/error_log
[Tue Jun 02 2015] [:error] PHP Warning:  require(/home/user/project/config/public/../bootstrap/autoload.php): failed to open stream: No such file or directory in /home/user/project/config/public/index.php on line 21, referer: http://localhost/project/
[Tue Jun 02 2015] [:error] PHP Fatal error:  require(): Failed opening required '/home/user/project/config/public/../bootstrap/autoload.php' (include_path='/home/user/project/vendor/phpunit/php-text-template:/home/user/project/vendor/phpunit/php-timer:.:/usr/share/pear') in /home/user/project/config/public/index.php on line 21, referer: http://localhost/project/

Логи предполагают, что сервер ищет /home/user/project/config/bootstrap/autoload.php, Но почему? Я не ссылался на /home/user/project/config/public, Я понятия не имею, это проблема apache, php, ссылки или файловой системы.

2

Решение

/home
/user
/project
/public     <--------.
index.php          |
/bootstrap           |
autoload.php       |
/config              |
/public            |
/src                       |
/http                    |
/project (softlink to here)

Таким образом, с символической ссылкой ваш докрут выглядит так:

/src
/http
/project
index.php

../bootstrap не существует в отношении вашего приложения.

Переместите символическую ссылку на один уровень вверх:

$ ln -s /home/user/project /srv/http/project
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]