Первую статью хочу посвятить установке и настройке 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
Оставьте первый коментарий