суббота, 8 февраля 2014 г.

Laravel 4. Часть 1. Установка и настройка.

Не думал что будет так непросто, но всё же...

  1. После установки WAMP, которая описана в предыдущих заметках, принялся расковыривать Laravel 4. Делаю я это нечасто, поэтому постараюсь выписать сюда все неприятности, с которыми столкнулся в процессе.
  2. Первое, что нужно сделать - создать каталог и переписать туда шаблон приложения. Шаблон находится здесь - https://github.com/laravel/laravel
  3. Затем нужно установить Composer под Windows
  4. Затем нужно в каталоге приложения, где уже есть шаблон Laravel приложения, запустить команду composer install. Этой командой мы запустим загрузку фреймворка и его зависимостей.
  5. Затем нужно создать виртуальный каталог с указанием вашего псевдонима, каталог должен указывать на подкаталог public вашего приложения, в нём есть файл index.php.
  6. Кстати, если ваш composer устарел, обновить его можно командой composer self-update
  7. Затем нужно попробовать зайти в браузере в этот каталог. Должно высветиться приветствие от 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 -
#  /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
И получается, если не называть одинаково псевдоним приложения и каталог, в который его (приложение) записываем, то RewriteBase не понадобится. Но это надо проверить.

Комментариев нет:

Отправить комментарий