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

Как установить Laravel 5.x с Nginx и PHP-FPM 7.1 на CentOS 7


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

  1. Шаг 1. Установите репозиторий EPEL
  2. Шаг 2. Установите Nginx
  3. Шаг 3. Установите и настройте PHP-FPM 7.1.
  4. Шаг 4. Установите сервер MariaDB
  5. Шаг 5. Установите PHP Composer
  6. Шаг 6. Настройка виртуального хоста Nginx для Laravel
  7. Шаг 7. Установите Laravel
  8. Шаг 8. Настройка SELinux
  9. Шаг 9. Тестирование Laravel
  10. Справочник

Laravel — это PHP-фреймворк с открытым исходным кодом, который следует шаблону проектирования MVC (Model-View-Controller). Он был создан Тейлором Отвеллом в 2011 году как попытка предоставить продвинутую альтернативу фреймворку CodeIgniter (CI). В 2011 году проект Laravel выпустил версии 1 и 2, в этом году была выпущена версия 5.4 со многими улучшениями, такими как поддержка командной строки (CLI) под названием artisan, встроенная поддержка большего количества типов баз данных и улучшенная маршрутизация.

В этом руководстве я покажу вам, как установить Laravel Web Framework с веб-сервером Nginx, PHP-FPM 7.1 и MariaDB в системе CentOS 7. Я покажу вам шаг за шагом, как установить и настроить Laravel под стеком LEMP на сервере CentOS 7.

Это руководство также доступно для Laravel в Ubuntu.

Условие:

  • Сервер CentOS 7.
  • Привилегии root.

Шаг 1 — Установите репозиторий EPEL

EPEL или Extra Package для Enterprise Linux — это дополнительный репозиторий пакетов, который предоставляет полезные программные пакеты, не включенные в официальный репозиторий CentOS. Его можно установить в дистрибутивы Linux на основе RPM, такие как CentOS и Fedora.

В этом руководстве нам понадобится репозиторий EPEL для установки Nginx, поскольку пакетов Nginx нет в официальном репозитории CentOS. Установите репозиторий EPEL с помощью команды yum ниже.

yum -y install epel-release

Репозиторий EPEL установлен.

Шаг 2 — Установите Nginx

В этом уроке мы запустим Laravel под стеком LEMP. Nginx является частью веб-сервера стека LEMP и может быть установлен из репозитория EPEL.

Установите Nginx 1.10 из репозитория EPEL с помощью yum.

yum -y install nginx

Когда установка будет завершена, запустите Nginx и добавьте его для запуска при загрузке.

systemctl start nginx
systemctl enable nginx

Nginx работает на порту 80, проверьте это с помощью команды netstat ниже.

netstat -plntu

Если в результате вы получите Command not found, установите пакет net-tools, как показано ниже.

yum -y install net-tools

Шаг 3. Установите и настройте PHP-FPM 7.1.

Laravel можно установить на сервер с версией PHP >= 5.6.4. В этом руководстве мы будем использовать последнюю версию PHP 7.1, поддерживаемую Laravel.

PHP 7.1 не существует в базовом репозитории CentOS, нам нужно установить его из стороннего репозитория с именем webtatic.

Установите репозиторий webtatic с помощью этой команды rpm.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Теперь мы можем установить PHP-FPM со всеми расширениями, необходимыми для Laravel, с помощью одной команды yum.

yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip

PHP 7.1 был установлен в нашей системе CentOS 7.

Затем настройте PHP, отредактировав файл конфигурации php.ini с помощью vim.

vim /etc/php.ini

Раскомментируйте строку ниже и измените значение на 0.

cgi.fix_pathinfo=0

Сохраните файл и выйдите из редактора.

Теперь отредактируйте файл PHP-FPM www.conf.

vim /etc/php-fpm.d/www.conf

PHP-FPM будет работать под пользователем и группой nginx, измените значение двух строк ниже на nginx.

user = nginx
group = nginx

Вместо использования порта сервера PHP-FPM будет работать в файле сокета. Измените значение прослушивания на путь /run/php-fpm/php-fpm.sock, как показано ниже.

listen = /run/php-fpm/php-fpm.sock

Владельцем файла сокета будет пользователь nginx, а режим разрешений — 660. Раскомментируйте и измените все значения следующим образом:

listen.owner = nginx
listen.group = nginx
listen.mode  = 0660

