CentOS 7 安装 LNMP 环境(PHP7.2 + MySQL5.7 + Nginx1.10)以及SSL证书配置
一、修改yum源
[aaa@qq.com ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[aaa@qq.com ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
[aaa@qq.com ~]# rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Webtatic:https://webtatic.com
MySQL:https://dev.mysql.com/downloa...
二、安装 Nginx、MySQL、PHP
[aaa@qq.com ~]# yum -y install nginx
[aaa@qq.com ~]# yum -y install mysql-community-server
[aaa@qq.com ~]# yum -y install php72w-devel php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-gd.x86_64 php72w-ldap.x86_64 php72w-mbstring.x86_64 php72w-mcrypt.x86_64 php72w-pdo.x86_64 php72w-mysqlnd php72w-fpm php72w-opcache php72w-pecl-redis php72w-pecl-mongo
三、配置
1、数据库配置
MySQL
安装完成之后,在 /var/log/mysqld.log
文件中给 root
生成了一个默认密码
通过下面的方式找到root 默认密码
,然后登录 MySQL
进行修改:
[aaa@qq.com ~]# systemctl start mysqld # 启动 MySQL
[aaa@qq.com ~]# grep 'temporary password' /var/log/mysqld.log # 查找默认密码
2017-04-10T02:58:16.806931Z 1 [Note] A temporary password is generated for aaa@qq.com: Kw(pwskx=ws #显示你的密码
登录 MySQL
:
[aaa@qq.com ~]# mysql -uroot -p'Kw(pwskx=ws'
修改root 默认密码
:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyPass1!';
或者
mysql> set password for 'root'@'localhost'=password('123abc');
注
:MySQL5.7
默认安装了密码安全检查插件(validate_password)
,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
错误
详见 MySQL 官网密码策略详细说明:https://dev.mysql.com/doc/ref...
配置默认编码为 utf8
:
修改 /etc/my.cnf
配置文件,在 [mysqld]
下添加编码配置,配置完成后重启:
[aaa@qq.com ~]# vim /etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
[aaa@qq.com ~]# systemctl restart mysqld # 重启 MySQL
设置开机启动:
[aaa@qq.com ~]# systemctl enable mysqld
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket 文件:/var/run/mysqld/mysqld.pid
2、配置 Nginx
安装完成以后查看自己防火墙
是否开启,如果已开启,我们需要修改
防火墙配置
,开启 Nginx
外网端口访问。
[aaa@qq.com ~]# systemctl status firewalld
如果显示 active (running)
,则需要调整防火墙规则的配置。
修改 /etc/firewalld/zones/public.xml
文件,在zone一节中增加
保存后重新加载 firewalld
服务:
[aaa@qq.com ~]# vim /etc/firewalld/zones/public.xml
<zone>
...
<service name="nginx"/>
<zone>
[aaa@qq.com ~]# systemctl reload firewalld
修改 Nginx
配置:
[aaa@qq.com ~]# vim /etc/nginx/nginx.conf
在 server {}
里添加:
location / {
#定义首页索引文件的名称
index index.php index.html index.htm;
}
# PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置.
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
注:要开启安全组9000端口
配置完成重启 Nginx
:
[aaa@qq.com ~]# systemctl start nginx # 启动 Nginx
设置开机启动:
[aaa@qq.com ~]# systemctl enable nginx
3、设置开机启动 php-fpm
:
[aaa@qq.com ~]# systemctl enable php-fpm
[aaa@qq.com ~]# systemctl start php-fpm # 启动 php-fpm
四、测试
-
在
/usr/share/nginx/html
文件下创建php文件,输出phpinfo
信息 -
浏览器访问
http://<IP地址>/phpinfo.php
,如果看到PHP
信息,说明安装成功
六、配置SSL证书(腾讯云SSL为例)
1、申请SSL证书,并拿到证书文件和**
腾讯云里有相关介绍,这里就不多介绍了。。。。
2、进行配置
2.1、打开编辑 Nginx 根目录下的 nginx.conf
文件(每个版本的nginx.conf文件位置不同,我的是在/etc/nginx)
vim /etc/nginx/nginx.conf #命令行编辑该文件。
2.2、修改内容如下:
# Settings for a TLS enabled server.
server {
listen 443 ssl default_server;
server_name shanlingfeng.wang;
root /usr/share/nginx/html;
#启用 SSL 功能
ssl on;
ssl_certificate 1_www.domain.com_bundle.crt; #证书文件名称
ssl_certificate_key 2_www.domain.com.key; #私钥文件名称
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
location / {
index index.php index.html index.htm;
}
# nginx关联php 防止使用使用https协议访问时候出现下载文件情况
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi_params;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
2.3 通过执行以下命令验证配置文件问题
[aaa@qq.com ~]# nginx -t
出现上面两句提示,表明修改成功
2.3 配置成功,重启nginx服务
[aaa@qq.com ~]# nginx -s reload
3、测试