Nginx + php5-fpm + Drupal:404“找不到文件”

时间:2013-08-25 16:46:36

标签: drupal nginx php

我试图让Nginx + PHP5-FPM + Drupal 7工作,但是当我访问我的域名时,我找不到“404”。

我的配置基于: - 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. i.e., 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 <​​/ strong>

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

虚拟主机

## 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

2 个答案:

答案 0 :(得分:0)

请检查vhost文件的根路径和文件夹的文件权限

如果文件不存在或浏览器无法访问,则通常会出现找不到文件错误。

答案 1 :(得分:0)

vhost 配置

中取消注释include apps/drupal/drupal_install.conf;