Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
У меня вот такая проблема
Раньше работал на винде и использовал OpenServer
Потом поставил линукс и решил как истинный джедай сам собрать связку apache + php + mysql
Вроде как-то собрал.
Но когда я поставил Laravel при попытки захода на главную страницу мне выдается ошибка "403 - Forbidden"
В логе ошибок написанно следующеие
[Sun Jul 13 03:22:03.532705 2014] [autoindex:error] [pid 29735] [client 127.0.0.1:37242] AH01276: Cannot serve directory /home/volk/web/vi.dev/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
Как я понял это ларавель жалуется на отсутствие индексных файлов
Но ведь когда я точно таким же способом устанавливал на laravel на OpenServer и там тоже не было индексных файлов, но всё равно все работало.
У меня когнитивный диссонанс, по логике вещей лаверль без index.php не должен был работать и на OpenServer.
Конфигурация виртуального хоста выглядит вот так.
<VirtualHost *:80>
ServerName vi.dev
ServerAlias www.vi.dev
DocumentRoot /home/volk/web/vi.dev
ServerAdmin webmaster@localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
<Directory "/home/volk/web/vi.dev">
Require all granted
DirectoryIndex index.php index.html
</Directory>
</VirtualHost>
Подскажите что за колдовская сила заставляет ларваель работать без index.php в корневой папке сайта?
И каким образом сделать чтобы он заработал и у меня?
Не в сети
- Как я понял это ларавель жалуется на отсутствие индексных файлов
Это стандартная ошибка (на самом деле предупреждение) Apache, говорит о том, что в папке, куда ты зашёл через браузер без указания файла (http://foo/folder/), нет index.html/php, поэтому он не может что-либо отобразить.
- там тоже не было индексных файлов
Как же не было, public/index.php не в счёт?
- DocumentRoot /home/volk/web/vi.dev
Неверно — у тебя корень сайта — корень фреймворка, а это должна быть папка public. Именно там находится Laravel-овский index.php. <Directory>, кстати, лишняя — обычно эти настройки уже и так заданы по умолчанию.
Не в сети
Спасибо, я использовал вот такую конифигурацю
<VirtualHost *:80>
ServerName vi.dev
ServerAlias www.vi.dev
DocumentRoot /home/volk/web/vi.dev/public
ServerAdmin me@localhost
<Directory "/home/volk/web/vi.dev">
Require all granted
</Directory>
</VirtualHost>
и кажется проблема с 403 исчезла. Теперь вместо неё сообщение Mcrypt PHP extension required.
сейчас буду разбираться как приделать mcrypt к php.
P.S.
Directory все таки важна, так как по умолчанию apache хочет чтобы сайты были вот тут /var/www/html, а я хочу чтобы они лежали в ~/web (созданная мной папка), чтобы каждый раз не заморачиваться с sudo при работе с сайтами.
Не в сети
Да, но что делать, если это обычный хост и нет доступа к конфигу апача?
Не в сети
Да, но что делать, если это обычный хост и нет доступа к конфигу апача?
1. Заказать VPS/VDS.
2. Не использовать фреймворк.
3. Залить Laravel в корень (туда, где лежит public_html, htdocs или www) и попробовать поставить симлинк между public_html и public.
Не в сети
Понял, значит пряморукого решения с хостом нет. Печально.
Благодарю за ответ
Не в сети
Пряморукое решение есть - просто настроить Apache так, как вам нужно. Все эти директории (www, html и т.п.) настраиваются в конфиге. Так что смело изучайте конфиг и документацию.
Не в сети
Страницы 1