Метка: php
Настройка мониторинга php-fpm через Datadog
Для настройки мониторинга необходимо внести некоторые изменеия в pool, который собираемся мониторить, настройку хоста в nginx и подключить конфиг агенту datadog.
Для начала откроем файл пула и раскоментируем следующие строки:
pm.status_path = /status
ping.path = /ping
ping.response = pong
Введение в фреймворк 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 = 'nobody@example.com';
$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