centos 7.0 lnmp安装部署步骤
后续我再把这个文档改成脚本
下载nginx,wget 是一个下载命令-c 是断点续传(不要也这个也可以)
[root@bogon ~]# wget -c http://nginx.org/download/nginx-1.7.9.tar.gz
[root@bogon ~]# ls
anaconda-ks.cfg Downloads Pictures Videos Desktop initial-setup-ks.cfg nginx-1.7.9.tar.gz Public Documents Music original-ks.cfg Templates
[root@bogon ~]# tar zxvf nginx-1.7.9.tar.gz
[root@bogon ~]# ls
anaconda-ks.cfg Downloads nginx-1.7.9 Pictures Videos
Desktop initial-setup-ks.cfg nginx-1.7.9.tar.gz Public Documents Music original-ks.cfg Templates
[root@bogon ~]# cd nginx-1.7.9/
[root@bogon nginx-1.7.9]# ls
auto CHANGES.ru configure html Makefile objs src
CHANGES conf contrib LICENSE man README
[root@bogon nginx-1.7.9]# yum -y install gcc-c++ pcre-devel zlib-devel
[root@bogon nginx-1.7.9]# ./configure --prefix=/usr/etc/ngin
[root@bogon nginx-1.7.9]# make
[root@bogon nginx-1.7.9]# make install
[root@bogon nginx-1.7.9]# cd /usr/etc/ngin
[root@bogon ngin]# ls
client_body_temp fastcgi_temp logs sbin uwsgi_temp
conf html proxy_temp scgi_temp
[root@bogon ngin]# cd sbin
[root@bogon sbin]# ./nginx
现在我们尝试访问网站192.168.2.128(这个是我执行上面这些操作的虚拟系统ip)发现无法打开网站
我们还需要关闭防火墙
systemctl stop firewalld.service #停止firewall
现在应该可以访问了
补充一下nginx的重启与停止
nginx -s reload :修改配置后重新加载生效
nginx -s stop :快速停止nginx
扩展知识:systemctl disable firewalld.service #禁止firewall开机启动
或者iptables -F也可以,这个命令是清空防火墙规则
如果不想关闭防火墙,则可以给防火墙增加规则,让数据通过80端口
[root@localhost init.d]# firewall-cmd –add-port=80/tcp
success
再次访问 http://192.168.2.128/ 正常
接着mysql/mariadb的安装: yum install mysql mysql-server (我是使用mariadb的,yum install mariadb mariadb-server,启动systemctl start mariadb服务后,终端输入mysql_secure_installation回车可以修改mariadb密码)
然后php的安装:
yum install php-fpm php (注意php-fpm不能缺少,否则会导致nginx无法正常识别php)
配置、启动 php-fpm
vi /etc/php.ini
找到并取消注释,设置成:
cgi.fix_pathinfo=0
vi /etc/php-fpm.d/www.conf
找到并取消注释,设置成你希望管理 www 应用的用户(我这里统一用用户 bp)
listen.owner =bp
listen.group = bp
启动 php-fpm 监听服务
systemctl start php-fpm
配置、启动 Nginx
更换网站目录所有者为 bp。 root 用户执行
chown bp:bp /usr/etc/ngin/html -Rf
从此,以后就用用户 bp 来登录并维护 /usr/etc/ngin/html中的数据
现在我们还需要修改/usr/etc/ngin/conf/nginx.conf
直接分享我的配置 /usr/etc/ngin/conf/nginx.conf
下面只是需要修改的部分,有注释的地方就是需要改的
user bp;#把原来的那句注释去掉,修改用户名
events {
}
http {
include /etc/nginx/mime.types;
server {
root /data/wwwroot;
location / {
index index.html index.htm index.php; #加一个index.php吧
}
error_page 404 #去掉注释符号;
location ~* \.php$ { #需要去掉这几行的注释符号
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#改$document_root那里就可以了
include fastcgi_params;
}
}
}
重启 Nginx 服务器,这步也很关键
测试php是否能用vi /usr/etc/ngin/html/index.php,内容如下
[root@bogon sbin]# yum install php-mysql -y
重启一下php-fpm
然后就可以在phpinfo()里看到mysql了,也就是说我们现在可以使用mysql了(说实在的我的就没有正常显示,我需要先在php文件里打印phpinfo函数,然后才能使用显示succeed,否则一直刷新都是空白)
测试是否能够正常连接数据库,php页面代码如下,正常显示ok
[root@localhost nginx]# cat html/test.php <?php $link=mysql_connect('127.0.0.1','root','123456'); if($link) echo 'ok'; else echo "didn't work"; mysql_close(); ?> [root@localhost nginx]#
如果不能浏览网页的话,就直接把防火墙和selinux关闭,应该就可以,怎们在不关闭它们的情况下正常访问的配置我以后再加上来
在实验过程中我遇到了一个问题,那就是我把
location ~ .php$ {
proxy_pass http://127.0.0.1;
}
这一部分给注释了,然后测试php页面时提示错误,页面不可用。后来我返回来把这里注释掉后又恢复正常了。但有时候注释掉又没报错,不知道是不是因为服务没有完全重启启动成功还是为什么。。