Поиск по метке: PHP
PHP-FPM и Nginx
После обновления на живом сервере с php5.3 до php5.5 столкнулся с неприятной проблемой. Socket-файл, для прослушивания nginx-ом, который создаёт при старте демон php5-fpm, стал недоступен для nginx, который запускается от www-data. Лечится это дело очень просто, необходимо в pool-конфиги добавить следующее:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
Думаю по названиям настроек всё более чем понятно. Жаль только, что когда я попробовал перенести эти настройки на уровень выше, в сам php-fpm.conf, демон споткнулся при старте. Так было бы удобнее.
PHP-FPM и short_open_tag
Перенеся сервер, на котором расположен deltaplan.kz, с apache2 на php-fpm, я столкнулся с неожиданной проблемой. Несмотря на правильным образом настроенные nginx конфиг и php-fpm pool GPS-подсайта — сервер упрямо, вместо того, чтобы запускать PHP файлы, возвращал их исходный код. Первым делом я вспомнил про security.limit_extensions = .php. Затем полез мучить различные fastcgi-параметры nginx хоста. Однако враг зашёл с другой стороны. Дело в том что в /etc/php5/fpm/php.ini по непонятным мне причинам был установлен short_open_tag: Off, в то время как XC Leonardo вовсю использует сокращённый вариант <? ?>. Разрешив эту опцию и перегрузив php5-fpm всё взлетело.
Регулярное выражение для никнейма
Сия заметка о том, как написать регулярное выражение для проверки валидности никнейма. На мой взгляд, валидным никнеймом является ник начинающийся с алфавитного символа, и содержащий только символы алфавита, цифры, символы - и _, и пробел. Ник не должен быть короче 4 символов. Загвоздка заключается в том, что алфавит может быть любым - японский, китайский, кирилический, греческий...
Если написать просто \w, то мы ~ получим - A-Za-z0-9, что точно не соответствует задаче. Решение - \p{L} . В php сработает с версии >= 5.1.0, причём, если верить этому источнику , pcre должен быть собран с опцией "--enable-unicode-properties". Я использую php5.3 из коробки, у меня всё заработало :) Итак, регулярка получается следующей - #^\ p{L} [ \p{L} \d-_\ ]+$# u .