如何将服务器块配置文件制作成 运行 Nginx 服务器上的 CakePHP 应用程序?

How to make a server block configuration file to run a CakePHP app on Nginx server?

因为我是 DigitalOcean 和 Nginx 服务器的新手,所以我不知道我到底在做什么

话虽如此,我遇到了这个问题

我已将 CakeApp 文件夹放入 /var/www/html 文件夹中,并且还在我的 CakeApp 的 webroot 文件夹中添加了一个 info.php 页面以检查我是否可以访问它

当我转到 http://my_ip/CakeApp 时,它重定向到 http://my_ip/CakeApp/login 页面并给出 404,但是当我通过转到 http://my_ip/CakeApp/info.php 访问 info.php 文件时,它可以工作并且returns PHP 信息页

这里是服务器块文件

server {
    listen   80;
    listen   [::]:80;
    server_name app.cake.com;
    return 301 http://app.cake.com$request_uri;

    root   /var/www/html/CakeApp/public/webroot;
    index  index.php;

    location /CakeApp/webroot {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_intercept_errors on;
        fastcgi_param SCRIPT_FILENAME 
        $document_root$fastcgi_script_name;
}

所以我想在访问http://my_ip/CakeApp

时获取登录页面

已找到修复程序。

server {
        listen 80;
        root /var/www/html/CakeApp/webroot;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name example.com;

        location / {
                rewrite ^(.+)$  break;
                try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}