Nginx + php5-fpm + Drupal: 404 “Fichier introuvable”

J’ai essayé de faire fonctionner Nginx + PHP5-FPM + Drupal 7, mais quand je visite mon domaine, je ne trouve pas “404”.

Mes Configs sont basés sur: – https://github.com/perusio/drupal-with-nginx – https://github.com/perusio/php-fpm-example-config

/etc/nginx/nginx.conf

# -*- mode: nginx; mode: flyspell-prog; ispell-local-dictionary: "american" -*- user www-data; worker_processes 4; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; worker_rlimit_nofile 8192; events { worker_connections 4096; ## Accept as many connections as possible. multi_accept on; } http { ## MIME types. include /etc/nginx/mime.types; default_type application/octet-stream; ## FastCGI. include /etc/nginx/fastcgi.conf; ## Default log and error files. access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## Use sendfile() syscall to speed up I/O operations and speed up ## static file serving. sendfile on; ## Handling of IPs in proxied and load balancing situations. set_real_ip_from 0.0.0.0/32; # all addresses get a real IP. real_ip_header X-Forwarded-For; # the ip is forwarded from the load balancer/proxy ## Define a zone for limiting the number of simultaneous ## connections nginx accepts. 1m means 32000 simultaneous ## sessions. We need to define for each server the limit_conn ## value refering to this or other zones. ## ** This syntax requires nginx version >= ## ** 1.1.8. Cf. http://nginx.org/en/CHANGES. If using an older ## ** version then use the limit_zone directive below ## ** instead. Comment out this ## ** one if not using nginx version >= 1.1.8. limit_conn_zone $binary_remote_addr zone=arbeit:10m; ## Define a zone for limiting the number of simultaneous ## connections nginx accepts. 1m means 32000 simultaneous ## sessions. We need to define for each server the limit_conn ## value refering to this or other zones. ## ** Use this directive for nginx versions below 1.1.8. Uncomment the line below. #limit_zone arbeit $binary_remote_addr 10m; ## Timeouts. client_body_timeout 60; client_header_timeout 60; keepalive_timeout 10 10; send_timeout 60; ## Reset lingering timed out connections. Deflect DDoS. reset_timedout_connection on; ## Body size. client_max_body_size 10m; ## TCP options. tcp_nodelay on; ## Optimization of socket handling when using sendfile. tcp_nopush on; ## Compression. gzip on; gzip_buffers 16 8k; gzip_comp_level 1; gzip_http_version 1.1; gzip_min_length 10; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon application/vnd.ms-fontobject font/opentype application/x-font-ttf; gzip_vary on; gzip_proxied any; # Compression for all requests. ## No need for regexps. See ## http://wiki.nginx.org/NginxHttpGzipModule#gzip_disable gzip_disable "msie6"; ## Serve already compressed files directly, bypassing on-the-fly ## compression. ## # Usually you don't make much use of this. It's better to just # enable gzip_static on the locations you need it. # gzip_static on; ## Hide the Nginx version number. server_tokens off; ## Use a SSL/TLS cache for SSL session resume. This needs to be ## here (in this context, for session resumption to work. See this ## thread on the Nginx mailing list: ## http://nginx.org/pipermail/nginx/2010-November/023736.html. ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ## Uncomment to increase map_hash_bucket_size. If start getting ## [emerg]: could not build the map_hash, you should increase ## map_hash_bucket_size: 64 in your ## logs. Cf. http://wiki.nginx.org/NginxOptimizations. #map_hash_bucket_size 192; ## For the filefield_nginx_progress module to work. From the ## README. Reserve 1MB under the name 'uploads' to track uploads. #upload_progress uploads 1m; ## Enable clickjacking protection in modern browsers. Available in ## IE8 also. See ## https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header ## This may conflicts with pseudo streaming (at least with Nginx version 1.0.12). ## Uncomment the line below if you're not using media streaming. ## For sites *using* frames uncomment the line below. #add_header X-Frame-Options SAMEORIGIN; ## For sites *not* using frames uncomment the line below. #add_header X-Frame-Options DENY; ## Block MIME type sniffing on IE. add_header X-Content-Options nosniff; ## Include the upstream servers for PHP FastCGI handling config. ## This one uses the FCGI process listening on TCP sockets. #include upstream_phpcgi_tcp.conf; ## Include the upstream servers for PHP FastCGI handling ## configuration. This setup uses UNIX sockets for talking with the ## upstream. include upstream_phpcgi_unix.conf; ## Include the map to block HTTP methods. include map_block_http_methods.conf; ## If using Nginx version >= 1.1.11 then there's a $https variable ## that has the value 'on' if the used scheme is https and '' if not. ## See: http://trac.nginx.org/nginx/changeset/4380/nginx ## http://trac.nginx.org/nginx/changeset/4333/nginx and ## http://trac.nginx.org/nginx/changeset/4334/nginx. If using a ## previous version then uncomment out the line below. #include map_https_fcgi.conf; ## Include this line, if used in a loadbalanced environment ## and comment the line which includes map_https_fcgi.conf. ## If the loadbalancer always sends the request in http protocol, ## and adds the server variable $http_x_forwarded_proto #include map_https_forwarded_proto.conf; ## Include the upstream servers for Apache handling the PHP ## processes. In this case Nginx functions as a reverse proxy. #include reverse_proxy.conf; #include upstream_phpapache.conf; ## Include the php-fpm status allowed hosts configuration block. ## Uncomment to enable if you're running php-fpm. #include php_fpm_status_allowed_hosts.conf; ## Include the Nginx stub status allowed hosts configuration block. include nginx_status_allowed_hosts.conf; ## If you want to run cron using Drupal cron.php. ie, you're not ## using drush then uncomment the line below. Specify in ## cron_allowed_hosts.conf which hosts can invole cron. # include apps/drupal/cron_allowed_hosts.conf; ## Include blacklist for bad bot and referer blocking. include blacklist.conf; ## Include the caching setup. Needed for using Drupal with an external cache. include map_cache.conf; ## Microcache zone definition for FastCGI. include fastcgi_microcache_zone.conf; ## If you're using Apache for handling PHP then comment the line ## above and uncomment the line below. #include proxy_microcache_zone.conf #BM types_hash_max_size 2048; types_hash_bucket_size 32; server_names_hash_bucket_size 64; ## Include all vhosts. include /etc/nginx/sites-enabled/*; } 

