当我们刚买好 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
到此, 整个环境已安装完成!感谢您的阅读~ 🙏
评论一下?