Не думал что будет так непросто, но всё же...
- После установки WAMP, которая описана в предыдущих заметках, принялся расковыривать Laravel 4. Делаю я это нечасто, поэтому постараюсь выписать сюда все неприятности, с которыми столкнулся в процессе.
- Первое, что нужно сделать - создать каталог и переписать туда шаблон приложения. Шаблон находится здесь - https://github.com/laravel/laravel
- Затем нужно установить Composer под Windows
- Затем нужно в каталоге приложения, где уже есть шаблон Laravel приложения, запустить команду composer install. Этой командой мы запустим загрузку фреймворка и его зависимостей.
- Затем нужно создать виртуальный каталог с указанием вашего псевдонима, каталог должен указывать на подкаталог public вашего приложения, в нём есть файл index.php.
- Кстати, если ваш composer устарел, обновить его можно командой composer self-update
- Затем нужно попробовать зайти в браузере в этот каталог. Должно высветиться приветствие от Laravel. Если же его нет, а есть ошибка, то, скорее всего, в файле псевдонима нужно указать следующее -
Alias /lara/ "d:/wamp/www/lara/public/"
<Directory "d:/wamp/www/lara/public/">
Options FollowSymLinks
AllowOverride all
#Require all granted
Require ip 127.0.0.1 ::1 10.10.0
</Directory>
Далее можно попробовать прописать маршрут в файле routes.php
Вот правильный .htaccess в каталоге public (для приложения в каталоге d:\WAMP\www\lara\)-
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /lara
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Теперь у нас "чистый" url - без index.php работает. Если есть view типа simple.php, то теперь работает не только так
http://localhost/lara/index.php/simple, но и
http://localhost/lara/simple
Вообще, если первая ссылка работает, то с Laravel всё в порядке, это проблемы Apache, что и доказано способом исправления (указание RewriteBase).
Ура!!! Работает!!!
Лучшее объяснение по RewriteBase -
И получается, если не называть одинаково псевдоним приложения и каталог, в который его (приложение) записываем, то RewriteBase не понадобится. Но это надо проверить.
Вот правильный .htaccess в каталоге public (для приложения в каталоге d:\WAMP\www\lara\)-
<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /lara
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Теперь у нас "чистый" url - без index.php работает. Если есть view типа simple.php, то теперь работает не только так
http://localhost/lara/index.php/simple, но и
http://localhost/lara/simple
Вообще, если первая ссылка работает, то с Laravel всё в порядке, это проблемы Apache, что и доказано способом исправления (указание RewriteBase).
Ура!!! Работает!!!
Лучшее объяснение по RewriteBase -
# /lara/public/.htaccess -- per-dir config file for directory /lara/public
# Remember: /lara/public is the physical path of alias /lara, i.e., the server
# has a 'Alias /lara /lara/public' directive e.g.
RewriteEngine On
# let the server know that we were reached via alias /lara and not
# via the physical path prefix /lara/public
RewriteBase /lara
Комментариев нет:
Отправить комментарий