服务器环境:阿里云服务器 Lnmp
问题描述:在Nginx配置虚拟站点时 遇到了两个问题 1、站点域名不解析 自己下载文件 2、php执行代码不解析
原因: SCRIPT_FILENAME 配置站点路径出的错 代码如下
nginx 配置代码和现象在下面
server
{
server_name xx.xxxxxxxxxxxxxxxxx.com;
index index.html index.htm index.php;
root /home/wwwroot/nginx;
location /nginx_status
{
stub_status on;
access_log off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/tang.log access;
}
究其原因是因为 SCRIPT_FILENAME 配置没有引入到当前server里 是目录层级的include没有到位的原因导致 没有加载到php-fpm模块 补充一点Nginx解析模块一类是使用代理模块,而另外使用FastCGI模块 而从PHP的角度来讲则是FastCGI进程 一种是以php-fpm方式运行 第二种是自带fastcgi server,第三种是借助lighttpd实现 而lnmp环境则使用php-fpm模块
附加两个配置文件展示 更好的了解Nginx 解析PHP的配置选项
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
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 HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$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;