CentOS 8+Nginx+Mysql+PHP+Redis全能服务器配置

redis mysql8 centos8 php nginx 运维 · systemofdown · 于 3年前 发布 · 3033 次阅读

开始之前

本文中用的服务器是腾讯云VPC或阿里云ECS,云服务器中CentOS8中防火墙及selinux默认是关闭的,如果是自己安装的物理机或虚拟机从官方镜像安装要注意这两个地方的处理。

由于centos这个奇葩系统对软件更新不是很及时,所以nginx mysql 使用的是官方源,php使用的是第三方源,后续会有详细讲解。

需要知道的变化

模块化管理 (module)

随着linux系统越来越庞大,软件包也越来越多,越来越复杂。CentOS 8 跟随上游RHEL8中引入了一种新的结构来管理软件内容,所有的软件内容被划分成了两个repository:BaseOS 和AppStream

BaseOS:类似于原来的软件仓库,主要提供了OS系统的基础组件,提供的是RPM形式的包,因为都是RPM包形式所以它支持与之前版本兼容。

AppStream:这是一个特殊类型的仓库,它提供的是用户空间的应用,运行时语言等,它提供了两种形式的内容:第一种是RPM形式的独立的软件包,第二种是Module形式的包集合,Module是代表着一组通常一起安装的RPM包,一个典型的module包含应用,依赖库,文档库,帮助组件等,即将相关的包组合在一起。

当你在 CentOS 8 添加新的没有模块的软件仓库,比如 NodeJS 的官方仓库,然后准备运行dnf install nodejs安装的时候,却发现软件版本没有变,并没有使用第三方软件仓库的包,这是因为模块拥有更高的优先级,而第三方软件仓库没有引入模块化或者是模块没有被启用,解决方法是禁用掉当前启用的模块或者启用新的模块。

禁用系统nginx模块

dnf module disable nginx

禁用系统mysql模块

dnf module disable mysql

初始化系统

升级系统

dnf update -y

安装必要工具

编辑器

dnf install nano vim

网络工具

yum install net-tools

源实用工具

sudo dnf install yum-utils dnf-utils

其他工具

dnf install unzip git

安装Mysql CE (官方源)

源配置

  1. 转到https://dev.mysql.com/downloads/repo/yum/ 上的MySQL Yum存储库的下载页面 。
  2. 下载最新适合对版本,本文使用,Red Hat Enterprise Linux 8 / Oracle Linux 8 (Architecture Independent), RPM Package.
    cd ~
    wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
    
  3. 安装源
     sudo rpm -Uvh mysql80-community-release-el8-1.noarch.rpm
    

安装mysql

sudo dnf install mysql-community-server

设置开机启动

sudo systemctl enable mysqld.service

启动

sudo systemctl start mysqld.service

MySQL服务器初始化

自MySQL 5.7起:在服务器初次启动时,假定服务器的数据目录为空,则会发生以下情况:

  • 服务器已初始化。
  • SSL证书和密钥文件在数据目录中生成。
  • 该validate_password插件安装并启用。
  • root'@'localhost' 创建 一个超级用户帐户。设置超级用户的密码并将其存储在错误日志文件中。要显示它,请使用以下命令:
    shell> sudo grep 'temporary password' /var/log/mysqld.log
    

通过使用生成的临时密码登录并尽快更改超级用户帐户的root密码,以更改root密码:

shell> mysql -uroot -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass4!';

注意 MySQL的 validate_password 插件默认安装。这将要求密码至少包含一个大写字母,一个小写字母,一位数字和一个特殊字符,并且密码总长度至少为8个字符。

密码验证部分,mysql 8 默认采用 caching_sha2_password,连接失败的情况可以参考:MySQL8.0登录提示caching_sha2_password问题解决方法

安装Nginx(官方源)

源设置

使用以及配置创建文件vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

禁用系统nginx模块

dnf module disable nginx

安装nginx

dnf install nginx -y

设置开机启动

sudo systemctl enable nginx.service

启动

sudo systemctl start nginx.service

Nginx 初始化

web安全是第一位的,接下来的初始化配置可以参考CentOS 7 下 Nginx 安全加固配置规范

安装php+php-fpm (第三方REMI源)

源设置

安装EPEL 存储库配置包:

    dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

安装Remi 存储库配置包:

    dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

查看可用的版本

dnf module list php

结果如下 dnf module list php

启用想用的版本

dnf module enable php:remi-7.4/common

安装PHP

dnf install php php-fpm php-mbstring php-cli php-json php-opcache php-zip php-xml php-gd php-ldap php-mysqli php-sqlite3 php-json php-dom php-bcmath php-intl php-mysqlnd php-pdo php-pecl-imagick -y

配置开机启动PHP-FPM

sudo systemctl enable php-fpm.service

启动PHP-FPM

sudo systemctl start php-fpm.service

安装Redis

dnf install redis -y

配置开机启动

sudo systemctl enable redis.service

启动

sudo systemctl start redis.service

本文由 systemofdown 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。

共收到 0 条回复
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册