netstat –unix -l

 Proto RefCnt Flags Type State I-Node Pfad unix 2 [ ACC ] STREAM HÖRT 6190 /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM HÖRT 5833 @/com/ubuntu/upstart unix 2 [ ACC ] STREAM HÖRT 7574 /var/run/acpid.socket unix 2 [ ACC ] STREAM HÖRT 20672 /var/run/php5-fpm.sock unix 2 [ ACC ] STREAM HÖRT 20675 /var/run/php-fpm-zwei.sock unix 2 [ ACC ] STREAM HÖRT 20678 /var/run/php-fpm.sock unix 2 [ ACC ] STREAM HÖRT 20681 /var/run/php-fpm-drei.sock 

php -v

 PHP 5.4.9-4ubuntu2.2 (cli) (built: Jul 15 2013 18:23:35) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies 

vhost

 ## HTTP server. server { listen 80; # IPv4 server_name myserver.com; limit_conn arbeit 32; ## Access and error logs. access_log /var/log/nginx/myserver.com_access.log; error_log /var/log/nginx/myserver.com_error.log; ## See the blacklist.conf file at the parent dir: /etc/nginx. ## Deny access based on the User-Agent header. if ($bad_bot) { return 444; } ## Deny access based on the Referer header. if ($bad_referer) { return 444; } ## Protection against illegal HTTP methods. Out of the box only HEAD, ## GET and POST are allowed. if ($not_allowed_method) { return 405; } ## Filesystem root of the site and index. root /var/www/myserver/htdocs; index index.php; ## If you're using a Nginx version greater or equal to 1.1.4 then ## you can use keep alive connections to the upstream be it ## FastCGI or Apache. If that's not the case comment out the line below. fastcgi_keep_conn on; # keep alive to the FCGI upstream ## Uncomment if you're proxying to Apache for handling PHP. #proxy_http_version 1.1; # keep alive to the Apache upstream ################################################################ ### Generic configuration: for most Drupal 7 sites. ################################################################ include apps/drupal/drupal.conf; ################################################################# ### Configuration for Drupal 7 sites that use boost. ################################################################# #include apps/drupal/drupal_boost.conf; ################################################################# ### Configuration for updating the site via update.php and running ### cron externally. If you don't use drush for running cron use ### the configuration below. ################################################################# #include apps/drupal/drupal_cron_update.conf; ################################################################ ### Installation handling. This should be commented out after ### installation if on an already installed site there's no need ### to touch it. If on a yet to be installed site. Uncomment the ### line below and comment out after installation. Note that ### there's a basic auth in front as secondary ligne of defense. ################################################################ #include apps/drupal/drupal_install.conf; ################################################################# ### Support for upload progress bar. Configurations differ for ### Drupal 6 and Drupal 7. ################################################################# include apps/drupal/drupal_upload_progress.conf; ## Including the php-fpm status and ping pages config. ## Uncomment to enable if you're running php-fpm. #include php_fpm_status_vhost.conf; ## Including the Nginx stub status page for having stats about ## Nginx activity: http://wiki.nginx.org/HttpStubStatusModule. include nginx_status_vhost.conf; } # HTTP server 

