起因:这几天,终于闲下心来,少娱乐,多玩点技术。

首先,关于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-devel
  • zlib 安装
    zlib库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
  • OpenSSL 安装
    OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。

nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

做好了前置安装,然后就是直接到nginx官网下载了,这一步一般都是用wget下载(推荐),所以如果没有wget,还得下一个wget。

yum install wget

然后就是到官网复制下载链接了:nginx官网
nginx官网

解压
下载完成后,使用

tar -zxvf nginx-1.19.6.tar.gz
cd nginx-1.19.6/

进入到解压根目录后,直接使用

./configure

等待配置完成后,开始编译安装

make && make install

安装完成后查找安装目录

whereis nginx

whereis nginx
然后

cd /usr/local/nginx

nginx的可执行文件在根目录下的sbin中,进入sbin使用./nginx即可启动nginx服务

这里补充一些常用命令:
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s reload:重载nginx的设置,即nginx目录下的conf中的nginx.conf中的设置更改后需要执行此命令重载

开机自启动

即在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官网下载速度一言难尽,所以我自己找了个下载源:下载源
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便可以看到以下内容:

phpinfo

到这里,web服务器的php支持配置也告一段落了。

当创建其他php文件的时候一定要注意文件的读写权限,不然有可能出现访问的时候显示access denied的情况

安装MySQL

弄完了上面这些基础条件,那么就开始弄MySQL数据库了,首先第一件是得搞懂自己的系统版本,这里就直接使用

hostnamectl

系统版本
这里可以看到是linux 8,所以来到mysql官网下载界面
官网



然后复制下载链接
下载链接
回到终端,使用

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

chwon(英文全拼:change owner)用于设置文件所有者和文件关联组的命令; -R : 处理指定目录以及其子目录下的所有文件; mysql:mysql表示设置该目录下的所有文件的拥有者为mysql,群体的使用者为mysql

初始化MySQL

mysqld --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对上面的配置进行打包整理,来实现重复利用。

上面指docker新建容器,然后在容器中把上面的操作全部重新进行一遍后打包成镜像(诶嘿~~)

首先得下载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的时候,必须要先把旧版卸载掉,那么此时可以使用如下命令来进行卸载

这里的卸载并不会把自己下的镜像之类的给删除,所以可以放心卸载

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

这一块算附加内容吧

Last modification:January 9th, 2021 at 04:03 pm
如果觉得我的文章对你有用,请随意赞赏