Содержание
PHP
PPA Repository
Пример для установки php5.6:
sudo add-apt-repository -y ppa:ondrej/php sudo apt update sudo apt install php5.6
php-fpm
Установка:
sudo apt install php-fpm
Страница статуса
Для включения страницы необходимо в конфигурационных файлах php-fpm в файле www.conf раскомментировать строчку:
pm.status_path = /status
Одной командой для Alpine Linux:
sed -i "s/;pm.status_path/pm.status_path/" /usr/local/etc/php-fpm.d/www.conf
и добавить в nginx, пример для php-fpm на mngt.domain.com:9000:
location ~ ^/status$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass mngt.domain.com:9000;
}
https://rtfm.co.ua/nginx-php-fpm-vklyuchenie-php-server-status/ - NGINX: PHP-FPM – включение PHP server-status
Apache
Включаем модуль:
sudo a2enmod proxy_fcgi
В VirtualHost добавляем:
ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/var/www/documentroot/ DirectoryIndex /index.php index.php
Перегружаем конфигурацию:
sudo service apache2 reload
Nginx
В конфигурацию сайта добавляем:
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
Запуск на определенном порту
Для запуска fpm на порту (9000):
sudo sed 's/listen = \/run\/php\/php7.0-fpm.sock/listen = 127.0.0.1:9000/' -i /etc/php/7.0/fpm/pool.d/www.conf sudo sed '/listen.allowed_clients = 127.0.0.1/s/^;//' -i /etc/php/7.0/fpm/pool.d/www.conf sudo service php7.0-fpm restart
php.ini
date.timezone = Asia/Yekaterinburg
https://php.net/manual/ru/timezones.php - Список поддерживаемых временных зон
Работа через proxy
Для pear / pecl:
pear config-set http_proxy http://d2proxy.domain.com:3128
Docker
Сборка контейнера php-fpm с поддержкой ldap mysqli xml xmlrpc opcache gd exif и установкой часового пояса:
пример запуска:
docker run -d -p 9000:9000 \ -v /etc/localtime:/etc/localtime:ro -v /etc/timezone:/etc/timezone:ro \ -v /data/docker/www:/var/www --name php-fpm php-fpm
https://github.com/docker-library/php/issues/541 - mcrypt
https://hub.docker.com/r/hermsi/alpine-fpm-php/dockerfile - apcu
https://hub.docker.com/r/llaumgui/php/dockerfile - ldap
Пример запуска PHP-FPM для Daloradius из своего образа (Dockerfile), daloRADIUS находится в /data/docker/nginx/var_www/daloradius:
d run -d -p9000:9000 --mount type=bind,src=/data/docker/nginx/var_www,dst=/var/www/ --name php-fpm fpm-fpm
https://github.com/docker-library/php/issues/75#issuecomment-235773906
Примеры
Проверить GD:
php -r "var_dump(gd_info());"
https://www.php.net/manual/en/function.gd-info.php
Показать установленные модули:
php -m
