Переключаем bitrixvm на php-fpm
Простой способ переключиться на php-fpm в стандартном битрикс окружении.
Для начала устанавливаем сам php-fpm и запускаем его
yum install php-fpm systemctl start php-fpm
Далее добавляем конфиг nginx: /etc/nginx/bx/site_settings/default/z_bx_custom.conf, где default - ваш сайт.
location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @php; } } if (!-e $request_filename) { rewrite ^(.*)$ /bitrix/urlrewrite.php last; } location @php { fastcgi_index index.php; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$; try_files $uri =404; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.git { deny all; }
Т.к. нельзя переопределить location / {}, его придётся убрать из /etc/nginx/bx/conf/bitrix.conf (в том числе location ~ /). Будьте внимательны, эта правка слетит при обновлении окружения.
Перезапускаем nginx:
systemctl restart nginx
Готово. Чтобы узнать в каком режиме у вас работает php, можно выполнить код:
echo php_sapi_name(); // должно быть fpm-fcgi
Теперь можно отключить apache, он больше не нужен.
У меня всё заработало именно в таком варианте. Но, если что, стоит проверить настройки php-fpm: /etc/php-fpm.d/www.conf, должны быть такие параметры (помимо остальных):
listen = /var/run/php-fpm/php-fpm.sock user = bitrix group = bitrix listen.owner = bitrix listen.group = bitrix listen.mode = 0660
И еще, я не спец по nginx, конфиг подсмотрел с разных источников, если есть что добавить, пишите, буду рад обсудить.
Если после настройки у вас не работает авторизация, проверьте где хранятся сессии, если в файлах, то с этим могут быть проблемы. Решить можно изменением места хранения сессий на БД или memcache, redis.
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.