Это моя третья попытка опубликовать этот вопрос после неправильной публикации как суперпользователю, так и переполнению стека. Надеюсь, теперь это правильное место!
Я взял на себя управление веб-хостингом компании, который представляет собой сервер AWS, на котором работает собственная версия Linux и Nginx от Amazons.
У меня нет большого опыта работы с Nginx, но мне нужно создать поддомен, на котором будет запущена версия сайта для разработчиков. Уже существует виртуальный хост "Staging", однако он связан с базой данных основных сайтов, что делает его бесполезным.
Я скопировал файл staging 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, укажите ваши виртуальные хосты на один и тот же сокет php-fpm.
Проверить, запущен ли PHP-FPM со службой php-fpm status
, если не запустить службу с помощью службы php-fpm start
(и проверьте файл журнала на наличие возможных ошибок). Чтобы включить PHP-FPM при запуске, запустите chkconfig php-fpm на