Это моя третья попытка опубликовать этот вопрос после неправильной публикации как суперпользователю, так и переполнению стека. Надеюсь, это правильное место!
Я взял на себя управление веб-хостингом компании, который представляет собой сервер AWS, на котором установлена собственная версия Linux и Nginx от Amazons.
У меня нет большого опыта работы с Nginx, но мне нужно создать поддомен, на котором будет запущена разрабатываемая версия сайта. Уже существует виртуальный хост "Промежуточный", однако он связан с базой данных основных сайтов, что делает его бесполезным.
Я скопировал промежуточный файл conf из /etc/nginx/conf.d/staging.conf в /etc/nginx/conf.d/dev.conf и изменил все экземпляры «staging» в файле на «dev».
Вот как выглядит файл:
upstream php-dev-backend {
server unix:/tmp/php-fpm-dev.sock weight=1;
}
server {
server_name dev.groundlevel.co.uk;
listen 80;
root /var/www/vhosts/dev.groundlevel.co.uk/web-root;
index index.html index.htm index.php;
access_log /var/log/nginx/dev.groundlevel.co.uk_access_log;
error_log /var/log/nginx/dev.groundlevel.co.uk_error_log;
location @handler {
rewrite / /index.php;
}
location / {
index index.php index.html;
try_files $uri $uri/ @handler;
expires 30d;
}
include magento_security;
include fastcgi_params;
location ~ \.php$ {
if (!-e $request_filename) {
rewrite / /index.php last;
}
include fastcgi_params;
fastcgi_pass php-dev-backend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Однако это приводит к ошибке 502, поскольку /tmp/php-fpm-dev.sock не существует, и я не знаю, как его создать. Или, если я могу изменить файл conf, чтобы не использовать сокет.
Может кто-нибудь объяснить, как запустить сокет? Спасибо!
Проверьте, работает ли PHP-FPM с service php-fpm status
если не запустить службу с service php-fpm start
(и проверьте файл журнала на наличие возможных ошибок). Чтобы включить PHP-FPM при запуске, выполните chkconfig php-fpm on
Если у вас работает не более одного php-fpm, укажите ваши виртуальные хосты на один и тот же сокет php-fpm.