Для переменных среды раскомментируйте эти строки и установите значения, как показано ниже.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Сохраните файл и выйдите из vim, затем запустите PHP-FPM и включите его во время загрузки.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM работает в файле сокета, проверьте это с помощью приведенной ниже команды.

netstat -pl | grep php-fpm.sock

Установка и настройка PHP и PHP-FPM 7.1 завершена.

Шаг 4 — Установите сервер MariaDB

Вы можете использовать MySQL или PostgreSQL для своего проекта Laravel. В этом руководстве я буду использовать сервер базы данных MariaDB. Он доступен в репозитории CentOS. Установите сервер MariaDB с помощью команды yum ниже.

yum -y install mariadb mariadb-server

Когда установка будет завершена, запустите mariadb и включите его запуск во время загрузки.

systemctl start mariadb
systemctl enable mariadb

MariaDB запущена и работает на порту 3306, проверьте это с помощью команды netstat.

netstat -plntu

Затем настройте пароль root для MariaDB с помощью команды mylsq_secure_installation ниже.

mysql_secure_installation

Введите свой корневой пароль mariadb, удалите анонимного пользователя и т. д.

Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Установка и настройка MariaDB завершена.

Шаг 5 — Установите PHP Composer

PHP composer — это менеджер пакетов для языка программирования PHP. Он был создан в 2011 году и вдохновлен установщиком Node.js npm и Rubys. Установите композитор с помощью команды curl.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

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

composer

PHP Composer установлен на CentOS 7.

Шаг 6. Настройте виртуальный хост Nginx для Laravel

На этом шаге мы создадим конфигурацию виртуального хоста nginx для проекта Laravel. Нам нужно определить корневой веб-каталог для этой установки Laravel, я буду использовать каталог /var/www/laravel в качестве корневого веб-каталога.

Создайте его с помощью команды mkdir ниже:

mkdir -p /var/www/laravel

Затем перейдите в каталог nginx и создайте новый файл конфигурации виртуального хоста laravel.conf в каталоге conf.d.

cd /etc/nginx
vim conf.d/laravel.conf

Вставьте приведенную ниже конфигурацию в файл:

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

    # Log files for Debugging
        access_log /var/log/nginx/laravel-access.log;
        error_log /var/log/nginx/laravel-error.log;

    # Webroot Directory for Laravel project
        root /var/www/laravel/public;
        index index.php index.html index.htm;

        # Your Domain Name
        server_name laravel.hakase-labs.co;

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

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

Сохраните файл и выйдите из vim.

Проверьте конфигурацию nginx и убедитесь в отсутствии ошибок, а затем перезапустите службу nginx.

nginx -t
systemctl restart nginx

Настройка виртуального хоста nginx для Laravel завершена.

Шаг 7 — Установите Laravel

Перед установкой Laravel нам нужно установить unzip на сервер.

yum -y install unzip

Теперь перейдите в корневой веб-каталог laravel /var/www/laravel.

cd /var/www/laravel

Laravel предоставляет два способа установки фреймворка на сервер. Мы можем установить Laravel с помощью установщика laravel, и мы можем установить его с помощью PHP composer. В этом уроке я установлю Laravel, создав новый проект с помощью команды composer.

Запустите команду ниже, чтобы установить Laravel.

composer create-project laravel/laravel .

Дождитесь окончания установки Laravel. Это может занять некоторое время.

Когда установка будет завершена, измените владельца корневого веб-каталога Laravel на пользователя nginx и измените разрешение каталога хранилища на 755 с помощью приведенных ниже команд.

chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage

Установка Laravel завершена.

Шаг 8 — Настройте SELinux

В этом руководстве Laravel будет работать в режиме SELinux Enforcing. Чтобы проверить статус SELinux, выполните приведенную ниже команду.

sestatus

В результате SELinux работает в принудительном режиме.

Далее нам нужно установить инструменты управления SELinux для CentOS 7.

Установите на сервер policycoreutils-python.

yum -y install policycoreutils-python

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

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'

Настройка SELinux для Laravel завершена.

Шаг 9 — Тестирование Laravel

Откройте веб-браузер и введите URL-адрес Laravel вашего сервера. Мы определили доменное имя для Laravel в файле виртуального хоста Nginx. У меня – laravel.hakase-labs.co.

При посещении доменного имени вы увидите домашнюю страницу Laravel.

Установка Laravel с Nginx, PHP-FPM7 и MariaDB на CentOS 7 прошла успешно.

Ссылка

  • https://laravel.com/docs/5.4/installation