Может войдёшь?
Черновики Написать статью Профиль

Установка Laravel

перевод документация 3.x

  1. 1. Короткие URL
  2. 2. Настройки и профили
  3. 3. Настройка
  4. 4. Что дальше?

Установка Laravel, как это принято для вёб-движков, начинается со скачивания последней версии фреймворка. Последняя версия из третьей ветки — 3.2.14.

Laravel может находиться в любой папке на сервере, если к папке public предоставлен доступ извне — либо с помощью символической ссылки, либо настройкой виртуального хоста (см. ниже).

Основные папки Laravel могут быть даже разнесены, если в файле paths.php указано их новое размещение. Если paths.php не находится на один уровень выше public (т.е. в public/../paths.php), то public/index.php нужно будет также немного изменить.

Назначение основных папок Laravel (см. тж. настройку):

  • application — папка системного пакета — хранит общие настройки среды для подключения к БД, драйвер сессии, загрузчик языковых файлов, системная кодировка и язык и прочее.
  • bundles — папка сторонних пакетов (пакет — самодостаточная сборка скриптов, например, для рисования графиков или отправки e-mail). Каждый пакет содержится в своей подпапке, которая в свою очередь содержит почти те же папки и файлы, что и системный пакет (application).
  • laravel — PHP-скрипты самого фреймворка. Каждая папка соотносится с соответствующим пространством имён Laravel.
  • public — единственная папка, которая должна быть видна из интернета — содержит элементы оформления страниц — картинки, файлы CSS и JavaScript и т.д.
  • storage — папка с создаваемыми файлами — кеш, данные сессии, логи и т.д.
  • vendor — содержит сторонние библиотеки наподобии bundles, но в отличии от последней эти библиотеки никак не связаны в Laravel. Например, класс для генерации RSS-лент может размещаться здесь, тогда как пакет с интерфейсом к нему — в bundles.

Короткие URL

Так как всё общение с Laravel со стороны сервера происходит через папку public, то, если мы устанавливаем его в http://localhost/laravel/, пути в браузере будут выглядеть как http://localhost/laravel/public/index.php/user/123/. Однако это поведение по умолчанию (рассчитанное на работу на любом сервере), и его можно изменить.

От нашего решения зависит, где расположить файлы фреймворка — пока распакуйте скачанный архив во временную папку.

Если вы используете //((http:httpd.apache.org Apache с модулем mod_rewrite, то мы можем убрать index.php из пути. Для этого откройте файл application/config/application.php и установите параметр index в пустую строку:

PHP
'index' => '',

Если вы оставите структуру папок Laravel прежней и public будет лежать там же, где paths.php, laravel и т.д., то мы можем убрать public/ из пути. Есть несколько способов:

  • с помощью mod_rewrite — самый простой. Создайте в папке, куда вы извлекли архив (она содержит paths.php), файл .htaccess и впишите туда эти строки:
confRewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
  • директивами Alias или DocumentRoot — лучший вариант, если вы можете настраивать виртуальный хост в главном конфигурационном файле Apache (httpd.conf). Если вы располагаете Laravel в корне хоста (например, http://localhost/), то используйте DocumentRoot, иначе — Alias (требует mod_alias). Например:
conf# Запрос http://localhost/mypage/123 будет перенаправлен в
# C:/apache/htdocs/localhost/public/mypage/123, который в свою очередь преобразуется в
# C:/apache/htdocs/localhost/public/index.php/mypage/123, если доступен mod_rewrite.
DocumentRoot "C:/apache/htdocs/localhost/public"

# Вместо DocumentRoot можно использовать Alias с тем же принципом работы.
# mod_rewrite будет работать так же, как и в случае с DocumentRoot выше.
Alias /laravel "C:/apache/htdocs/localhost/laravel/public"
  • символической ссылкой — доступно только на *nix-системах и только если у вас включена опция FollowSymLinks в настройках виртуального хоста (или вы можете её включить с помощью директивы PHPOptions). Обычно это самый оптимальный вариант, так как не затрагивает работу сервера, но вам нужен доступ к командной строке сервера. Для включения вам нужно сделать две вещи:
    1. Создать ссылку командой ls на папку public в папке виртуального хоста (его корня или подпапки, в зависимости от того, где будет виден фреймворк из сети). Например: shln -s /usr/local/www/laravel/public /home/mysite.ru/pub/mylaravel — сделает его доступным по адресу http://mysite.ru/mylaravel.
    2. Включить FollowSymLinks в httpd.conf или .htaccess:
confOptions +FollowSymLinks

Есть также ещё один вариант для быстрой настройки хоста под Laravel — не требует mod_rewrite (только mod_alias) и может использоваться при разработке, когда короткие URL не нужны:

conf# Перенаправит запросы в корень фреймворка в подпапку public:
RedirectMatch ^/?mylaravel/?$ http://localhost/mylaravel/public

Настройки и профили

Глобальные настройки «приложения» («application») на Laravel хранятся в папке application/config/. Она содержит PHP-файлы, возвращающие массивы параметров, которые могут быть вложенными, например:

PHP
<?php
return array(
  
'key' => array(
    
'subkey_1' => 'value 1',
    
'subkey_2' => 'значение 2',
  ),
  
'another_key' => 'значение'
);

Запятая после последнего элемента может быть опущена (как после another_key). Настройки можно прочитать с помощью PHPConfig::get, передав строку вида: [пакет::]файл.ключ[.подключ[...]] — например:

  • если код выше располагается в application/config/myconfig.php, то прочитать значение 2 можно строкой myconfig.key.subkey_2.
  • для файла bundles/mybundle/config/myconfig.php то же значение доступно по строке mybundle::myconfig.key.subkey_2.

В Laravel есть возможность использовать профили настроек — с их помощью можно один и тот же проект использовать на локальном хосте и загружать одновременно на производственный сервер. Если профиль определён настройки загружаются в два этапа:

  1. application/config/*.php
  2. application/config/PROFILE/*.php — совпадающие настройки перекрывают предыдущие

Профиль задаётся переменной среды LARAVEL_ENV, которую можно определить в Apache директивой SetEnv и прочитать функцией PHPRequest::env.

При разработке этой переменной принято присваивать значение local, а на производственном сервере — production. Вот как это делается в Apache (задаётся либо в записи виртуального хоста, либо в файле .htaccess в корне Laravel):

confSetEnv LARAVEL_ENV local
# Либо:
SetEnv LARAVEL_ENV production

Для вёб-сервера nginx есть аналогичная директива: confenv LARAVEL_ENV=local

Если LARAVEL_ENV не определена профили не используются и загружаются только общие настройки (без подпапок).

Настройка

Итак, нам нужно задать основные настройки для нашего приложения. Если вы задали профиль с помощью переменной среды LARAVEL_ENV как было описано выше, то вместо изменения самого файла настроек скопируйте его в подпапку с именем профиля — например, для профиля «local» создайте папку application/config/local и скопируйте туда application/config/application.php и session.php.

Если вы не задавали профиль или хотите, чтобы настройки были применены для всех профилей, то изменяйте основной файл (такой как application/config/application.php).

В начале, при настройке URL, мы уже поменяли одну из них — index в application.php — теперь продолжим в том же файле:

  • изменим секретный ключ (key) — по важности для безопасности сервера этот параметр почти не уступает паролю от самого сервера, поэтому позаботьтесь о том, чтобы он не был известен третьим лицам. Это должна быть строка из 32 случайных символов (любых, а не только буквенноцифровых).
  • установим язык по умолчанию (language) — изначально это английский (en), мы можем сделать его русским (ru) — но для этого языковые файлы Laravel и установленных пакетов должны быть переведены.
  • зададим часовой пояс (timezone) — по умолчанию он установлен в UTC, но если мы хотим отображать московское время, то установим этот параметр в Europe/Moscow.

Также установим драйвер сессии в файле session.php (нам это пригодится в дальнейшем) — установите параметр driver в cookie или file.

Что дальше?

Laravel установлен и готов к работе — вы можете проверить это, перейдя к папку фреймворка (http://localhost/laravel/) — должа появиться страница-приветствие по умолчанию. Если вместо неё у вас появляется ошибка 404 (страница не найдена)короткие URL не были верно настроены.

Если у вас возникли вопросы можете задать их на нашем форуме.

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.