symfony + nginx

Установил я nginx, настроил виртуальные хосты. Но мне понадобилось залить symfony 5 запускать через CLI, но обращаться не через ip а допустим test.ru. В nginx в настройках виртуального хоста пишу, чтобы он слушал 9000 порт, но запускаю через symfony server:start на 9000 порту, symfony сервер запускается на 9001 порту или увеличивается на еденицу, тоесть запускается на следующем порту, якобы этот порт занят, если в настройках nginx убрать строку listen, symfony запускается на 9000 порту как и положено. Чего я не понимаю? что я делаю не так?


Ответы (2 шт):

Автор решения: danil

Если вы планируете запускать сервер силами самой симфони, то можете использовать вот такой конфиг для nginx:

server {
    listen   80;

    server_name test.ru;
    client_max_body_size 32M;

    location / {
        proxy_bind        $host:80;
        proxy_set_header  HOST $host;
        proxy_set_header  X-Forwarded-Proto $scheme;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        port_in_redirect  off;
        proxy_pass        http://127.0.0.1:9000;
    }
}

Суть в том, что nginx слушает 80 порт (http) и все запросы к сайту test.ru перенаправляет на http://127.0.0.1:9000. В hosts файле надо не забыть прописать

127.0.0.1 test.ru

ps. На боевом сервере лучше использовать php-fpm.

→ Ссылка
Автор решения: ТохаКартоха

файл конфига получился такой

server {
listen 127.0.0.1:80; #слушаем определнноый ип адрес
server_name test.ru; #домен какой будет слушать
root /home/pc/dev_/bibi/public;  #корневая папка индекс.пхп
index index.php;
client_max_body_size 100m;  #максимальный размер тела запроса
    location / {
        try_files $uri $uri/ /index.php$is_args$args;  #чпу
        proxy_pass http://127.0.0.1:8000; #на каком адресе запущен прокси сервер на какой нужно перенаправить
    }
    location ~ \.php {
        try_files $uri /index.php =404;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    location ~ /\.(?:ht|git|svn) {
        deny all;
    }
}
→ Ссылка