小计:我原本是lamp环境,因为学习的原因,需要用lnmp环境,于是开始了lnmp环境的搭建之旅。
一、处理之前的lamp环境:
无须卸载Apache,只要用“systemctl stop httpd”就OK啦!,然后就可以安装Nginx啦!其中PHP、MySQL已经安装好,所以直接安装Nginx就完事。
二、安装Nginx
1、添加Nginx到YUM源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2、安装Nginx
sudo yum install -y nginx
3、启动Nginx
sudo systemctl start nginx.service
4、访问域名
5、CentOS 7 开机启动Nginx
sudo systemctl enable nginx.service
Nginx配置信息
网站文件存放默认目录
/usr/share/nginx/html
网站默认站点配置
/etc/nginx/conf.d/default.conf
自定义Nginx站点配置文件存放目录
/etc/nginx/conf.d/
Nginx全局配置
/etc/nginx/nginx.conf
Nginx启动
nginx -c nginx.conf
三、需要安装php-fpm(nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx)
yum install -y php-fpm(默认版本是php5.4)
要使用更高版本可使用yum search all php-fpm安装自己需要的版本,同样的方式搜索安装需要的扩展pdo扩展搜索的时候只有一个,但是在安装mysql扩展的时候会作为依赖安装pdo扩展,所以不需要单独安装pdo扩展
安装完成使用systemctl start php-fpm
即可启动
安装完成需要手动yum install php-pdo yum install php-mysql
安装这两个扩展
*:以上是按着步骤安装好了,然后开始解决问题~~
开始访问默认目录“usr/share/nginx/html”,发现只能访问HTML文件,若是PHP文件会自动下载,
对于上面的问题:
在执行 vim /usr/local/nginx/nginx.conf 编辑nginx配置文件,具体路径根据实际的nginx.conf配置文件位置编辑,下面主要修改nginx的server {}配置块中的内容,修改location块,追加index.php让nginx服务器默认支持index.php为首页:
然后配置.php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改为以下内容:
这里面很多都是默认的,root是配置php程序放置的根目录,主要修改的就是fastcgi_param中的/scripts为$document_root
修改完上面的,回到nginx.conf第一行,默认是#user nobody; 这里要去掉注释改为user www-data;或者user www-data www-data;表示nginx服务器的权限为www-data
修改完这些保存并退出,然后重启nginx:
最终,再次访问PHP文件就没有直接下载了,但是直接提示“No input file specified”,去网上查,有说是PHP.ini配置问题的,有说是权限问题的,等等;以上说法反正对我都不管用,但是还有一种说法:“
把 NGINX DEFAULT 那个文件中的
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
改成实际的路径
我的是fastcgi_param SCRIPT_NAME /var/www/nginx-default/$fastcgi_script_name;
”
最终这个问题解决了,可以正常访问了!