Поиск по сайту:

Установка Laravel на Ubuntu для Nginx


Это руководство существует для этих версий ОС

  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 15.10 (Wily Werewolf)

На этой странице

  1. Предварительные условия
  2. Установка Nginx
  3. Установка PHP-FPM
  4. Настройка Nginx для Laravel
  5. Настройка PHP-FPM
  6. Установка Composer
  7. Установка Laravel
  8. Заключение

Мы уже говорили об установке Laravel для серверов Ubuntu на основе Apache в нашем последнем руководстве. В этом руководстве показано, как установить PHP-фреймворк Laravel на установку сервера Nginx.

Предварительные требования

Как всегда, вы должны убедиться, что сервер хорошо обновлен, прежде чем продолжить.

sudo apt-get update
sudo apt-get upgrade

Это руководство основано на предположении, что у вас уже есть настроенный сервер на основе Ubuntu. Также убедитесь, что у вас установлен Git. Если нет, то вы можете следовать нашему руководству, чтобы сделать это.

Установка Nginx

Установка сервера Nginx проста и понятна. Итак, давайте сделаем это.

sudo apt-get install nginx

Установка PHP-FPM

PHP работает с Nginx не так, как с Apache. Для Nginx вам потребуется реализация PHP FastCGI под названием PHP-FPM (диспетчер процессов PHP-FastCGI). Давайте тогда установим PHP. Нам также нужно расширение Mcrypt PHP для работы Laravel.

sudo apt-get install php5-fpm php5-cli php5-mcrypt

Настройка Nginx для Laravel

Прежде чем продолжить, давайте выполним базовую настройку установленного нами сервера Nginx. Сначала нам нужно создать каталог, в который будет установлен Laravel.

sudo mkdir -p /var/www/html/laravel

Когда это сделано, теперь мы должны сообщить Nginx, что именно отсюда будет работать наш сайт. Для этого нам нужно создать запись виртуального хоста в Nginx. Nginx хранит конфигурацию по умолчанию в файле с именем default в /etc/nginx/sites-available/default. Давайте скопируем его и создадим нашу собственную версию файла.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/laravel

Давайте отредактируем файл конфигурации

sudo nano /etc/nginx/sites-available/laravel

Вы увидите что-то вроде

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/html;
        index index.html index.htm;

        server_name localhost;

        location / {
                try_files $uri $uri/ =404;
        }
}

Я удалил комментарии для удобства чтения. Вам нужно будет изменить корневую папку, которая в нашем случае будет /var/www/html/laravel/public. Вам также необходимо изменить переменную server_name либо на доменное имя, которое вы будете использовать, либо на IP-адрес вашего сервера.

Отредактируйте файл так, чтобы он выглядел следующим образом

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/html/laravel/public;
    index index.php index.html index.htm;

    server_name server_domain_or_IP;

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

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Сохраните файл после редактирования. Теперь нам нужно включить этот файл конфигурации. Пока активен только профиль по умолчанию. Для этого нам нужно создать символическую ссылку на файл laravel в каталоге /etc/nginx/sites-enabled. Нам также нужно отключить профиль по умолчанию, чтобы он не мешал нашей установке laravel.

sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/ 
sudo rm /etc/nginx/sites-enabled/default

Наша настройка сервера Nginx завершена. Следующим шагом является настройка PHP-FPM.

Настроить PHP-FPM

Этот шаг прост и требует от нас изменения одной переменной в файле конфигурации PHP. Время открыть php.ini

sudo nano /etc/php5/fpm/php.ini

Найдите в нем следующий текст

;cgi.fix_pathinfo=1

Раскомментируйте переменную, удалив ; спереди и измените его значение на 1, чтобы оно выглядело как

cgi.fix_pathinfo=0

Это говорит PHP не выполнять сценарий с похожим именем, если исходный не найден, что важно с точки зрения безопасности.

Наконец, нам также нужно включить расширение mcrypt, которое мы установили ранее.

sudo php5enmod mcrypt

Вот и все. Теперь просто перезапустите службу PHP-FPM, чтобы загрузить изменения.

sudo service restart php5-fpm

Установка Композитора

Composer — это инструмент управления зависимостями, который позволяет нам устанавливать различные фреймворки и библиотеки PHP с помощью одной команды. Он позаботится обо всех других пакетах и зависимостях, которые вам пришлось бы устанавливать отдельно для установки фреймворка, если бы вы пошли по ручному маршруту. Это может сэкономить много времени и хлопот. Мы будем устанавливать Laravel с помощью Composer.

Скачать Композитор. Сначала убедитесь, что вы находитесь в своем домашнем каталоге.

curl -sS https://getcomposer.org/installer | php

Это загрузит файл composer.phar в ваш домашний каталог. Теперь, если вы хотите, вы можете запустить его отсюда, используя что-то вроде php composer.phar [команда], но, поскольку мы предпочитаем запускать композитор глобально, нам нужно переместить его в более подходящее место, чтобы мы могли легко запускать его.

sudo mv composer.phar /usr/local/bin/composer

Теперь вы можете запустить его напрямую, просто вызвав composer из любого места.

Установка Ларавела

Теперь, когда мы установили композитор, нам нужно установить Laravel. Установите его с помощью следующей команды.

sudo composer create-project laravel/laravel /var/www/html/laravel --prefer-dist

Это загрузит и установит последнюю версию Laravel (на данный момент 5.2) на ваш сервер.

Прежде чем мы закончим урок, нам нужно дать правильные разрешения для некоторых каталогов.

sudo chgrp -R www-data /var/www/html/laravel
sudo chmod -R 775 /var/www/html/laravel/storage

Заключение

Вот и все. Ваша установка Laravel завершена. Теперь запустите http://servername или http://serverip в своем браузере. В случае успеха вы должны увидеть следующий экран.