Перейти к основному содержимому
Версия: 7.0

Alma/Rocky/CentOS/MSVSPhere

Базовые действия

  • Перед обновлением PHP, если Пассворк установлен в облачной/виртуальной среде, создать снимок виртуального состояния ОС для восстановления работоспособности в случае некорректного обновления;
  • Получить права root и обновить локальную базу данных пакетов:
sudo -i 
dnf update

Удаление PHP

Удалить основной пакет, драйверы и расширения PHP:

dnf remove -y php php-json php-ldap php-xml php-bcmath php-mbstring php-curl php-phalcon gcc php-pear curl-devel openssl-devel pcre-devel php-devel php-mysql libtool pcre-devel php-pecl-psr

Удалить директорию с вложенными файлами PHP:

rm -rf /etc/php.d

Отключить модуль PHP из репозитория Remi:

dnf module disable php:remi-8.2

Установка PHP

Загрузить PHP архив в текущую директорию:

curl -O https://repos.passwork.ru/repository/php/builds/83/linux/el/90/x86_64/php_latest.tar.gz

Создать директорию и разархивировать содержимое:

mkdir ./php && tar -zxvf ./php_latest.tar.gz -C ./php/

Установить все RPM пакеты (.rpm) из архива:

dnf -y install ./php/*.rpm

Установить PEAR (pecl) утилиту с помощью go-pear.phar:

php ./php/go-pear.phar
осторожно

Выполнить стандартную (без изменений) установку — Enter

Изменить объём RAM, доступный для выполнения PHP скриптов:

sed -i 's/^memory_limit\s*=.*/memory_limit = 256M/' /etc/php.ini
warning

Рекомендуется увеличивать параметр memory_limit с 256M до 512M или выше, если в Пассворке планируется большое количество пользователей.

Установить PHP MongoDB драйвер:

pecl install ./php/mongodb-*.tgz

Создать файлы конфигурации для загрузки и включения PHP MongoDB:

echo "extension=mongodb.so" | tee /etc/php.d/20-mongodb.ini

Изменение обработчика PHP веб-сервера на php-fpm

Убедиться, что служба php-fpm запущена:

systemctl status php-fpm

Запустить и активировать автозапуск службы, если она остановлена:

systemctl start php-fpm
systemctl enable php-fpm

Отредактировать виртуальный хост сервера с Пассворком, который настроен на работу по протоколу HTTPS:

nano /etc/httpd/conf.d/ssl.conf

Изменить обработчик .php-файлов, указав проксирование запросов к сокету php-fpm:

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

Проверить, что файл конфигурации виртуального хоста соответствует примеру:

<VirtualHost _default_:443>

DocumentRoot "/var/www/public"
ServerName passwork:443

<Directory /var/www/public>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLHonorCipherOrder on
SSLCipherSuite PROFILE=SYSTEM
SSLProxyCipherSuite PROFILE=SYSTEM

SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

Перезапустить службы:

systemctl restart php-fpm
systemctl restart httpd