Это добавляет #
в начале каждой строки:
:%s/^/#/
И люди перестанут жаловаться на отсутствие у вас должным образом комментирующих сценариев.
На первый взгляд, ваша проблема может заключаться в том, что вы не указываете 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;
}
}
У меня это работает:
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 и прочего...