/ var / www / myserver / htdocs

 drwxr-xr-x 9 www-data www-data 4096 Aug 25 16:00 ./ drwxr-xr-x 3 www-data www-data 4096 Aug 25 11:29 ../ -rw-r--r-- 1 www-data www-data 0 Aug 25 13:40 apple-touch-icon.png -rw-r--r-- 1 www-data www-data 0 Aug 25 13:41 apple-touch-icon_precomposed.png -rw-r--r-- 1 www-data www-data 6604 Aug 8 04:04 authorize.php -rw-r--r-- 1 www-data www-data 82086 Aug 8 04:04 CHANGELOG.txt -rw-r--r-- 1 www-data www-data 1481 Aug 8 04:04 COPYRIGHT.txt -rw-r--r-- 1 www-data www-data 720 Aug 8 04:04 cron.php drwxr-xr-x 4 www-data www-data 4096 Aug 25 12:00 includes/ -rw-r--r-- 1 www-data www-data 529 Aug 8 04:04 index.php -rw-r--r-- 1 www-data www-data 1451 Aug 8 04:04 INSTALL.mysql.txt -rw-r--r-- 1 www-data www-data 1874 Aug 8 04:04 INSTALL.pgsql.txt -rw-r--r-- 1 www-data www-data 703 Aug 8 04:04 install.php -rw-r--r-- 1 www-data www-data 1298 Aug 8 04:04 INSTALL.sqlite.txt -rw-r--r-- 1 www-data www-data 17861 Aug 8 04:04 INSTALL.txt -rw-r--r-- 1 www-data www-data 18092 Sep 17 2011 LICENSE.txt -rw-r--r-- 1 www-data www-data 8191 Aug 8 04:04 MAINTAINERS.txt drwxr-xr-x 4 www-data www-data 4096 Aug 25 12:00 misc/ drwxr-xr-x 42 www-data www-data 4096 Aug 25 12:00 modules/ drwxr-xr-x 5 www-data www-data 4096 Aug 25 12:00 profiles/ -rw-r--r-- 1 www-data www-data 5376 Aug 8 04:04 README.txt -rw-r--r-- 1 www-data www-data 1561 Aug 8 04:04 robots.txt drwxr-xr-x 2 www-data www-data 4096 Aug 25 12:00 scripts/ drwxr-xr-x 4 www-data www-data 4096 Aug 25 12:00 sites/ drwxr-xr-x 7 www-data www-data 4096 Aug 25 12:00 themes/ -rw-r--r-- 1 www-data www-data 19941 Aug 8 04:04 update.php -rw-r--r-- 1 www-data www-data 9642 Aug 8 04:04 UPGRADE.txt -rw-r--r-- 1 www-data www-data 2178 Aug 8 04:04 web.config -rw-r--r-- 1 www-data www-data 417 Aug 8 04:04 xmlrpc.php 

/var/log/php5-fpm.log

 [25-Aug-2013 18:25:52] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful [25-Aug-2013 18:25:53] NOTICE: fpm is running, pid 4546 [25-Aug-2013 18:25:53] NOTICE: ready to handle connections 

Veuillez vérifier votre chemin d’access racine sur le fichier vhost et l’autorisation de fichier du dossier

L’erreur de fichier introuvable apparaît normalement si le fichier n’est pas présent ou s’il n’est pas accessible par le navigateur.

Décommentez include apps/drupal/drupal_install.conf; dans la configuration de vhost