本文中用的服务器是腾讯云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
cd ~
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el8-1.noarch.rpm
sudo dnf install mysql-community-server
设置开机启动
sudo systemctl enable mysqld.service
启动
sudo systemctl start mysqld.service
自MySQL 5.7起:在服务器初次启动时,假定服务器的数据目录为空,则会发生以下情况:
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问题解决方法
使用以及配置创建文件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
dnf install nginx -y
设置开机启动
sudo systemctl enable nginx.service
启动
sudo systemctl start nginx.service
web安全是第一位的,接下来的初始化配置可以参考CentOS 7 下 Nginx 安全加固配置规范
安装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 enable php:remi-7.4/common
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
dnf install redis -y
配置开机启动
sudo systemctl enable redis.service
启动
sudo systemctl start redis.service
本文由 systemofdown 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。