Веб-сервер на Ununtu — установка php, php-fpm, nginx

d1
d1mon
23 октября, 20:31

Система Ubuntu хороша для десктопного использования. Настройка веб-сервера на Ubuntu — это обычно среда разработки. Если вам необходим веб-cервер для рабочей копии сайта, то лучше использовать Debian. Вот полное руководство по теме.

Для рабочей копии сайта использовать Ubuntu стоит только в том случае, если софт, который вы будете использовать, требует обязательно этой системы и там в требованиях четко прописано, что Debian не подойдет. Такое встречается крайне редко.

Чтобы каждый раз не вводить sudo введем один раз:

sudo su

PHP

Подключение репозитория для установки одновременно нескольких разных версий PHP:

add-apt-repository ppa:ondrej/php

Теперь ставим нужные версии:

apt install php5.6-fpm php5.6-cli php5.6-common php5.6-curl php5.6-mbstring php5.6-mysql php5.6-xml php5.6-gd php5.6-zip php5.6-bcmath
apt install php7.3-fpm php7.3-cli php7.3-common php7.3-curl php7.3-mbstring php7.3-mysql php7.3-xml php7.3-gd php7.3-zip php7.3-bcmath

Установка специально с указанием конкретных компонентов, чтобы не ставить Apache.

Конфиги располагаются здесь /etc/php/версия/fpm/php.ini.

После их настройки перезагрузка, соответственно:

service php5.6-fpm reload
service php7.3-fpm reload

Nginx

Установка Nginx:

apt install nginx

Простой пример конфига для сайта:

server {
    listen 80;
    listen [::]:80;
    server_name d1mon.com;
    root /var/www/d1mon.com;
    index index.php;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # Используем PHP нужной версии.
        # fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }

    access_log /var/log/nginx/d1mon_access.log;
    error_log /var/log/nginx/d1mon_error.log;
}

Конфиг записывается в файл с произвольным именем, но в определенный каталог.

Удобно назвать его доменом сайта /etc/nginx/sites-available/d1mon.com.

Активация конфига:

ln -s /etc/nginx/sites-available/d1mon.com /etc/nginx/sites-enabled/d1mon.com

Перезагрузка Nginx:

service nginx reload

MySQL

Вместо обычного MySQL давно привык использовать Percona Server. Установка:

wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
percona-release setup ps57
apt install percona-server-server-5.7

Для Elementary OS 5.0 Juno надо конкретно указывать название релиза:

wget https://repo.percona.com/apt/percona-release_latest.bionic_all.deb
dpkg -i percona-release_latest.bionic_all.deb
percona-release setup ps57

Потом исправлять источники и после этого уже можно устанавливать:

apt install percona-server-server-5.7

Установим сразу рабочий софт, он все равно понадобится:

apt install composer git

Теперь через сomposer можно установить phpMyAdmin:

composer create-project phpmyadmin/phpmyadmin --repository-url=https://www.phpmyadmin.net/packages.json --no-dev

Выполнять команду лучше сразу в нужном каталоге, например в /var/www/webdev.loc.

Получим /var/www/webdev.loc/phpmyadmin. Останется настроить сайт webdev.loc и можно будет обращаться соответствующим образом — webdev.loc/phpmyadmin.

Комментарии