php - nginx: [emerg] "location"指令在/etc/nginx/conf.d/default.conf:1 中不允许

标签 php nginx amazon-ec2

我刚开始在 AWS AMI 实例上使用 Nginx,但遇到了一些启动问题。

我已点击此链接安装 php-fpm 和 nginx https://gist.github.com/sumardi/5559803

除了,我不需要mysql,所以我没有运行这个命令sudo yum -y install mysql-server mysql

我的 /etc/nginx/conf.d/default.conf 看起来像这样:

location / {
    root   /var/www/html;
    index  index.php index.html index.htm;
}

location ~ \.php$ {
    fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME  /usr/share/nginx/
                    html$fastcgi_script_name;
    include         fastcgi_params;
}

我的/etc/php-fpm.d/www.conf

; Start a new pool named 'www'.
[www]

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock
; Set listen(2) backlog. A value of '-1' means unlimited.
; Default Value: -1
;listen.backlog = -1

; List of ipv4 addresses of FastCGI clients which are allowed to connect.
; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
; must be separated by a comma. If this value is left blank, connections will be
; accepted from any ip address.
; Default Value: any
listen.allowed_clients = 127.0.0.1

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0666
;listen.owner = nobody
listen.owner = nginx
;listen.group = nobody
listen.group = nginx
;listen.mode = 0666
listen.mode = 0664

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx

; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives:
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
; Note: This value is mandatory.
pm = dynamic

; The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes to be created when pm is set to 'dynamic'.
; This value sets the limit on the number of simultaneous requests that will be
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
; Note: Used when pm is set to either 'static' or 'dynamic'
; Note: This value is mandatory.
pm.max_children = 50

; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 5

; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5

; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 35

; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries. For
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default Value: 0
;pm.max_requests = 500

; The URI to view the FPM status page. If this value is not set, no URI will be
; recognized as a status page. By default, the status page shows the following
; information:
;   accepted conn    - the number of request accepted by the pool;
[....]

然而,当我调用 .php 文件时,我可以看到它只是下载。当我运行 service nginx start 时,出现以下错误:

nginx: [emerg] "location" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed

请帮忙

最佳答案

这就是我解决问题的方法。服务器标记应包含 /etc/nginx/conf.d/default.conf

中的所有其他内容
server {

        location / {
                root   /var/www/html;
                index  index.php index.html index.htm;
        }

        location ~ \.php$ {
        fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
            include         fastcgi_params;
         }

}

关于php - nginx: [emerg] "location"指令在/etc/nginx/conf.d/default.conf:1 中不允许,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581665/

相关文章:

apache - 正在运行的 EC2 实例突然拒绝 SSH 连接

amazon-ec2 - 即使设置了 key ,AWS CLI Client.UnauthorizedOperation

php - Symfony 自定义表单约束将错误写入父表单

php - 除了编写插件和主题之外,是否有必要在任何情况下修改 Wordpress?

php - MySql COUNT() 作为字段只返回一个条目

php - 使用 API 3.0 在 Android 中获取带有视频 ID 的 YouTube 标题

基于数据库查找的nginx动态proxy_pass

nginx - 静态文件看不到flask服务器

nginx - Vagrant 和 NGINX 仅适用于 80 以外的端口

tomcat - 在 Amazon EC2 中使用 tomcat 的 Spring 安全登录 https 无法正常工作