Как я настраиваю nginx, переписывают правила получить CakePHP, работающий над CentOS?

Это добавляет # в начале каждой строки:

:%s/^/#/

И люди перестанут жаловаться на отсутствие у вас должным образом комментирующих сценариев.

9
задан Chuck Burgess 19 January 2013 в 20:31
поделиться

2 ответа

На первый взгляд, ваша проблема может заключаться в том, что вы не указываете nginx на корневой веб-каталог вашего приложения. Развертывание в корневую папку с пирогами не подходит для любого веб-сервера.

Ниже приведен полный серверный блок, который я использую для запуска приложений Cake. На самом деле у меня есть только первые четыре строки, а затем я включаю остальные из отдельного файла «cakephp.inc».

Примечание к строке «fastcgi_param SERVER_NAME $ host;». Это связано с тем, что некоторые из моих приложений используют $ _SERVER ['SERVER_NAME'], и это не имеет того же значения в nginx, что и в Apache. Если ваш сервер имеет несколько определенных имен_серверов, nginx всегда будет передавать первое из них в php.

server { 
    server_name  cakeapp.example.com;
    root   /var/www/vhosts/cake/app/webroot;
    access_log  /var/log/nginx/cakeapp.access.log;
    error_log   /var/log/nginx/cakeapp.error.log;

    listen       80;
    rewrite_log on;

    # rewrite rules for cakephp
    location / {
        index  index.php index.html;

        # If the file exists as a static file serve it 
        # directly without running all
        # the other rewite tests on it
        if (-f $request_filename) { 
            break; 
        }
        if (!-f $request_filename) {
            rewrite ^/(.+)$ /index.php?url=$1 last;
            break;
        }
    }

    location ~* \favicon.ico$ {
        expires 6m;
    }
    location ~ ^/img/ { 
        expires 7d; 
    } 

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SERVER_NAME $host;
    }

    location ~ /\.ht {
        deny  all;
    }
}
9
ответ дан 4 December 2019 в 10:05
поделиться

У меня это работает:

root DIR/app/webroot/;
location / {
    index index.php index.html;
    rewrite ^/$ /index.php?url=/;
    if (!-e $request_filename) {
        rewrite ^(/.*)$ /index.php?url=$1 last;
    }
}

и, конечно, обработчики для php и прочего...

3
ответ дан 4 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

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