Конфигурация Symfony2 + Nginx на CentOS6, не работающем

Я - stucked здесь приблизительно 2 дня, пытаясь выяснить, как сделать это выполнение, надеяться, что кто-то мог указать на то, что я делаю неправильно.

Попытка выполнить Symfony2 по Nginx-CentOS 6 с этим конфигурационным файлом.

upstream phpfcgi {
    server 127.0.0.1:9000;
    # server unix:/var/run/php5-fpm.sock; #for PHP-FPM running on UNIX socket
}
server {
    listen 80;

    server_name symfony2;
    root /var/www/project/web;

    error_log /var/log/nginx/symfony2.error.log;
    access_log /var/log/nginx/symfony2.access.log;

    # strip app.php/ prefix if it is present
    rewrite ^/app\.php/?(.*)$ /$1 permanent;

    location / {
        index app.php;
        try_files $uri @rewriteapp;
    }

    location @rewriteapp {
        rewrite ^(.*)$ /app.php/$1 last;
    }

    # pass the PHP scripts to FastCGI server from upstream phpfcgi
    location ~ ^/(app)\.php(/|$) {
        include /etc/nginx/fastcgi.conf;
        fastcgi_pass phpfcgi;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param  HTTPS off;
    }
}

Полученный отсюда, здесь и здесь. Я играл вокруг внесения небольших изменений тут и там, главным образом на основе того, что говорят те ссылки.

Мой php-fpm.d/www.conf файл похож на это...

[www]
listen = 127.0.0.1:9000
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
user = nginx
group = nginx
pm = dynamic
pm.max_children = 50
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 10
pm.max_requests = 500
request_terminate_timeout = 45
request_slowlog_timeout = 45
slowlog = /var/log/php-fpm/www-slow.log
catch_workers_output = yes
security.limit_extensions = .php .php5
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/nginx/tmp/session_php

От навигатора я получаю печально известное "Никакой входной указанный файл". ошибка. Журналы похожи...

[/var/log/nginx/symfony2.error.log]
2015/03/13 12:49:59 [error] 14298#0: *1 FastCGI sent in stderr: "Unable to open  
primary script: /var/www/project/web/app.php (No such file or directory)" while  
reading response header from upstream, client: 192.168.0.132, server: symfony2,  
request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host:  
"192.168.0.199"

[/var/log/nginx/symfony2.error.log]
[13-Mar-2015 12:49:59] WARNING: [pool www] child 14279 said into stderr:  
"ERROR: Unable to open primary script: /var/www/project/web/app.php (No such  
file or directory)"

Проект находится в/var/www/project и с этим набором полномочий. Измененный тем, что я считал здесь.

drwxr-sr-x. 5 nginx nginx   4096 mar 10 17:00 app
drwxr-sr-x. 2 nginx nginx   4096 mar 10 17:00 bin
-rwxr-sr-x. 1 nginx nginx   2717 mar 10 17:00 composer.json
-rwxr-sr-x. 1 nginx nginx 100442 mar 10 17:00 composer.lock
drwxr-sr-x. 2 nginx nginx   4096 mar 10 17:00 lib
-rwxr-sr-x. 1 nginx nginx   1065 mar 10 17:00 LICENSE
drwxr-sr-x. 3 nginx nginx   4096 mar 10 17:00 nbproject
-rwxr-sr-x. 1 nginx nginx   5750 mar 10 17:00 README.md
drwxr-sr-x. 3 nginx nginx   4096 mar 10 17:00 src
-rwxr-sr-x. 1 nginx nginx   1308 mar 10 17:00 UPGRADE-2.2.md
-rwxr-sr-x. 1 nginx nginx   1962 mar 10 17:00 UPGRADE-2.3.md
-rwxr-sr-x. 1 nginx nginx    356 mar 10 17:00 UPGRADE-2.4.md
-rwxr-sr-x. 1 nginx nginx   8499 mar 10 17:00 UPGRADE.md
drwxr-sr-x. 3 nginx nginx   4096 mar 10 17:00 web

