Перейти к содержанию

PHP-FPM установка на AstraLinux

Первую статью хочу посвятить установке и настройке PHP-FPM в AstraLinux. Привлекла меня эта ось только тем что ее разработали наши шаманы разработчики. В данной статье я буду проводить действия на бесплатной версии.

Ну чтож начнем с того что из репазиториев вы максиму установите 7.0 версии и я решил просто собрать из исходников PHP-7,4.

Переходи в терминал и с начла все обновляем(все действия от root):

apt update && apt upgrade

Установим необходимые пакеты:

apt install autoconf build-essential curl libtool libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 libreadline-dev libzip-dev libzip4 nginx openssl pkg-config zlib1g-dev libsqlite3-dev sqlite3 libonig-dev libpq-dev -y

Загружаем архив с исходниками:

cd /tmp/ && wget  https://www.php.net/distributions/php-7.4.21.tar.gz && cd php-7.4.21

Создадим скрипт:

vi conf.sh 
./configure --with-config-file-path=/etc/php/php7.4 \
--sysconfdir=/etc/php/php7.4 \
 --enable-mysqlnd \
    --with-pdo-mysql \
    --with-pdo-mysql=mysqlnd \
    --with-pdo-pgsql=/usr/bin/pg_config \
    --enable-bcmath \
    --enable-fpm \
    --with-fpm-user=www-data \
    --with-fpm-group=www-data \
    --enable-mbstring \
    --enable-phpdbg \
    --enable-shmop \
    --enable-sockets \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --with-zlib \
    --with-curl \
    --with-pear \
    --with-openssl \
    --enable-pcntl \
    --with-readline

Дадим ему необходимые права:

chmod +x conf.sh

Начинаем собирать нашу сборку:

make

Запускаем установку:

make install

Дальше необходимо скопировать конфигурационные файлы:

cp /etc/php/php7.4/php-fpm.conf.default /etc/php/php7.4/php-fpm.conf
cp /etc/php/php7.4/php-fpm.d/www.conf.default /etc/php/php7.4/php-fpm.d/www.conf

Создадим сервис для нашего FPM:

 vi /lib/systemd/system/php-7.4-fpm.service
[Unit]
Description=The PHP 7.4 FastCGI Process Manager
After=network.target

[Service]
Type=simple
PIDFile=/var/run/php/php7.4-fpm.pid
ExecStart=/usr/local/sbin/php-fpm --nodaemonize --fpm-config /etc/php/php7.4/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

Сделаем перезагрузку:

systemctl daemon-reload

Добавим в автозагрузку:

systemctl enable php-7.4-fpm.service

Запустим нашего демона:

systemctl start php-7.4-fpm.service
systemctl start php-7.4-fpm.service
php-7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2023-06-18 18:42:27 MSK; 45min ago
     Docs: man:php-fpm7.4(8)
 Main PID: 5725 (php-fpm)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/php7.4-fpm.service
           ├─5725 php-fpm: master process (/etc/php/php7.4/php-fpm.conf)
           ├─5863 php-fpm: pool www
           ├─5868 php-fpm: pool www
           └─5870 php-fpm: pool www

Все работает но давайте все поднимем связку NGINX -PHP-FPM:

apt install -y nginx 

Переходим в конфиг и заменим его содиржимое:

server {
        listen 80 default_server;
        listen [::]:80 default_server;


        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.php index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass 127.0.0.1:9000;
        }
}

Для теста выведем phpinfo:

echo "<?php echo phpinfo(); ?>" >> /var/www/html/test.php

Перезапускаем NGINX:

nginx -s reload

Переходи на сайт http://ipadresserver/test.php

Опубликовано в рубрикеLINUX

Оставьте первый коментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *