Архив рубрики: PHP

PHP: Hypertext Preprocessor is a server-side scripting language designed for web development.

Jenkins: запуск PHPUnit из Codeception по Pull Reguest в Github и Allure-репорты

6 июня 2019
 

 Задача — запускать PHPUnit для тестов кода бекенда. Сам PHPUnit будет запускаться из Codeception. Задача в Jenkins должна триггериться из Github, при создании Pull Request — используем Github Pull-Request Builder плагин. Для просмотра отчётов о тестах — используем Allure. Jenkins запущен в Docker-контейнере, и все процессы будет запускать в контейнерах. Проверка тестов Что бы получить… Читать далее »

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

8 июня 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… Читать далее »

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

5 июня 2018
 

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

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

30 мая 2018
 

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

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

2 апреля 2018
 

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

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

22 июля 2016
 

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

WordPress: добавляем отображение даты поста

24 февраля 2016
 

 После переезда на Amazon новая тема оформления не отображала дату публикации постов на главной странице: Неудобно самому, неудобно посетителям. Хотя сама тема мне очень нравится.

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

2 декабря 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… Читать далее »

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

7 октября 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 октября 2014
 

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