title: nginx: [emerg] "location" directive is not allowed here in /etc/nginx/conf.d/default.conf:1
body: <p>I am just starting out with Nginx on AWS AMI instance, and am stuck with some starting problems. </p>
  
  <p>I have followed this link to install php-fpm and nginx
  <a href="https://gist.github.com/sumardi/5559803" rel="noreferrer">https://gist.github.com/sumardi/5559803</a></p>
  
  <p>Except, I don't need mysql, so I didn't run this command <code>sudo yum -y install mysql-server mysql</code></p>
  
  <p>My <code>/etc/nginx/conf.d/default.conf</code> looks like this: </p>
  
  <pre><code>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;
  }
  </code></pre>
  
  <p>My <code>/etc/php-fpm.d/www.conf</code></p>
  
  <pre><code>; 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;
  [....]
  </code></pre>
  
  <p>How ever, I can see when I call .php files, it just downloads. And when I run <code>service nginx start</code> I get the following error: </p>
  
  <pre><code>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
  </code></pre>
  
  <p>Please help</p>