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

Установка

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

  1. 1. Установка
  2. 2. Требования к серверу
  3. 3. Установка Laravel
    1. 3.1. Настройка
  4. 4. Настройка веб-сервера
    1. 4.1. Красивые URL
    2. 4.2. Настройки окружения
    3. 4.3. Настройки кэширования
    4. 4.4. Доступ к значениям настроек
    5. 4.5. Название для приложения
  5. 5. Режим обслуживания
    1. 5.1. Шаблон отклика режима обслуживания
    2. 5.2. Режим обслуживания и очереди
Этот перевод актуален для англоязычной документации на (ветка 5.3) , (ветка 5.2) , (ветка 5.1) и (ветка 5.0). Опечатка? Выдели и нажми Ctrl+Enter.

Установка

Требования к серверу

У 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

Сначала загрузите установщик 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:

+ 5.3 5.2

добавлено в 5.3 () 5.2 ()

shcomposer create-project --prefer-dist laravel/laravel blog "5.3.*"
+ 5.1

добавлено в 5.1 ()

shcomposer create-project laravel/laravel blog "5.1.*"
+ 5.0

добавлено в 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

добавлено в 5.3 ()

Локальный сервер для разработки

Если на вашей локальной машине установлен PHP, и вы хотите использовать встроенный в него сервер для разработки вашего приложения, вы можете использовать Artisan-команду shserve. Эта команда запустит сервер на http://localhost:8000:

shphp artisan serve

Конечно, больше возможностей для надёжной локальной разработки доступно в Homestead и Valet.

Настройка

+ 5.3 5.2

добавлено в 5.3 () 5.2 ()

Папка public

После установки Laravel необходимо настроить документ/веб корень вашего веб-сервера на папку public. Файл index.php в этой папке служит в качестве фронт-контроллера для всех HTTP-запросов, входящих в ваше приложение.

Файлы настроек

Все файлы настроек для фреймворка 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

добавлено в 5.3 () 5.1 () 5.0 ()

Настройка веб-сервера

Красивые URL

Apache

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

При использовании Nginx следующая директива в настройках вашего сайта позволит перенаправлять все запросы в фронт-контроллер shindex.php:

conflocation / {
  try_files $uri $uri/ /index.php?$query_string;
}

Само собой, при использовании Homestead или Valet красивые URL будут настроены автоматически.

+ 5.1 5.0

добавлено в 5.1 () 5.0 ()

Настройки окружения

Часто бывает полезно иметь разные значения настроек в зависимости от окружения, в котором работает приложение. Например, если вы используете разные драйверы кэша при локальной разработке и на сервере. Для этого можно просто использовать настройки на основе окружения.

Для удобства в Laravel используется PHP-библиотека DotEnv от Ванса Лукаса. В свежеустановленном Laravel в корневом каталоге вашего приложения находится файл .env.example. Если вы установили Laravel при помощи Composer, этот файл автоматически переименован в .env. В другом случае вам придётся переименовать его вручную.

Все находящиеся в этом файле переменные будут загружены в супер-глобальную переменную PHP $_ENV, когда ваше приложение получит запрос. Вы можете использовать функцию PHPenv() для получения значений из этой переменной. На самом деле, если вы посмотрите в файлы настроек Laravel, то обнаружите, что некоторые параметры уже используют эту функцию!

Вы можете изменять переменные среды по своему желанию для своего локального сервера, и для «продакшн»-сервера. Но вам не надо помещать файл .env в вашу систему контроля версий, так как каждому разработчику / серверу могут быть необходимы собственные настройки окружения для использования вашего приложения.

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

Получение текущего окружения приложения
Текущее окружение приложения определяется с помощью переменной APP_ENV в файле .env. Вы можете получить это значение методом PHPenvironment() фасада App:

PHP
$environment App::environment();

Также вы можете передать аргумент в метод PHPenvironment(), чтобы проверить совпадение с указанным значением. При необходимости вы можете передать даже несколько значений:

PHP
if (App::environment('local')) {
    
// Локальное окружение
}

if (
App::environment('local''staging')) {
    
// Окружение либо локальное, либо тестовое...
}

Экземпляр приложения также можно получить при помощи вспомогательного метода PHPapp():

PHP
$environment app()->environment();

Настройки кэширования

Для ускорения вашего приложения вы можете кэшировать все файлы настроек в единый файл при помощи Artisan-команды shconfig:cache. Эта команда соберёт все параметры вашего приложения в единый файл, который может быть быстро загружен фреймворком.

