В моем домашнем каталоге у меня есть папка проекта 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, ссылки или файловой системы.
/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
Других решений пока нет …