起因：这几天，终于闲下心来，少娱乐，多玩点技术。首先，关于linux环境，之前hackweek买的一台学生机没派上用场，想着闲着也是闲着，不如好好利用一下学学linux，之前构建web服务器环境都是直接宝塔后台可视化界面，一键部署的懒人操作。说实话，这样对我的linux知识了解很不好，于是我打算从零开始，编译安装配置每一项我需要构建的东西。先把阿里云的服务器系统改成了最新的CentOS 8.2,然后开工。安装nginx安装nginx是直接到官网下载源代码进行编译安装，所以要先准备前置条件gcc安装安装 nginx 需要先将官网下载的源码进行编译，编译依赖 gcc 环境，如果没有 gcc 环境，则需要安装：yum install gcc-c++PCRE pcre-devel 安装PCRE(Perl Compatible Regular Expressions) 是一个Perl库，包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式，所以需要在 linux 上安装 pcre 库，pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令：yum install -y pcre pcre-develzlib 安装zlib库提供了很多种压缩和解压缩的方式， nginx 使用 zlib 对 http 包的内容进行 gzip ，所以需要在 Centos 上安装 zlib 库。yum install -y zlib zlib-develOpenSSL 安装OpenSSL 是一个强大的安全套接字层密码库，囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议，并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 http 协议，还支持 https（即在ssl协议上传输http），所以需要在 Centos 安装 OpenSSL 库。yum install -y openssl openssl-devel做好了前置安装，然后就是直接到nginx官网下载了，这一步一般都是用wget下载(推荐），所以如果没有wget，还得下一个wget。yum install wget然后就是到官网复制下载链接了：nginx官网解压下载完成后，使用tar -zxvf nginx-1.19.6.tar.gz cd nginx-1.19.6/进入到解压根目录后，直接使用./configure等待配置完成后，开始编译安装make && make install安装完成后查找安装目录whereis nginx然后cd /usr/local/nginxnginx的可执行文件在根目录下的sbin中，进入sbin使用./nginx即可启动nginx服务[scode type="blue"]这里补充一些常用命令：./nginx -s stop：此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。./nginx -s quit：此方式停止步骤是待nginx进程处理任务完毕进行停止。./nginx -s reload：重载nginx的设置，即nginx目录下的conf中的nginx.conf中的设置更改后需要执行此命令重载[/scode]开机自启动即在rc.local增加启动代码就可以了。vi /etc/rc.local增加一行 /usr/local/nginx/sbin/nginx设置执行权限：chmod 755 rc.local然后来到/usr/local/nginx/conf，用vim打开nginx.conf，把server_name改成自己的服务器ip或者已经准备好的域名，保存后使用重载命令后便可以直接访问nginx搭建好的web网站了。安装php一般可以直接通过yum -y install php直接安装php，但是我想要直接上最新版本的，所以得官网下载然后进行编译安装。这里得下两个前置包，不然在执行./configure的时候会报错yum install libxml2-devel yum install sqlite-devel然后到官网找到最新版下载地址使用wget进行下载，但是说实话，php官网下载速度一言难尽，所以我自己找了个下载源：下载源wget http://mirrors.sohu.com/php/php-8.0.0.tar.gz tar -zxvf php-8.0.0.tar.gz cd php-8.0.0/然后这里因为要搭配nginx使用，所以在进行编译配置的时候要加一点点参数./configure --prefix=/usr/local/php --enable-fpm--enable-fpm是为了安装php-fpm组件，然后--prefix代表了安装目录如果出现以下说明，证明配置成功了然后执行make && make install等待安装完成后找到php-fpm在/usr/local/php/sbin中，这个时候是启动不了php-fpm的，需要去/usr/local/php/etc中，把php-fpm.conf.default重命名为php-fpm.conf；除此之外还有该目录下的php-fpm.d中的www.conf.default要重命名为www.conf。不然启动php-fpm会显示找不到配置文件。mv php-fpm.conf.default php-fpm.conf cd php-fpm.d mv www.conf.default www.conf此时再回到/usr/local/php/sbin输入./php-fpm便可以成功启动了，然后php-fpm是没有重载命令的，只能使用killall php-fpm来停止服务.这时候回到nginx的conf目录中，将nginx.conf用vim打开，即vim nginx.conf然后，找到里面被注释掉的这个地方改成图片中的样子即可保存。location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }这时候可以去nginx目录下的html中新建一个index.php，使用vim输入以下内容<?php echo phpinfo();?>然后保存，访问自己之前在server_name输入的内容后加上/index.php便可以看到以下内容:到这里，web服务器的php支持配置也告一段落了。[scode type="yellow"]当创建其他php文件的时候一定要注意文件的读写权限，不然有可能出现访问的时候显示access denied的情况[/scode]安装MySQL弄完了上面这些基础条件，那么就开始弄MySQL数据库了，首先第一件是得搞懂自己的系统版本,这里就直接使用hostnamectl这里可以看到是linux 8，所以来到mysql官网下载界面[scode type="share"]自CentOS7开始MySQL数据库已从默认的程序列表中移除，所以在安装前我们需要先去官网下载 Yum 资源包[/scode][scode type="share"]CentOS是Red Hat的改进版本，所以下载选择版本时选择Red Hat开头的[/scode]然后复制下载链接回到终端，使用wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm rpm -ivh mysql80-community-release-el8-1.noarch.rpm yum update yum install mysql-server等待下载完成后，进入下一步权限设置chown mysql:mysql -R /var/lib/mysql[scode type="blue"]chwon(英文全拼：change owner)用于设置文件所有者和文件关联组的命令; -R : 处理指定目录以及其子目录下的所有文件; mysql:mysql表示设置该目录下的所有文件的拥有者为mysql，群体的使用者为mysql[/scode]初始化MySQLmysqld --initialize启动MySQL服务systemctl start mysqld检查MySQL服务状态systemctl status mysqld现在可以使用mysqladmin来检测mysql是否安装成功mysqladmin --version该命令将输出以下结果，该结果基于系统信息：如果上述命令没有输出任何结果就说明没有安装成功咯MySQL基础配置现在可以直接输入mysql -u root -p，密码为空便可以进入mysql界面了执行后会输出 mysql>提示符然后现在最重要的事情就是设置密码，这里有三种方法，第一种是用exit退出mysql，使用mysqladmin -uroot password "new_password";或者直接在mysql里面使用set password for username@localhost = password(newpwd);或者先use mysql;//连接到mysql数据库 update mysql.user set authentication_string=password('新密码') where user='用户名' and Host ='localhost';//修改密码 flush privileges;//更新权限 quit;//退出数据库到这里数据库安装也告一段落了。安装Docker经过一系列的安装配置，可以利用docker对上面的配置进行打包整理，来实现重复利用。[scode type="blue"]上面指docker新建容器，然后在容器中把上面的操作全部重新进行一遍后打包成镜像（诶嘿~~）[/scode]首先得下载yum工具包，它提供了yum-config-manager用于管理yum安装配置，我们就要利用这个工具来设置docker的下载仓库sudo yum install -y yum-utils //安装yum-utils sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo //绑定docker仓库绑定好下载仓库后，进入下一步安装docker引擎和容器sudo yum install docker-ce docker-ce-cli containerd.io等待全部安装完成后，便可以启动docker然后为了测试安装是否成功，我们可以按照官方文档上的说明一样，使用sudo docker run hello-world看是否显示如下画面如上就说明docker安装成功了。更新docker当要更新docker的时候，必须要先把旧版卸载掉，那么此时可以使用如下命令来进行卸载[scode type="yellow"]这里的卸载并不会把自己下的镜像之类的给删除，所以可以放心卸载[/scode]sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine卸载完成后可以回到上面的安装docker引擎和容器进行更新卸载docker使用以下命令卸载docker引擎，容器和命令行工具sudo yum remove docker-ce docker-ce-cli containerd.io然后再使用以下命令删除镜像，自定义设置等文件sudo rm -rf /var/lib/docker[scode type="blue"]这一块算附加内容吧[/scode]