РЕД ОС
В инст рукции используются переключаемые блоки кода для разделения команд в зависимости от версии операционной системы.
Базовые действия
- Перед обновлением PHP, если Пассворк установлен в облачной/виртуальной среде, создать снимок виртуального состояния ОС для восстановления работоспособности в случае некорректного обновления;
- Получить права
root
и обновить локальную базу данных пакетов:
- shell
sudo -i
yum update
Удаление PHP
Удалить основной пакет, драйверы и расширения PHP:
- shell
yum remove php php-* -y
Удалить директорию с вложенными файлами PHP:
- shell
rm -rf /etc/php.d
Установка PHP
Загрузить PHP архив в текущую директорию:
- RedOS 8
- RedOS 7.3
curl -O https://repos.passwork.ru/repository/php/builds/83/linux/redos/80/x86_64/php_latest.tar.gz
curl -O https://repos.passwork.ru/repository/php/builds/83/linux/redos/73/x86_64/php_latest.tar.gz
В случае ошибок, получить архив вручную:
Создать директорию и разархивировать содержимое:
- shell
mkdir ./php && tar -zxvf ./php_latest.tar.gz -C ./php/
Установить все RPM пакеты (.rpm
) из архива:
- shell
dnf -y install ./php/*.rpm
Установить PEAR (pecl
) утилиту с помощью go-pear.phar
:
- shell
php ./php/go-pear.phar
Выполнить стандартную (без изменений) установку — Enter
Установить PHP MongoDB драйвер:
- shell
pecl install ./php/mongodb-*.tgz
Создать файлы конфигурации для загрузки и включения PHP MongoDB:
- shell
echo "extension=mongodb.so" | tee /etc/php.d/20-mongodb.ini
Изменение обработчика PHP веб-сервера на php-fpm
Убедиться, что служба php-fpm запущена:
- shell
systemctl status php-fpm
Запустить и активировать автозапуск службы, если она остановлена:
- shell
systemctl start php-fpm
systemctl enable php-fpm
Отредактировать виртуальный хост сервера с Пассворком, который настроен на работу по протоколу HTTPS:
- shell
nano /etc/httpd/conf.d/ssl.conf
Изменить обработчик .php-файлов, указав проксирование запросов к сокету php-fpm:
- shell
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost/"
</FilesMatch>
Проверить, что файл конфигурации виртуального хоста соответствует примеру:
- shell
<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>
Перезапустить службы:
- shell
systemctl restart php-fpm
systemctl restart httpd