{{TOC}} {{DOCVER 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51, 5.2=6b0b057ae6de3c88cb29188459e38383c622ec23 8.12.2016 23:00:15, 5.1=cdc24ba7426c5b11eb4d050706bd78c3ea4913cc 19.06.2016 20:08:01, 5.0=5d10040a981deee82c0fde0e8e5d2ffc49eaaecb 8.02.2016 18:09:11}} == Установка == == Требования к серверу == У Laravel есть несколько системных требований. Само собой, все они учтены в виртуальной машине ((//docs/v5/homestead Laravel Homestead)), поэтому рекомендуется использовать для локальной разработки именно её. Но если вы не используете Homestead, то вам необходимо выполнить следующие требования: * **PHP** >= 5.6.4 * **PDO** расширение для PHP (для версии 5.1+) * **((phpdoc:book.mcrypt MCrypt))** расширение для PHP (для версии 5.0) * **OpenSSL** (расширение для PHP) * **Mbstring** (расширение для PHP) * **Tokenizer** (расширение для PHP) * **XML** (расширение для PHP) (для версии 5.3+) Для PHP 5.5 в некоторых дистрибутивах ОС может потребоваться вручную установить расширение PHP JSON. В Ubuntu это можно сделать командой %%(sh)apt-get install php5-json%%. == Установка Laravel == Laravel использует ((https://getcomposer.org/ Composer)) для управления зависимостями. Поэтому сначала установите Composer, а затем Laravel. **С помощью установщика Laravel** Сначала загрузите установщик Laravel с помощью Composer. %%(sh) composer global require "laravel/installer" %% Не забудьте поместить каталог %%(t)$HOME/.composer/vendor/bin%% (или его эквивалент в вашей ОС) в вашу переменную PATH, чтобы исполняемый файл %%(t)laravel%% мог быть найден вашей системой. После установки команда %%(sh)laravel new%% произведёт установку свежего Laravel в указанный каталог. Например, %%(sh)laravel new blog%% создаст каталог с именем %%(t)blog%%, содержащий свежий Laravel со всеми установленными зависимостями: %%(sh) laravel new blog %% **С помощью создания проекта Composer** Вы также можете установить Laravel с помощью команды %%(sh)create-project%%: %%(DOCNEW 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51, 5.2=6b0b057ae6de3c88cb29188459e38383c622ec23 8.12.2016 23:00:15) %%(sh) composer create-project --prefer-dist laravel/laravel blog "5.3.*" ~%% %% %%(DOCNEW 5.1=f60f8b3697b3ffe381df4ddb7e2875ffce940643 1.04.2016 17:39:10) %%(sh) composer create-project laravel/laravel blog "5.1.*" ~%% %% %%(DOCNEW 5.0=5d10040a981deee82c0fde0e8e5d2ffc49eaaecb 8.02.2016 18:09:11) %%(sh) composer create-project laravel/laravel {directory} "~5.0.0" --prefer-dist ~%% После установки необходимо обновить пакеты до последних версий. Сначала удалите файл %%(t){directory}/vendor/compiled.php%%, затем смените текущий каталог на %%(t){directory}%% и выполните команду %%(sh)composer update%%. Laravel устанавливается с готовыми преднастройками для регистрации и авторизации пользователей. Если хотите удалить их, используйте Artisan-команду %%(sh)fresh%%: %%(sh) php artisan fresh ~%% %% %%(DOCNEW 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51) **Локальный сервер для разработки** Если на вашей локальной машине установлен PHP, и вы хотите использовать встроенный в него сервер для разработки вашего приложения, вы можете использовать Artisan-команду %%(sh)serve%%. Эта команда запустит сервер на %%(t)http://localhost:8000%%: %%(sh) php artisan serve ~%% Конечно, больше возможностей для надёжной локальной разработки доступно в ((//docs/v5/homestead Homestead)) и ((//docs/v5/valet Valet)). %% === Настройка === %%(DOCNEW 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51, 5.2=6b0b057ae6de3c88cb29188459e38383c622ec23 8.12.2016 23:00:15) **Папка %%(t)public%%** После установки Laravel необходимо настроить документ/веб корень вашего веб-сервера на папку %%(t)public%%. Файл %%(t)index.php%% в этой папке служит в качестве фронт-контроллера для всех HTTP-запросов, входящих в ваше приложение. %% **Файлы настроек** Все файлы настроек для фреймворка Laravel хранятся в папке %%(t)config%%. Каждый параметр хорошо описан, поэтому вы можете просмотреть их, чтобы ознакомиться с доступными возможностями. **Права на папки** После установки Laravel вам может понадобиться настроить некоторые права. У вашего веб-сервера должны быть права на запись в папки внутри %%(t)storage%% и %%(t)bootstrap/cache%% (%%(t)vendor%% для версии 5.0), иначе Laravel не запустится. Если вы используете виртуальную машину ((/docs/v5/homestead Homestead)), то там эти права уже настроены. **Ключ приложения** Далее вам необходимо задать случайную строку в качестве ключа приложения. Если вы установили Laravel с помощью Composer, то этот ключ уже был задан для вас командой %%(sh)php artisan key:generate%%. Обычно эта строка должна быть длиной 32 символа. Ключ может быть задан в файле среды %%(t).env%%. Если вы ещё не переименовали файл %%(t).env.example%% в %%(t).env%%, то вам надо сделать это сейчас. **Если ключ приложения не задан, данные пользовательских сессий и другие шифрованные данные не будут защищены!** **Дополнительные настройки** Laravel практически не требует других начальных настроек - вы можете сразу начинать разработку! Однако вам может пригодиться файл %%(t)config/app.php%% и его документация. Он содержит несколько настроек вроде **timezone** и **locale**, которые вы можете изменить для вашего приложения. Также вы можете настроить некоторые дополнительные компоненты Laravel, такие как: * ((/docs/v5/cache#configuration Кэш)) * ((/docs/v5/database#настройка База данных)) * ((/docs/v5/session#настройка Сессии)) После установки Laravel вам также надо ((/docs/v5/configuration#среда настроить локальную среду)). .(alert) Никогда не оставляйте параметр %%(t)app.debug%% со значением %%(t)true%% в продакшне. %%(DOCNEW 5.3=c06d6a2352ed8c767633aab9c20f2bf7d880c967 28.01.2017 5:00:51, 5.1=cdc24ba7426c5b11eb4d050706bd78c3ea4913cc 19.06.2016 20:08:01, 5.0=5d10040a981deee82c0fde0e8e5d2ffc49eaaecb 8.02.2016 18:09:11) == Настройка веб-сервера == === Красивые URL === **Apache** Laravel поставляется вместе с файлом %%(t)public/.htaccess%%, который настроен для обработки URL без указания %%(t)index.php%%. Если вы используете Apache в качестве веб-сервера, обязательно включите модуль **mod_rewrite**. Если стандартный %%(t).htaccess%% не работает для вашего Apache, попробуйте следующий: %%(conf) Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] ~%% **Nginx** При использовании Nginx следующая директива в настройках вашего сайта позволит перенаправлять все запросы в фронт-контроллер %%(sh)index.php%%: %%(conf) location / { try_files $uri $uri/ /index.php?$query_string; } ~%% Само собой, при использовании ((//docs/v5/homestead Homestead)) или ((//docs/v5/valet Valet)) красивые URL будут настроены автоматически. %% %%(DOCNEW 5.1=cdc24ba7426c5b11eb4d050706bd78c3ea4913cc 19.06.2016 20:08:01, 5.0=5d10040a981deee82c0fde0e8e5d2ffc49eaaecb 8.02.2016 18:09:11) === Настройки окружения === Часто бывает полезно иметь разные значения настроек в зависимости от окружения, в котором работает приложение. Например, если вы используете разные драйверы кэша при локальной разработке и на сервере. Для этого можно просто использовать настройки на основе окружения. Для удобства в Laravel используется PHP-библиотека ((https://github.com/vlucas/phpdotenv DotEnv)) от Ванса Лукаса. В свежеустановленном Laravel в корневом каталоге вашего приложения находится файл %%(t).env.example%%. Если вы установили Laravel при помощи Composer, этот файл автоматически переименован в %%(t).env%%. В другом случае вам придётся переименовать его вручную. Все находящиеся в этом файле переменные будут загружены в супер-глобальную переменную PHP %%(t)$_ENV%%, когда ваше приложение получит запрос. Вы можете использовать функцию %%env()%% для получения значений из этой переменной. На самом деле, если вы посмотрите в файлы настроек Laravel, то обнаружите, что некоторые параметры уже используют эту функцию! Вы можете изменять переменные среды по своему желанию для своего локального сервера, и для "продакшн"-сервера. Но вам не надо помещать файл %%(t).env%% в вашу систему контроля версий, так как каждому разработчику / серверу могут быть необходимы собственные настройки окружения для использования вашего приложения. Если вы работаете в команде, вы можете продолжать включать файл %%(t).env.example%% в ваше приложение. Поместив примеры значений в пример файла настроек, вы поможете другим разработчикам легко разобраться, какие переменные среды необходимы для запуска вашего приложения. **Получение текущего окружения приложения** Текущее окружение приложения определяется с помощью переменной %%(t)APP_ENV%% в файле %%(t).env%%. Вы можете получить это значение методом %%environment()%% ((/docs/v5/facades фасада)) %%(t)App%%: ~%% $environment = App::environment(); ~%% Также вы можете передать аргумент в метод %%environment()%%, чтобы проверить совпадение с указанным значением. При необходимости вы можете передать даже несколько значений: ~%% if (App::environment('local')) { // Локальное окружение } if (App::environment('local', 'staging')) { // Окружение либо локальное, либо тестовое... } ~%% Экземпляр приложения также можно получить при помощи вспомогательного метода %%app()%%: ~%% $environment = app()->environment(); ~%% === Настройки кэширования === Для ускорения вашего приложения вы можете кэшировать все файлы настроек в единый файл при помощи Artisan-команды %%(sh)config:cache%%. Эта команда соберёт все параметры вашего приложения в единый файл, который может быть быстро загружен фреймворком. Вам стоит всегда выполнять команду %%(sh)php artisan config:cache%%, как часть процедуры развёртывания в "продакшн". При локальной разработке не стоит выполнять эту команду, так как параметры необходимо часто изменять при разработке приложения. === Доступ к значениям настроек === Вы легко можете обратиться к значениям настроек при помощи глобальной вспомогательной функции %%config()%%. К значениям настроек можно обращаться с помощью "точечного" синтаксиса, который включает в себя имя файла и необходимый параметр. Также можно указать значение по умолчанию, которое будет возвращено, если запрашиваемый параметр не существует: ~%% $value = config('app.timezone'); ~%% Чтобы задать значения настроек во время выполнения, передайте массив в функцию %%config()%%: ~%% config(['app.timezone' => 'America/Chicago']); ~%% === Название для приложения === После установки Laravel вы можете дать "имя" вашему приложению. По умолчанию папка %%(t)app%% входит в пространство имён %%(t)App%%, и загружается с помощью Composer по ((http://www.php-fig.org/psr/psr-4/ стандарту автозагрузки PSR-4)). Но вы можете изменить пространство имён в соответствии с названием вашего приложения, это делается простой Artisan-командой %%(sh)app:name%%. Например, если ваше приложение называется "Horsefly", вы можете выполнить такую команду в корневом каталоге приложения: %%(sh) php artisan app:name Horsefly ~%% Переименование приложения вовсе не обязательно, при желании вы можете оставить пространство имён %%(t)App%%. == Режим обслуживания == Когда ваше приложение находится в режиме обслуживания, для всех запросов в ваше приложение будет отображаться специальное представление. Это позволяет легко "отключить" приложение при его обновлении или выполнении обслуживания. Проверка режима обслуживания включена в стандартный набор посредников для вашего приложения. Если приложение находится в режиме обслуживания, будет выброшено исключение %%(t)HttpException%% с кодом состояния 503. Для включения режима обслуживания просто выполните Artisan-команду %%(sh)down%%: %%(sh) php artisan down ~%% Для отключения режима обслуживания используйте команду %%(sh)up%%: %%(sh) php artisan up ~%% === Шаблон отклика режима обслуживания === Стандартный шаблон отклика режима обслуживания расположен в %%(t)resources/views/errors/503.blade.php%%. === Режим обслуживания и очереди === Когда ваше приложение находится в режиме обслуживания, не будут обрабатываться ((/docs/v5/queues задачи в очереди)). После выключения режима обслуживания задачи продолжат обрабатываться в обычном режиме. %%