Вам стоит всегда выполнять команду shphp artisan config:cache, как часть процедуры развёртывания в «продакшн». При локальной разработке не стоит выполнять эту команду, так как параметры необходимо часто изменять при разработке приложения.

Доступ к значениям настроек

Вы легко можете обратиться к значениям настроек при помощи глобальной вспомогательной функции PHPconfig(). К значениям настроек можно обращаться с помощью «точечного» синтаксиса, который включает в себя имя файла и необходимый параметр. Также можно указать значение по умолчанию, которое будет возвращено, если запрашиваемый параметр не существует:

PHP
$value config('app.timezone');

Чтобы задать значения настроек во время выполнения, передайте массив в функцию PHPconfig():

PHP
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)

Black_Bass

во время установки через композер, на шаге installing-dependencies процесс установки зависает. помогает только ctrl+c. не подскажите в чем может быть проблема. пробовал установить symfony, ставится без проблем. система: windows7->openserver. заранее благодарен.

Black_Bass

сам же отвечаю на свой вопрос. видимо дело было в каком то програмном глюке, переключил модуль php с версии 5.6 на версию 5.5 в настройках openserver, все заработало.

korolariya

[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', '{', '['
Ошибка такого плана

Oxel

Установил через composer. Открываю через браузер и выдает ошибку. Не может заинклюдить файл /laravel/vendor/autoload.php А вот даже папки такой нет vendor в корне проекта. Файл инклюдит в /laravel/bootstrap/autoload.php line17

Oxel

Все, разобрался. Mycrypt ему нужен был...

reimax

"Не забудьте поместить каталог ~/.composer/vendor/bin в вашу переменную PATH, чтобы исполняемый файл laravel мог быть найден вашей системой."

система ubuntu, что значит поместить в переменную? куда каталог перенести?

test@ubuntu:~$ composer global require "laravel/installer"
....  
Writing lock file
Generating autoload files
test@ubuntu:~$ laravel new blog
laravel: команда не найдена
Proger_XP
  1. система ubuntu, что значит поместить в переменную?

Ищите в Google, базовый вопрос раз пользуетесь Linux. Дописать в .bashrc:

PATH="$PATH:нужный_путь"
reimax

Установка laravel относится к базовым вопросам системы?

Указанную строку добавил в файл, эффекта нет. Ушел искать ответ на базовый вопрос в гугл.

Proger_XP
  1. Установка laravel относится к базовым вопросам системы?

Базовые вопросы не включают установку Laravel, но установка Laravel включает в себя базовые вопросы.

С Laravel и Composer кроме PATH вам нужно знать о множестве других вещей — как сделать composer.phar исполняемым, что такое права и группы, что такое Vagrant и т.п. Нельзя всё это описать в Установке.

Prowler

Все верно, это относится к настройке ОС по факту и косвенно к Laravel. Нужно это понимать, а не ворчать. А ответил правильно, так можно добавить путь в PATH. Но в Linux'e. А если не знаете как аналогично сделать в винде, может рано за фреймворки браться и нужно освоить основы?

reimax

Prowler
ответ ради того, чтобы просто что то написать? винда то тут при чем?

Proger_XP
меня интересовал только вопрос по PATH. с остальным проблем нет.

Proger_XP
  1. меня интересовал только вопрос по PATH. с остальным проблем нет.

Вы с августа его не решили? Как насчёт Google? С ходу — первый вопрос на русском SO.

shPATH=$PATH:/path/to/composer/...
export PATH
reimax

нет, уже давно решил. спасибо. как раз на so нашел ответ на вопрос.

lemon

127.0.0.1/myapp.my заходит на папку public, а вот так myapp.my не заходит 404 Not Found. В чем может быть проблемка?

crackjack

к сожалению нельзя удалить здесь. задал вопрос на форуме.

ussr12

Кто может помочь в установке купленного скрипта за небольшое вознаграждение?

tahk

УЖАСНАЯ ДОКУМЕНТАЦИЯ. Какие-то шаги пропущены. Что нужно устанавливать самостоятельно, а что установится автоматически, не понятно. Все, что написано в пункте «Включённое ПО» никак не запускается. Или самому устанавливать что-ли? Тогда зачем вся эта мышинная возня! ЖУТЬ!

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

Разметка: ? ?

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