[Решено] VestaCP (Vesta) open_basedir restriction in effect или правка любых опций в конфигах

У панели управления Vesta запрещен инклуд в папки отличные от %docroot% и %home%/%user%/tmp, поэтому если вам необходимо заинклудить любой файл выше чем public_html, то получится облом в виде Warning: include(): open_basedir restriction in effect. File(/home/admin/web/includetest.php) is not within the allowed path(s): (/home/admin/web/*******/public_html:/home/admin/tmp) in /home/admin/web/*******/public_html/include.php on line 7 Решений в данном случае несколько.

Решено — DEFAULT CURRENT_TIMESTAMP / NOW() для типа DATETIME.

При импорте одной базы у меня начала выскакивать ошибка ERROR 1067 (42000) at line 1623: Invalid default value for ‘date_added’ а сама проблемная строка в дампе имела такой вид `date_added` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘дата добавления страницы’, Оказалось, что такой вариант записи подходит для MySQL 5.6 и выше, а у меня на сервере оказалась древняя MySQL 5.1. (sic). Решить эту проблему можно двумя способами.

Robots.txt для мультидоменного сайта

Несложное решение для реализации robots.txt на мультидоменных сайтах — обычно в таких файлах трудность составляет только указание пути к sitemap.xml, т.к. зависит от домена, а все остальное одинаковое. 

Перенос Symfony на новый хостинг (для чайников)

В процессе оптимизации хостингов, решили мы перенести сайты с одного на другой, все сайты перенеслись нормально, а один начал выдавать ошибку 500, и имел довольно странную структуру, как оказалось сайт был сделан на Symfony. Ниже я расскажу как перенести Symfony на новый хостинг рабоче-крестьянским методом, т.е. для тех кто этот фреймворк максимум «1 раз видел», итак — поехали.

ISPmanager 5 — резервное копирование в формате tgz (как в Ispmanager 4)

Как на меня новый метод резервного копирования в ISPManager5 жутко неудобный — во первых это новый внутренний формат DAR, во вторых я так и не нашел как включить нормальный планировщик. Немного порывшись в инете я нашел что можно сделать откат на старый вариант бекапов (по крайней мере для рута), сделать это довольно просто.

PHP определить https или http используется при подключении

Заголовок вышел немного корявый, но суть следующая — как на PHP определить по какому протоколу http или https выполняется текущее подключение к сайту. Это необходимо для тех скриптов, которые используют в своей работе тег <base>, тогда все относительные ссылки будут подключатся по нужным протоколам. Хотя в документации указано что можно проверять $_SERVER[‘HTTPS’] — все оказалось немного сложнее.

Практическая задача для тестирования — вывод формы оплаты в только в рабочее время.

Несложная задачка для тестирования PHP программистов после курсов. Условие «Необходимо настроить вывод формы оплаты таким образом, чтобы она работала с 8.30 до 16.30 в будние дни. В выходные и праздники форма работать не должна.»

Last-Modified для SimplaCMS

Известно что применение Last-Modified ускоряет поисковую индексацию, т.к. число страниц, бот ПС с сайта за один заход условно говоря ограничено, то передавая боту дату последней модификации страницы можно увеличить краулинговый бюджет. Т.к. у меня в арсенале имеется сайт с 120000+ продуктов на SimplaCMS, который не совсем хорошо индексируется, я давно хотел внедрить это в движок, однако все найденные мною решения требовали довольно сильной модификации кода, поэтому я решил пойти своим путем, тем более что в SimplaCMS по дефолту есть даже поле с датой создания товара.

301 Редирект кириллических url

О том что кириллические URL это нехорошо написано уже немало, и вот настал тот момент когда мне понадобилось решить данную задачу для WordPress. Через htaccess у меня работать не захотело, поэтому я реализовал это очень простым скриптом на PHP