php-fpm正在运行:
# /etc/init.d/php5-fpm status php5-fpm is running
php-fpm正在监听:
# netstat -an | grep :9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
/etc/nginx/nginx.conf中的Nginxconfiguration:
# Nginx web server main configuration file: /etc/nginx/nginx.conf # user www-data; worker_processes 8; pid /var/run/nginx.pid; events { multi_accept on; } http { default_type application/octet-stream; gzip on; gzip_disable "msie6"; keepalive_timeout 65; sendfile on; tcp_nodelay on; tcp_nopush on; types_hash_max_size 8192; include /etc/nginx/mime.types; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log debug; }
第二个configuration是/etc/nginx/conf.d中的一个快捷方式:
# Aegir web server main configuration file ####################################################### ### nginx.conf main ####################################################### ## FastCGI params ## fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE ApacheSolaris/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param USER_DEVICE $device; fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code; fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3; fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name; fastcgi_param REDIRECT_STATUS 200; fastcgi_index index.php; ## Default index files index index.php index.html; ## Size Limits client_body_buffer_size 64k; client_header_buffer_size 32k; client_max_body_size 100m; large_client_header_buffers 32 32k; connection_pool_size 256; request_pool_size 4k; server_names_hash_bucket_size 512; server_names_hash_max_size 8192; types_hash_bucket_size 512; map_hash_bucket_size 192; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; ## Timeouts client_body_timeout 60; client_header_timeout 60; send_timeout 60; lingering_time 30; lingering_timeout 5; fastcgi_connect_timeout 60; fastcgi_send_timeout 300; fastcgi_read_timeout 300; ## Open File Performance open_file_cache max=8000 inactive=30s; open_file_cache_valid 60s; open_file_cache_min_uses 3; open_file_cache_errors on; ## FastCGI Caching fastcgi_cache_path /var/lib/nginx/speed levels=2:2:2 keys_zone=speed:10m inactive=15m max_size=3g; ## General Options ignore_invalid_headers on; limit_conn_zone $binary_remote_addr zone=gulag:10m; recursive_error_pages on; reset_timedout_connection on; fastcgi_intercept_errors on; server_tokens off; fastcgi_hide_header 'Link'; fastcgi_hide_header 'X-Generator'; fastcgi_hide_header 'X-Powered-By'; fastcgi_hide_header 'X-Drupal-Cache'; ## TCP options moved to /etc/nginx/nginx.conf ## SSL performance ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ## GeoIP support geoip_country /usr/share/GeoIP/GeoIP.dat; ## Compression gzip_buffers 16 8k; gzip_comp_level 5; gzip_http_version 1.0; gzip_min_length 10; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; gzip_vary on; gzip_proxied any; add_header Vary "Accept-Encoding"; gzip_static on; upload_progress uploads 1m; ## Log Format log_format main '"$proxy_add_x_forwarded_for" $host [$time_local] ' '"$request" $status $body_bytes_sent ' '$request_length $bytes_sent "$http_referer" ' '"$http_user_agent" $request_time "$gzip_ratio"'; client_body_temp_path /var/lib/nginx/body 1 2; access_log /var/log/nginx/access.log main buffer=32k; error_log /var/log/nginx/error.log crit; # Extra configuration from modules: ####################################################### ### nginx default maps ####################################################### ### ### Support separate Boost and Speed Booster caches for various mobile devices. ### map $http_user_agent $device { default normal; ~*Nokia|BlackBerry.+MIDP|240x|320x|Palm|NetFront|Symbian|SonyEricsson mobile-other; ~*iPhone|iPod|Android|BlackBerry.+AppleWebKit mobile-smart; ~*iPad|Tablet mobile-tablet; } ### ### Set a cache_uid variable for authenticated users (by @brianmercer and @perusio, fixed by @omega8cc). ### map $http_cookie $cache_uid { default ''; ~SESS[[:alnum:]]+=(?<session_id>[[:graph:]]+) $session_id; } ### ### Live switch of $key_uri for Speed Booster cache depending on $args. ### map $request_uri $key_uri { default $request_uri; ~(?<no_args_uri>[[:graph:]]+)\?(.*)(utm_|__utm|_campaign|gclid|source=|adv=|req=) $no_args_uri; } ### ### Set cache expiration depending on the Drupal core version. ### map $sent_http_x_purge_level $will_expire_in { default on-demand; ~*5|none 5m; } ### ### Deny crawlers. ### map $http_user_agent $is_crawler { default ''; ~*HTTrack|BrokenLinkCheck|2009042316.*Firefox.*3\.0\.10|MJ12|HTMLParser|libwww|PECL|Automatic|Click|SiteBot|BuzzTrack|Sistrix|Offline|Screaming|Nutch|Mireo|SWEB|Morfeus|GSLFbot is_crawler; } ### ### Deny all known bots on some URIs. ### map $http_user_agent $is_bot { default ''; ~*crawl|goog|yahoo|yandex|spider|bot|tracker|click|parser is_bot; } ### ### Deny almost all crawlers under high load. ### map $http_user_agent $deny_on_high_load { default ''; ~*crawl|goog|yahoo|yandex|baidu|bing|spider|tracker|click|parser deny_on_high_load; } ### ### Deny listed requests for security reasons. ### map $args $is_denied { default ''; ~*delete.+from|insert.+into|select.+from|union.+select|onload|\.php.+src|system\(.+|document\.cookie|\;|\.\. is_denied; } ####################################################### ### nginx default server ####################################################### server { limit_conn gulag 32; # like mod_evasive - this allows max 32 simultaneous connections from one IP address listen *:80; server_name _; location / { root /var/www/nginx-default; index index.html index.htm; } } ####################################################### ### nginx virtual domains ####################################################### # virtual hosts include /var/aegir/config/server_master/nginx/pre.d/*; include /var/aegir/config/server_master/nginx/platform.d/*; include /var/aegir/config/server_master/nginx/vhost.d/*; include /var/aegir/config/server_master/nginx/post.d/*;
我添加的最后一个configuration位于/etc/nginx/conf.d/。 不是一个捷径。
server { listen 80; root /var/www/nginx-default/cacti; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.html; } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; allow ::1; deny all; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default/cacti; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; } location ~ /\.ht { deny all; } }
这两行看起来很奇怪。
## fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root;
我相信第一个应该是没有注释,第二个评论。
如果之后还在下载文件,则应检查下载文件是否已被处理,或者是否是源代码。 如果它已经被处理,你可能需要改变php块中的mimetypes。