logo头像

科技始终来源于人性!

lnmp 环境搭建(基于CentOS7)

最近更新:2019年9月28日22:01:06


一键安装包的方式就不作介绍了。本文主要说明如果手动安装配置LNMP。

【安装前准备】

1、查看是否已安装 wget
rpm -qa wget
如果显示版本,说明已经安装,否则运行命令进行安装 yum install wget

2、查看是否已安装编译器
rpm -qa gcc
如果显示版本,说明已经安装,否则运行命令进行安装 yum install gcc gcc-c++

【安装Nginx】

1、安装 nginx 依赖包
nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:

yum -y install pcre pcre-devel

nginx的各种模块中需要使用gzip压缩:

yum -y install zlib zlib-devel

安全套接字层密码库:

yum -y install openssl openssl-devel

2、下载nginx包并解压(到/usr/local/src目录中)

1
2
3
cd /usr/local/src
wget http://nginx.org/download/nginx-1.17.3.tar.gz
tar -zxvf nginx-1.17.3.tar.gz

3、编译安装(到/usr/local/nginx目录中)

1
2
3
4
5
6
7
8
9

cd nginx-1.1.10

./configure --prefix=/usr/local/nginx

make

make install

4、创建并设置nginx运行账号:

1
2
3
4
5
6
7
8
9
10
11
12
13

groupadd nginx

useradd -M -g nginx -s /sbin/nologin nginx

cd /usr/local/nginx/conf

vim nginx.conf,设置user参数如下:

user nginx nginx

/usr/local/nginx/sbin/nginx -t

5、启动nginx

1
2
3
4

/usr/local/nginx/sbin/nginx # 启动nginx
ps -ef | grep nginx # 查看进程

6、访问站点IP,若出现welcome to nginx 则说明安装成。
如果访问失败,可能是防火墙原因,开放相应端口即可。

【nginx加入到开机自动启动】

(1)编辑系统启动脚本vim /etc/rc.local 这个文件是系统启动后会自动执行的,因此就将启动命令加入到这个文件中。

(2)在脚本后面加上 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf &

(3)更改脚本的权限,chmod o+x /etc/rc.localchmod 755 /etc/rc.local

(4)重启后,ps -e | grep nginx 就能看 nginx 开机启动

【未找到 nginx command 】

解决: 添加nginx 到系统环境变量中
vim /etc/profile
在最后的 doneunset i 之间加上 export PATH="$PATH:/usr/local/nginx/sbin:"

随后更新环境变量

1
2
source /etc/profile
nginx -V

【 PHP 文件 出现 File not found。】

解决:修改 nginx.conf

1
2
3
4
fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
# 改成
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
nginx -s reload #重启即可

【防火墙】

相关命令参考,来源:链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
systemctl status firewalld   #查看防火墙服务状态

firewalld-cmd --state #查看防火墙状态

systemctl start firewalld # 开启防火墙

systemctl restart firewalld # 重启防火墙

systemctl stop firewalld # 关闭防火墙

firewall-cmd --list-all # 查看防火墙规则

firewall-cmd --query-port=8080/tcp # 查询端口是否开放

firewall-cmd --permanent --add-port=80/tcp # 开放80端口

firewall-cmd --permanent --remove-port=8080/tcp # 移除端口

systemctl restart firewalld #重启防火墙(修改配置后要重启防火墙)

参数解释

1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、–permanent:表示设置为持久;
3、–add-port:标识添加的端口;

【安装PHP】

参考博客内的另外一篇文章:“Centos 安装 LAMP 环境”

【安装MySQL】

参考链接:https://www.cnblogs.com/qjoanven/p/7699382.html
(1) 下载rpm 文件。

1
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 

(2)解压,并依次安装

1
tar -xvf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar

解压后依次执行安装

1
2
3
4
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

(3) 安装成功后,启动 MySQL service
systemctl start mysqld.service

(4) 修改配置 /etc/my.cnf

1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/my.cnf
# 插入以下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
validate_password=off
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

注:validate_password=off 的意思是关闭密码验证插件(这一句必须加上,因为在修改密码的时候如果不加上会非常的麻烦)。

(5) 重启服务
systemctl restart mysqld.service

【MySQL后续处理】

1、修改 root 用户初始密码
生成临时密码,执行命令后,会看到生成的临时密码是多少。

1
grep 'temporary password' /var/log/mysqld.log

使用临时密码,登录MySQL。
mysql -u root -p

登录数据库之后,运行命令更改密码。

1
2
mysql> set password=password('新密码');
mysql> flush privileges; #刷新

更改密码后,添加root用户远程访问权限

1
2
3
4
5
6
#登录mysql
mysql> use mysql
mysql> update user set host='%' where user='root';
mysql> select host,user from user;
mysql> flush privileges;
#退出mysql,重启mysql服务生效

至此,LNMP 就安装完成了。