侧边栏壁纸
  • 累计撰写 47 篇文章
  • 累计收到 0 条评论

CentOS7.4 干净环境配置及搭建LNMP (PHP7+)

2022-9-12 / 0 评论 / 180 阅读
温馨提示:
本文最后更新于 2022-9-12,已超过半年没有更新,若内容或图片失效,请留言反馈。

当我们刚买好 CentOS 后,应该如何做到快速搭建 Web 应用环境呢?
在此, 我特地写下这篇实战文章, 希望大家少踩坑!我采用的是新装干净的 CentOS 7.4 操作系统, 安装 LNMP 开发环境.

CentOS 7.4
Openresty Nginx 1.15 [ 高性能 Web 平台 ]
PHP 7.3 [ 安装 Swoole4 扩展 ]
Mysql 5.7

更新系统源

由于我们的系统源太旧、国外等原因,建议先更新源镜像。

第一步 备份源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

第二步 下载 CentOS-Base.repo/etc/yum.repos.d/

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

第三步 生成缓存

yum clean all
yum makecache

第四步 更新系统 (更新系统时间可能会比较久取决于服务器网速)

yum -y update

防火墙配置

源更新好后,我们关闭系统默认的 firewall 防火墙,因为作为 Web 应用服务器 推荐 使用 iptables

第一步 停止/禁用 firewall

systemctl stop firewalld.service         // 停止
systemctl disable firewalld.service      // 禁止开机启动

第二步 设置 iptables service

yum -y install iptables-services

第三步 打开 vi /etc/sysconfig/iptables 文件修改防火墙配置,增加防火墙端口 3306 / 80 / 443

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

第四步 重启/设置开机启动

systemctl restart iptables.service     // 重启防火墙使配置生效
systemctl enable iptables.service      // 设置防火墙开机启动

!!! 注意: 必须重启系统使设置生效即可。

安装 OpenResty

做完以上的配置准备后,终于来到了 LNMP 环境搭建。首先我们安装 Nginx,在此我使用的是 OpenResty,因为它整合了我们的加强版 Nginx 的核心,我们的加强版[LuaJIT],许多浓墨重彩 Lua 库,大量的高品质第三方的 Nginx 模块,并且大部分外部依赖的。它旨在帮助开发人员轻松构建可伸缩的 Web 应用程序,Web 服务和动态 Web 网关。
当然,你也可以只安装 [Nginx], 需要到[官方下载包]。这里强烈推荐 [OpenResty]

废话不多说,我们开始吧。

第一步CentOS 系统中添加 openresty 仓库, 这样就可以便于未来安装或更新软件包(通过 yum update 命令)。
运行下面的命令就可以添加仓库:

sudo yum install yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

第二步 安装依赖库

 yum install readline-devel pcre-devel openssl-devel perl

第三步 安装软件包

sudo yum install openresty

安装完成后软件目录默认在 /usr/local/openresty,运行 nginx 命令为

/usr/local/openresty/nginx/sbin/nginx

查看版本

/usr/local/openresty/nginx/sbin/nginx -v

操作方式

# 启动服务
/usr/local/openresty/nginx/sbin/nginx
# 停止服务
/usr/local/openresty/nginx/sbin/nginx -s stop
# 重启服务
/usr/local/openresty/nginx/sbin/nginx -s reload
# 检验nginx配置是否正确
/usr/local/openresty/nginx/sbin/nginx -t

配置环境变量

nginx 目录添加到 PATH 中。打开文件 /etc/profile, 在文件末尾加入 export PATH=$PATH:/usr/local/openresty/nginx/sbin,若你的安装目录不一样,则做相应修改。 注意:这一步操作需要重新加载环境变量才会生效,可通过命令 source /etc/profile 或者重启服务器等方式实现。

配置项 (建议网站根目录配置到 openresty 外,比如 root /data/www)

# 配置目录
/usr/local/openresty/nginx/conf
# 配置文件
/usr/local/openresty/nginx/conf/nginx.conf

检查是否运行成功

ps aux|grep nginx

访问 Web 应用

curl localhost

安装 PHP

安装 PHP 7 前需要安装源,在这里我们安装的版本是 PHP7.3

第一步 下载安装源

yum install epel-release
wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm && rpm -Uvh remi-release-7.rpm

第二步 安装PHP

yum --enablerepo=remi-safe -y install php73

第三步 安装扩展 (加入了 swoole4 扩展)

