Установка NGINX и php-fpm в Ubuntu 20.04
В данной статье рассмотрим как установить веб-сервер NGINX и модуль PHP-FPM. Для начала обновим индекс пакетов следующей командой:
sudo apt update
Введем пароль администратора.
Далее следующей командой установим nginx:
sudo apt install nginx
Теперь если открыть браузер и перейти по адресу localhost наш веб-сервер открывается:
Теперь установим php и модуль php-fpm. Php-fpm это менеджер процессов fast-cgi. Он является альтернативной реализацией режима fast-cgi в php. В связке с nginx обеспечивают более высокую скорость обработки запросов, чем связка nginx + apache, которая используется по умолчанию.
sudo apt install php php-fpm
Далее перейдем к файлам веб-сервера. Они находятся по пути /var/www.
cd /var/www/
Следующей командой сделаем нашего пользователя владельцем папки:
sudo chown -R $USER:$USER html/
Перейдем в папку html и создадим папку test.loc:
cd html
mkdir test.loc
Перейдем в неё.
cd test.loc
И в ней создадим файл index.php.
nano index.php
Который выведет информацию о php, при помощи функции phpinfo().
<?php
echo phpinfo();
Теперь попробуем открыть наш тестовый домен в браузере.
Как мы видим наш домен не открывается. Для того чтобы, домен открывался необходимо добавить список доступных доменов сервера. Для этого перейдем по следующему пути:
cd /etc/nginx/sites-available/
В данной папке уже есть стандартный конфиг. Скопируем его следующей командой и назовем test.loc. Выполним эту команду от имени администратора.
sudo cp default test.loc
Теперь отредактируем наш файл. Тоже от имени администратора.
sudo nano test.loc
Удалим лишние строчки. В качестве корневой директории укажем нашу папку. А в качестве главного файла укажем index.php. В поле server_name укажем
наш домен: test.loc.
server {
listen 80;
listen [::]:80;
root /var/www/html/test.loc;
index index.php;
server_name test.loc;
...
А теперь, для того, чтобы fast-cgi работал, необходимо раскомментировать некоторые строчки. Так как мы используем модуль php-fpm раcкомментируем строчку напротив php-fpm и раскомментируем последние строчки, для того чтобы запретить доступ .haccess файлам.
...
location ~ \.php$ {
include snippers/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
В итоге наш конфигурационный файл примет следующий вид:
server {
listen 80;
listen [::]:80;
root /var/www/html/test.loc;
index index.php;
server_name test.loc;
location / {
try_files $uri $uri/ = 404;
}
location ~ \.php$ {
include snippers/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Теперь перейдем в папку sites-enabled.
cd ../sites-enabled
ls -la
В данной папке уже есть стандартная символьная ссылка. Добавим символьную ссылку к нашему домену. Для этого пропишем следующую команду:
sudo ln -s /etc/nginx/sites-available/test.loc /etc/nginx/sites-enabled/
ls -la
Для того, чтобы изменения вступили в силу перезагрузим nginx следующей командой.
sudo nginx -s reload
Снова попробуем перейти на наш тестовый домен. Как мы видим наш домен не открывается. Для того, чтобы он заработал необходимо добавить запись в файл hosts. Отредактируем файл hosts от имени администратора и добавим следующую строчку:
sudo nano /etc/hosts
127.0.0.1 test.loc
Снова попробуем перейти по нашему домену.
Как мы видим наш домен успешно заработал. А в качестве api сервера используется fpm и fast-cgi.
Изменим наш индексный файл.
nano /var/www/html/test.loc/index.php
<?php
echo Hello;
Как мы видим все работает.
На этом установка веб-сервера завершена. До встречи в следующих статьях :)
Если вам понравилась статья, то поделитесь ею в социальных сетях: