Метка: php
Настройка мониторинга php-fpm через Datadog
Для настройки мониторинга необходимо внести некоторые изменеия в pool, который собираемся мониторить, настройку хоста в nginx и подключить конфиг агенту datadog.
Для начала откроем файл пула и раскоментируем следующие строки:
pm.status_path = /status
ping.path = /ping
ping.response = pong
Запуск тестов в selenium на сервере без монитора
Перед каждым разработчиком рано или поздно встает вопрос тестирования его кода. При чем unit-тестирование покрывает не всегда и не все нужды. Для более полного обеспечения качества создаваемого проекта приходится прибегать и к приемочному тестированию.
На сегодняшний день дела обстоят более менее не плохо. Есть набивший многим оскомину селениум. Есть Mink Константина Кудряшова, который позволяет писать функциональные/приемочные тесты в достаточно дружелюбном стиле. И при чем в качестве драйвера использовать не только селениум, среди перечня доступных есть вполне достойный безголовый zombie. Но, после моих тестов наиболее точным тестирование оказалось только через селениум. Зомби по каким-то причинам выкидывал ошибки при парсинге jquery.
Но, минус селениума в том, что ему для работы нужен браузер (по традиции firefox). А firefox требует для запуска дисплей. А на моем сервере, который используется для Continuous Integration монитора нет (это же сервер). Решение было найдено в лице утилиты Xvfb, представляющей из себя виртуальный дисплей.
Введение в фреймворк Kriswallsmith Assetic
Пожалуй, одной из самых мощных библиотек для управления статическими файлами (стилями, джава-скриптами, изображениями) через PHP-скрипты является Assetic. Тем не менее, начать с ходу использовать Assetic под силу далеко не каждому профессионалу. Не говоря уже о новичках, для которых серьезным барьером является и английский язык.
Библиотека решает такие задачи, как:
- Публикация статических фалов, находящихся в модулях за пределами директории веб-сервера
- Объединение мелких файлов скриптов или стилей в один для ускорения загрузки
- Встраивание мелких изображений в файлы стилей в кодировке base64 для ускорения загрузки
- Обработка и компиляция стилей и скриптов из различных языков, таких как less или coffeescript в нативные css и javascript
- Сжатие стилей и скриптов средствами различных оптимайзеров по вкусу
- Оптимизация изображений PNG и Jpeg без потери качества
Данный перевод из официальной документации является введением в Kriswallsmith Assetic
Assetic
Assetic - это фреймворк для управления статическими активами для PHP-приложений.
<?php
use Assetic\Asset\AssetCollection;
use Assetic\Asset\FileAsset;
use Assetic\Asset\GlobAsset;
$js = new AssetCollection(array(
new GlobAsset('/path/to/js/*'),
new FileAsset('/path/to/another.js'),
));
// код объединяет файлы при выгрузке
echo $js->dump();
Отслеживаем реферальные ссылки
Во многих случаях маркетологу, при получении заявки с сайта, интересно знать, откуда пришел посетитель? Также для отслеживания объявлений используются специальные utm метки.
Рассмотрим пример, при котором пользователь приходит на одностраничный сайт и заполняет на нем форму.
<form method="POST">
<input type="text" name="name" placeholder="Ваше имя"><br>
<input type="text" name="phone" placeholder="Ваш телефон"><br>
<button type="submit">Отправить</button>
</form>
А обрабатывается форма скриптом на языке PHP:
<?php
if (isset($_POST['name']) && isset($_POST['phone'])) {
$to = '[email protected]';
$subject = 'Запрос с сайта';
$message = "Имя: {$_POST['name']}\nТелефон: {$_POST['phone']}";
$headers = "From: {$to}\r\n" . "Reply-To: {$to}\r\n" . 'X-Mailer: PHP' . phpversion();
mail($to, $subject, $message, $headers);
}
?>
Файл запуска в SiteForeverCMS
Запуск системы стартует при обращении к скрипту index.php
.
По умолчанию скрипт работает с маршрутом index, который указывает на страницу по-умолчанию.
Для того, чтобы послать запрос на работу с другим маршрутом, нужно необходимый маршрут после index.php. Т.е., чтобы обратиться к странице about
, нужно выполнить запрос index.php/about
. Для страницы about/contacts
необходимо выполнить запрос index.php/about/contacts
. Чтобы сделать запросы более понятными человеку, можно воспользоваться настройками mod_rewrite, входящего в состав сервера apache, либо другим механизмом, выполняющим аналогичные действия у других веб-серверов.
Настройка VDS на Hetzner с дистрибутивом Ubuntu 12.04. Памятка.
В этой памятке собраны основные этапы настройки VDS от провайдера Hetzner. Не смотря на то, что о нем принято отзываться не очень лестно, меня вполне устраивают его тарифы на VDS и качество предоставляемых услуг.
Сразу после установки получаем работающего пользователя root, из под которого управляем системой без использования su. И получаем к нему доступ сразу по ssh после ввода пароля.
Любой админ знает, что это очень опасно. Т.к. если злоумышленнику удастся скомпрометировать ваш пароль, он получит доступ ко всей системе.
Настройка на VDS Nginx+PHP-FPM+SiteForeverCMS
В продолжении статьи о базовой настройке VDS на Hetzner, разберем вопрос настройки Nginx и PHP-FPM и рассмотрим некоторые вопросы по работе сайта на этой связке на примере SiteForeverCMS.
Для начала удалим установленный на VDS апач (мне он все равно больше не понадобится).
sudo apt-get purge apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5
Т.о. мы выпилим апач из системы, как будто его никогда в ней и не было. На всякий случай можно посмотреть, какие пакеты установлены в системе, и убедится, что апача точно больше нет:
dpkg-query -W --showformat='${Package}\n' | grep apache
Дальше нам надо установить nginx и php-fpm:
sudo apt-get install nginx
sudo apt-get install php5-fpm