Установка
Требования к серверу
У Laravel есть несколько системных требований. Само собой, все они учтены в виртуальной машине Laravel Homestead, поэтому рекомендуется использовать для локальной разработки именно её.
Но если вы не используете Homestead, то вам необходимо выполнить следующие требования:
- PHP >= 5.6.4
- PDO расширение для PHP (для версии 5.1+)
- MCrypt расширение для PHP (для версии 5.0)
- OpenSSL (расширение для PHP)
- Mbstring (расширение для PHP)
- Tokenizer (расширение для PHP)
- XML (расширение для PHP) (для версии 5.3+)
Для PHP 5.5 в некоторых дистрибутивах ОС может потребоваться вручную установить расширение PHP JSON. В Ubuntu это можно сделать командой shapt-get install php5-json
.
Установка Laravel
Laravel использует Composer для управления зависимостями. Поэтому сначала установите Composer, а затем Laravel.
Сначала загрузите установщик Laravel с помощью Composer.
shcomposer global require "laravel/installer"
Не забудьте поместить каталог $HOME/.composer/vendor/bin (или его эквивалент в вашей ОС) в вашу переменную PATH, чтобы исполняемый файл laravel мог быть найден вашей системой.
После установки команда shlaravel new
произведёт установку свежего Laravel в указанный каталог. Например, shlaravel new blog
создаст каталог с именем blog, содержащий свежий Laravel со всеми установленными зависимостями:
shlaravel new blog
С помощью создания проекта Composer
Вы также можете установить Laravel с помощью команды shcreate-project
:
shcomposer create-project --prefer-dist laravel/laravel blog "5.3.*"
добавлено в 5.0 ()
shcomposer create-project laravel/laravel {directory} "~5.0.0" --prefer-dist
После установки необходимо обновить пакеты до последних версий. Сначала удалите файл {directory}/vendor/compiled.php, затем смените текущий каталог на {directory} и выполните команду shcomposer update
.
Laravel устанавливается с готовыми преднастройками для регистрации и авторизации пользователей. Если хотите удалить их, используйте Artisan-команду shfresh
:
shphp artisan fresh
добавлено в 5.3 ()
Локальный сервер для разработки
Если на вашей локальной машине установлен PHP, и вы хотите использовать встроенный в него сервер для разработки вашего приложения, вы можете использовать Artisan-команду shserve
. Эта команда запустит сервер на http://localhost:8000:
shphp artisan serve
Конечно, больше возможностей для надёжной локальной разработки доступно в Homestead и Valet.
Настройка
Все файлы настроек для фреймворка Laravel хранятся в папке config. Каждый параметр хорошо описан, поэтому вы можете просмотреть их, чтобы ознакомиться с доступными возможностями.
После установки Laravel вам может понадобиться настроить некоторые права. У вашего веб-сервера должны быть права на запись в папки внутри storage и bootstrap/cache (vendor для версии 5.0), иначе Laravel не запустится. Если вы используете виртуальную машину Homestead, то там эти права уже настроены.
Далее вам необходимо задать случайную строку в качестве ключа приложения. Если вы установили Laravel с помощью Composer, то этот ключ уже был задан для вас командой shphp artisan key:generate
.
Обычно эта строка должна быть длиной 32 символа. Ключ может быть задан в файле среды .env. Если вы ещё не переименовали файл .env.example в .env, то вам надо сделать это сейчас. Если ключ приложения не задан, данные пользовательских сессий и другие шифрованные данные не будут защищены!
Laravel практически не требует других начальных настроек — вы можете сразу начинать разработку! Однако вам может пригодиться файл config/app.php и его документация. Он содержит несколько настроек вроде timezone и locale, которые вы можете изменить для вашего приложения.
Также вы можете настроить некоторые дополнительные компоненты Laravel, такие как:
После установки Laravel вам также надо настроить локальную среду.
Никогда не оставляйте параметр app.debug со значением true в продакшне.
добавлено в 5.3 () 5.1 () 5.0 ()
Настройка веб-сервера
Красивые URL
Laravel поставляется вместе с файлом public/.htaccess, который настроен для обработки URL без указания index.php. Если вы используете Apache в качестве веб-сервера, обязательно включите модуль mod_rewrite.
Если стандартный .htaccess не работает для вашего Apache, попробуйте следующий:
confOptions +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
При использовании Nginx следующая директива в настройках вашего сайта позволит перенаправлять все запросы в фронт-контроллер shindex.php
:
conflocation / {
try_files $uri $uri/ /index.php?$query_string;
}
Само собой, при использовании Homestead или Valet красивые URL будут настроены автоматически.
Настройки окружения
Часто бывает полезно иметь разные значения настроек в зависимости от окружения, в котором работает приложение. Например, если вы используете разные драйверы кэша при локальной разработке и на сервере. Для этого можно просто использовать настройки на основе окружения.
Для удобства в Laravel используется PHP-библиотека DotEnv от Ванса Лукаса. В свежеустановленном Laravel в корневом каталоге вашего приложения находится файл .env.example. Если вы установили Laravel при помощи Composer, этот файл автоматически переименован в .env. В другом случае вам придётся переименовать его вручную.
Все находящиеся в этом файле переменные будут загружены в супер-глобальную переменную PHP $_ENV, когда ваше приложение получит запрос. Вы можете использовать функцию PHPenv()
для получения значений из этой переменной. На самом деле, если вы посмотрите в файлы настроек Laravel, то обнаружите, что некоторые параметры уже используют эту функцию!
Вы можете изменять переменные среды по своему желанию для своего локального сервера, и для «продакшн»-сервера. Но вам не надо помещать файл .env в вашу систему контроля версий, так как каждому разработчику / серверу могут быть необходимы собственные настройки окружения для использования вашего приложения.
Если вы работаете в команде, вы можете продолжать включать файл .env.example в ваше приложение. Поместив примеры значений в пример файла настроек, вы поможете другим разработчикам легко разобраться, какие переменные среды необходимы для запуска вашего приложения.
Получение текущего окружения приложения
Текущее окружение приложения определяется с помощью переменной APP_ENV в файле .env. Вы можете получить это значение методом PHPenvironment()
фасада App:
$environment = App::environment();
Также вы можете передать аргумент в метод PHPenvironment()
, чтобы проверить совпадение с указанным значением. При необходимости вы можете передать даже несколько значений:
if (App::environment('local')) {
// Локальное окружение
}
if (App::environment('local', 'staging')) {
// Окружение либо локальное, либо тестовое...
}
Экземпляр приложения также можно получить при помощи вспомогательного метода PHPapp()
:
$environment = app()->environment();
Настройки кэширования
Для ускорения вашего приложения вы можете кэшировать все файлы настроек в единый файл при помощи Artisan-команды shconfig:cache
. Эта команда соберёт все параметры вашего приложения в единый файл, который может быть быстро загружен фреймворком.
Вам стоит всегда выполнять команду shphp artisan config:cache
, как часть процедуры развёртывания в «продакшн». При локальной разработке не стоит выполнять эту команду, так как параметры необходимо часто изменять при разработке приложения.
Доступ к значениям настроек
Вы легко можете обратиться к значениям настроек при помощи глобальной вспомогательной функции PHPconfig()
. К значениям настроек можно обращаться с помощью «точечного» синтаксиса, который включает в себя имя файла и необходимый параметр. Также можно указать значение по умолчанию, которое будет возвращено, если запрашиваемый параметр не существует:
$value = config('app.timezone');
Чтобы задать значения настроек во время выполнения, передайте массив в функцию PHPconfig()
:
config(['app.timezone' => 'America/Chicago']);
Название для приложения
После установки Laravel вы можете дать «имя» вашему приложению. По умолчанию папка app входит в пространство имён App, и загружается с помощью Composer по стандарту автозагрузки PSR-4. Но вы можете изменить пространство имён в соответствии с названием вашего приложения, это делается простой Artisan-командой shapp:name
.
Например, если ваше приложение называется «Horsefly», вы можете выполнить такую команду в корневом каталоге приложения:
shphp artisan app:name Horsefly
Переименование приложения вовсе не обязательно, при желании вы можете оставить пространство имён App.
Режим обслуживания
Когда ваше приложение находится в режиме обслуживания, для всех запросов в ваше приложение будет отображаться специальное представление. Это позволяет легко «отключить» приложение при его обновлении или выполнении обслуживания. Проверка режима обслуживания включена в стандартный набор посредников для вашего приложения. Если приложение находится в режиме обслуживания, будет выброшено исключение HttpException с кодом состояния 503.
Для включения режима обслуживания просто выполните Artisan-команду shdown
:
shphp artisan down
Для отключения режима обслуживания используйте команду shup
:
shphp artisan up
Шаблон отклика режима обслуживания
Стандартный шаблон отклика режима обслуживания расположен в resources/views/errors/503.blade.php.
Режим обслуживания и очереди
Когда ваше приложение находится в режиме обслуживания, не будут обрабатываться задачи в очереди. После выключения режима обслуживания задачи продолжат обрабатываться в обычном режиме.
Комментарии (17)
во время установки через композер, на шаге installing-dependencies процесс установки зависает. помогает только ctrl+c. не подскажите в чем может быть проблема. пробовал установить symfony, ставится без проблем. система: windows7->openserver. заранее благодарен.
сам же отвечаю на свой вопрос. видимо дело было в каком то програмном глюке, переключил модуль php с версии 5.6 на версию 5.5 в настройках openserver, все заработало.
[Seld\JsonLint\ParsingException]
«c:\bin\composer.bat» does not contain valid JSON
Parse error on line 1:
@php "%~dp0composer.
^
Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
Ошибка такого плана
Установил через composer. Открываю через браузер и выдает ошибку. Не может заинклюдить файл /laravel/vendor/autoload.php А вот даже папки такой нет vendor в корне проекта. Файл инклюдит в /laravel/bootstrap/autoload.php line17
Все, разобрался. Mycrypt ему нужен был...
"Не забудьте поместить каталог
~/.composer/vendor/bin
в вашу переменную PATH, чтобы исполняемый файл laravel мог быть найден вашей системой."система ubuntu, что значит поместить в переменную? куда каталог перенести?
Ищите в Google, базовый вопрос раз пользуетесь Linux. Дописать в .bashrc:
Установка laravel относится к базовым вопросам системы?
Указанную строку добавил в файл, эффекта нет. Ушел искать ответ на базовый вопрос в гугл.
Базовые вопросы не включают установку Laravel, но установка Laravel включает в себя базовые вопросы.
С Laravel и Composer кроме PATH вам нужно знать о множестве других вещей — как сделать composer.phar исполняемым, что такое права и группы, что такое Vagrant и т.п. Нельзя всё это описать в Установке.
Все верно, это относится к настройке ОС по факту и косвенно к Laravel. Нужно это понимать, а не ворчать. А ответил правильно, так можно добавить путь в PATH. Но в Linux'e. А если не знаете как аналогично сделать в винде, может рано за фреймворки браться и нужно освоить основы?
Prowler
ответ ради того, чтобы просто что то написать? винда то тут при чем?
Proger_XP
меня интересовал только вопрос по PATH. с остальным проблем нет.
Вы с августа его не решили? Как насчёт Google? С ходу — первый вопрос на русском SO.
нет, уже давно решил. спасибо. как раз на so нашел ответ на вопрос.
127.0.0.1/myapp.my заходит на папку public, а вот так myapp.my не заходит 404 Not Found. В чем может быть проблемка?
к сожалению нельзя удалить здесь. задал вопрос на форуме.
Кто может помочь в установке купленного скрипта за небольшое вознаграждение?
УЖАСНАЯ ДОКУМЕНТАЦИЯ. Какие-то шаги пропущены. Что нужно устанавливать самостоятельно, а что установится автоматически, не понятно. Все, что написано в пункте «Включённое ПО» никак не запускается. Или самому устанавливать что-ли? Тогда зачем вся эта мышинная возня! ЖУТЬ!