Я уже гуглю его много и тестирую совсем другие вещи, но ничего подобного, кажется, не работает :S. Если у кого-либо есть какая-либо идея, я стремлюсь знать. Заранее спасибо.

Отредактируйте 1 Проверку app.php, там...

stat /var/www/project/web/app.php 
  File: `/var/www/project/web/app.php'
  Size: 960         Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 7997857     Links: 1
Access: (2755/-rwxr-sr-x)  Uid: (  496/   nginx)   Gid: (  493/   nginx)
Access: 2015-03-11 11:10:15.246469137 +0100
Modify: 2015-03-10 17:00:33.026535520 +0100
Change: 2015-03-13 11:55:52.755828687 +0100
0
задан 23 May 2017 в 15:41
1 ответ

Что на самом деле произошло, до сих пор неизвестно, но позвольте мне обновить то, что я сделал, может быть, это может быть полезно для кого-то в будущем.

Я думал, что это был какой-то король разрешения, поэтому я попробовал chmod 777 и chown nobody:nobody с разными конфигурационными файлами, но та же самая ошибка сохранилась. Наконец, я попробовал простой конфигурационный файл nginx без "трюков symfony", тот, который я пытался проверить правильность установки LEMP перед клонированием кода проекта.

server {
    server_name default;
    access_log /var/log/nginx/default_access.log;
    error_log /var/log/nginx/default_error.log;

    #if defined in each location directive can be defined diferent root locations.
    root /var/www;

    location / {
        index index.html index.php;
    }

    error_page 404              /404.html;
    location = /404.html {
    }

    error_page 500 502 503 504  /50x.html;
    location = /50x.html {
    }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Смысл в том, чтобы увидеть типовой приветственную страницу от nginx и тестовую страницу, чтобы убедиться, что PHP-FastCGI правильно сконфигурирован. Я поместил файлы из установки nginx по умолчанию на /var/www/и вуаля! Я получил доступ к index.htmlи к info.php с успешными результатами. Хорошо, затем я создаю тестовую папку, чтобы поместить эти файлы туда и скопировать их в папку моего проекта symfony. Все выглядело так...

[root@machine www]# tree -L 2
.
├── 404.html
├── 50x.html
├── test 
    ├── index.html      <<<<<
    └── info.php        <<<<<
├── index.html          <<<<<
├── info.php            <<<<<
└── project
    ├── app
    ├── bin
    ├── composer.json
    ├── composer.lock
    ├── index.html     <<<<<
    ├── info.php       <<<<<
    ├── lib
    ├── LICENSE
    ├── nbproject
    ├── private
    ├── README.md
    ├── src
    ├── UPGRADE-2.2.md
    ├── UPGRADE-2.3.md
    ├── UPGRADE-2.4.md
    ├── UPGRADE.md
    ├── vendor
    └── web

В результате я получил доступ к...
. /index.html
/info.php
/test/index.html
/test/info.php
Успешно, но это дает мне SAME ERROR на
. /project/index.html
/project/info.php

Итак, я удаляю всю папку и начинаю заново, проверяю правильность конфигурации папки nginx на проекте, затем git клонирует мой код. И вот он... теперь полностью функционален.

Конфигурационный файл Nginx, который я сейчас запускаю...

server {
    listen 80;
    server_name symfony-project;
    access_log /var/log/nginx/symfony2_access.log;
    error_log /var/log/nginx/symfony2_error.log;

    #if defined in each location directive can be defined diferent root locations.
    root /var/www/project/web;

    # strip app.php/ prefix if it is present
    rewrite ^/app_dev\.php/?(.*)$ /$1 permanent;

    location / {
        index app_dev.php;
        try_files $uri @rewriteapp;
    }

     location @rewriteapp {
        rewrite ^(.*)$ /app_dev.php/$1 last;
    }

    error_page 404              /404.html;
    location = /404.html {
    }

    error_page 500 502 503 504  /50x.html;
    location = /50x.html {
    }

    location ~ ^(.+\.php)(/.*)$ {

        fastcgi_pass  127.0.0.1:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param  HTTPS off;   
    }
}
0
ответ дан 5 December 2019 в 12:54

Теги

Похожие вопросы