yum install php73-php-gd php73-php-openssl php73-php-mcrypt php73-php-mcrypt php73-php-json php73-php-mbstring php73-php-xml php73-php-soap php73-php-intl php73-php-xmlrpc php73-php-simplexml php73-php-curl php73-php-mysqlnd php73-php-pecl-redis4 php73-php-pecl-swoole4
yum install zip unzip php7.3-zip

第四步 查看 PHP 版本

php73 -v

由于每次使用 PHP 命令都需要带上 php73,如果当前服务器不需要多个 PHP 版本情况下,可以执行

mv /usr/bin/php73 /usr/bin/php
mv /usr/bin/php73-cgi /usr/bin/php-cgi
mv /usr/bin/php73-phar /usr/bin/php-phar

这样就可以 使用 php -v 命令了。

接下来我们需要安装 PHP-FPM 工具来管理我们的 PHP

yum --enablerepo=remi-safe -y install php73-php-fpm

操作方式

# 系统开机启动 php-fpm 服务
systemctl enable php73-php-fpm
# 启动服务
systemctl start php73-php-fpm
# 停止服务
systemctl stop php73-php-fpm
# 重启服务
systemctl restart php73-php-fpm
# 查看服务状态
systemctl status php73-php-fpm.service

PHP-FPM 配置

# 配置目录
/etc/opt/remi/php73/

# 配置文件
/etc/opt/remi/php73/php-fpm.d/www.conf

安装 Mysql

同样的,安装 Mysql5.7 前需要下载源
第一步 下载源

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

第二步 安装源

yum localinstall mysql57-community-release-el7-8.noarch.rpm

第三步 检查源是否安装成功

yum repolist enabled | grep "mysql.*-community.*"

可以修改 vim /etc/yum.repos.d/mysql-community.repo 源,改变默认安装的 Mysql 版本。
比如要安装 5.6 版本,将 5.7 源的 enabled=1 改成 enabled=0。然后再将 5.6 源的 enabled=0 改成 enabled=1 即可。

第四步 安装命令 (包相对大,大概在 170M 左右,下载速度取决于您服务器的带宽)

yum install mysql-community-server

操作方式

# 系统开机自启动
systemctl enable mysqld
systemctl daemon-reload
# 启动服务
systemctl start mysqld
# 停止服务
systemctl stop mysqld
# 重启服务
systemctl restart mysqld
# 查看服务状态
systemctl status mysqld

修改 root本地登录密码

Mysql 安装完成之后,在 /var/log/mysqld.log 文件中给 root 生成了一个默认密码。通过下面的方式找到 root 默认密码,然后登录Mysql 进行修改:

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

登录 Mysql

mysql -uroot -p

设置登录密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Au87uejJD!';
# 或者
set password for 'root'@'localhost'=password('Au87uejJD!');

注意:Mysql5.7 默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。


通过 Msyql 环境变量可以查看密码策略的相关信息

show variables like '%password%';

密码策略信息

validate_password_policy:密码策略,默认为MEDIUM策略
 validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
 validate_password_length:密码最少长度
 validate_password_mixed_case_count:大小写字符长度,至少1个
 validate_password_number_count :数字至少1个
 validate_password_special_char_count:特殊字符至少1个

上述参数是默认策略 MEDIUM 的密码检查规则

修改密码策略

/etc/my.cnf 文件添加 validate_password_policy 配置,指定密码策略
选择 0(LOW),1(MEDIUM),2(STRONG) 其中一种,选择2需要提供密码字典文件

validate_password_policy=0

如果不需要密码策略,添加 my.cnf 文件中添加如下配置禁用即可:

validate_password = off

重新启动 Mysql 服务使配置生效:

systemctl restart mysqld

添加远程登录用户

默认只允许 root 帐户在本地登录,如果要在其它机器上连接 mysql,必须修改 root 允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

# 创建账号及生成密码
GRANT ALL PRIVILEGES ON *.* TO 'shugachara'@'%' IDENTIFIED BY 'Abc0331#' WITH GRANT OPTION;

# 立即生效
flush privileges;

配置默认编码为 UTF8

修改 /etc/my.cnf 配置文件,在 [mysqld] 下添加编码配置,如下所示:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

重新启动 Mysql 服务,查看数据库默认编码如下所示:

show variables like '%character%';


默认配置文件路径

配置文件:/etc/my.cnf
 日志文件:/var/log//var/log/mysqld.log
 服务启动脚本:/usr/lib/systemd/system/mysqld.service
 socket文件:/var/run/mysqld/mysqld.pid

到此, 整个环境已安装完成!感谢您的阅读~ 🙏

评论一下?

OωO
取消