Category Archives: PHP

Вопросы, касающиеся PHP

Prometheus: мониторинг PHP-FPM + Ansible роль

8 June 2018
 

 Задача – собирать метрики с PHP-FPM /status. Используем lusotycoon/phpfpm-exporter. Кроме этого экспортёра есть bakins/php-fpm-exporter – но контейнер из его Docker образа постоянно возвращает “Empty reply from server“. Есть peakgames/php-fpm-prometheus – но для него нет Docker образа, а собирать свой не хочется. Имеется также hipages/php-fpm_exporter – но с ним возникли ошибки вида “Error scraping PHP-FPM: invalid character ‘A’ looking for beginning… Read More »

PHP-FPM: Process Manager – dynamic vs ondemand vs static

5 June 2018
 

 Беглый обзор и примеры для настройки PHP-FPM Process Manager – dynamic, ondemand и static. Я не выполнял нагрузочного тестирования при использовании различных конфигураций, так что все выводы о применимости того или иного подхода чисто умозрительные. Тем не менее – тестирование проводиться, думаю, будет, по возможности – добавлю результаты отдельным постом. pm = dynamic Большинство HowTo… Read More »

Memcached: установка, примеры

30 May 2018
 

 Memcached – ещё одна key:value система кеширования, аналогичная Redis. Основное ограничение и отличие – memcached не хранит данные постоянно, т.е. при рестарте сервера данные из памяти будут утеряны. Кратко её установка и примеры использования. Установка pacman На Arch Linux можно установить из репозитория с помощью pacman: Debian/Ubuntu – с помощью apt, заодно PHP и NGINX… Read More »

Docker: PHP Composer и multi-stage билды Docker образов

2 April 2018
 

 Задача – подготовить Docker образ с PHP Composer. Ниже рассмотрим сначала сам Composer (от PHP далёк, и с Composer дела раньше не имел, хотя сам PHP потрогать довелось), потом – пример сборки Docker контейнера и его использование под разными пользователями. Результат можно посмотреть в Github. PHP Composer Composer предназначен для установки общих библиотек при создании… Read More »

Apache: SetEnv – установить переменную окружения

22 July 2016
 

 Требуется задать переменную окружения для пользователя www-data, что бы использовать её в PHP-скриптах. Попытки сделать это через файлы /etc/apache2/envvars, /etc/profile.d/music.sh и /etc/environment результата не принесли. Вместо этого – можно использовать модуль mod_env и директиву SetEnv.

Apache HTTP: Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe

2 December 2015
 

 Ошибка После установки свежего Apache HTTP – возникает ошибка: # apachectl -t [Wed Dec 02 12:32:34.187291 2015] [:crit] [pid 3756:tid 140678182410112] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. AH00013: Pre-configuration failed Action ‘-t’ failed. The Apache error log may have more… Read More »

CentOS: обновление PHP 5.3 до 5.5

7 October 2015
 

 Система: # cat /etc/redhat-release CentOS release 6.7 (Final) Проверяем текущую версию PHP: # php -v PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies Для обновления – потребуются репозитории Remi  и Epel.

NGINX: PHP-FPM – включение PHP server-status

8 October 2014
 

 По аналогии с Apache: включение server-status в связке NGINX+PHP-FPM тоже можно включить подробный вывод информации о выполняющихся скриптах PHP (для самого NGINX имеется другой модуль, в данном случае речь конкретно про PHP-FPM). По-умолчанию он отключён, а пример и описание можно взять в файле /etc/php-fpm.d/www.conf (CentOS) и настроить отдельно для каждого пула PHP-FPM.

NGINX: PHP-FPM – Unknown: Failed to write session data (files).

5 October 2014
 

 После переезда на NGINX+ PHP-FPM – в логе ошибок стали появляться записи вида: 2014/10/04 09:51:00 [error] 15762#0: *155337 FastCGI sent in stderr: “PHP message: PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0” while reading upstream, client: 37.***.***.56, server:… Read More »