Linux 云计算
1.安装linux虚拟机
1.1安装红帽公司提供的虚拟机平台
在此虚拟机下选择CentOS 7 64位 iso光盘,进行安装;
第一次安装时,需要保存快照,以便后续恢复 #快照作用:相当于存档作用,十分重要;
#####################################################################
1.2安装MobaXterm1_CHS1对虚拟机服务器进行远程调控
建新会话
选择SSH
在虚拟机下输入 ip a (ip address)获取本地ip
lo为本地
ens33为实际连接时使用的ip
192.168.119.128为实际ip,用此ip来连接会话
输入 远程主机ip 以及用户名:root
用户名指定为:root
password:在虚拟机登入中不显示,为隐示输入
#####################################################################
1.3对动态ip进行静态设置
nmcli connection modify ens33 ipv4.address 192.168.119.88/24 ipv4.gateway 192.168.119.2 ipv4.dns 192.168.119.2 ipv4.method static
输入以上命令;
注意:第一个ip需要在后缀加上/24 后面两个ip作为访问出口和dns代理ip进行设置,统一为2;
接着输入;
systemctl restart network
#重启网络设置
新建新定义的静态ip会话,重新打开即可设置成功;
#固定服务器ip
2.搭建服务器
命令网址:
https://www.processon.com/view/link/6266626f07912970cb22bc45#map
例子:命令1
cal 查看日历
例子:命令2
yum -y install tree #安装命令,有些命令模块需要安装才能用;
2.1 BT面板安装辅助搭建服务器 (初学者使用)
输入bt 输入命令14
输入面板地址进入宝塔的调试面板
可以查找宝塔账户密码
浏览器 传输给 Nginx 提供资源的访问 需要在地址后面加上/文件名 ,默认会访问该目录下的index.html(索引文件)
#如果没有index.html或指定文件名则返回404 Not Found
前端的代码主要在nginx的目录下发给客户端浏览器
PHP 提供业务的逻辑处理(浏览器无法提供) #数据处理后呈递给数据库
MySQL存储业务数据 #处理完后返回给Nginx,呈递给客户
2.2 搭建blog
在BT面板内上传tyecho的开源库;
在usr/themes上传tyecho主题,可以对外观进行修改;
输入内网地址访问blog ;
第一次进入设置用户名与密码,以及数据库的名字与密码;
进入内网地址,后面加/admin进入用户管理,可以更改界面;
#再次访问时,在终端SSH会话中输入bt可以对密码进行修改等,复制内网或者外网连接进行访问宝塔网页管理界面
2.3部署服务
局域网关系图
通过代理搭建服务器
使用开源的frps部署服务器
1.下载源代码
wget https://github.com/fatedier/frp/releases/download/v0.42.0/frp_0.42.0_linux_amd64.tar.gz
2.解压
tar xzvf frp_0.42.0_linux_amd64.tar.gz
3.修改配置文件
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin888 #管理员密码
token = 12345678
allow_ports = 2000-3000,3001,3003,4000-50000
subdomain_host = study.iproute.cn #购买的服务器域名
4.运行软件
./frps -c frps.ini
5.测试
浏览器访问http://43.133.1.5:7500/
frp客户端
- 上传群里压缩包的frpc文件到虚拟机中,并且右键将执行打上勾
- 在frpc文件下面新建一个空文件,重命名为frpc.ini
- 在配置文件中填写如下内容
[common]
服务器的IP地址
server_addr = 43.133.1.5
服务器的端口号,默认是7000
server_port = 7000
服务器上面的用户名
user = tly
协议kcp > tcp ,所以建议kcp
protocol = kcp
和服务器一样即可,加密用的
token = 12345678
[blog]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
subdomain = blog-xwz #自己写的域名
[pan]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
subdomain = pan-xwz #自己写的域名
- 启动服务
./frpc -c frpc.ini - 就可以跑去映射服务器后台看下HTTP那里自己有没有映射成功
3.大型网站发展
3.1【云计算】网站架构
https://www.yuque.com/docs/share/cf761c6e-a645-4003-9002-815f82b5f9bf?#
3.2Docker容器
Docker概念:
Docker会执行某个任务,直到任务结束为止;
#相当于对操作系统下的应用程序与扩展库等的一个打包
#优势:减少了操作系统的重复性安装,避免大量占用系统存储空间
在远程控制端执行一下Doker安装命令
sudo yum remove docker docker-common docker-selinux docker-engine sudo yum install -y yum-utils device-mapper-persistent-data lvm2 yum -y install wget wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo sudo yum makecache fast sudo yum install docker-ce -y systemctl enable --now docker
此时Docker已经安装完毕
docker run -d –privileged=true –rm –user 0 -p 5901:5901 -p 6901:6901 -e VNC_PW=123 registry.cn-hangzhou.aliyuncs.com/eagleslab/service:xfce-vnc
输入以上命令行对安装完的Docker进行测试,获取互联网上的Docker应用进行测试
在浏览器中访问192.168.119.128:6901进行访问测试,密码为123 (VNC_PW=123)
docker ps -a 查看正在运行的容器
安装docker图形化管理工具
docker rm -f
docker ps -qa docker volume create portainer_data docker run -d -p 8000:8000 -p 9443:9443 -p 9000:9000 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:2.9.3
下载镜像时可以看作者的提示,有哪些参数设置是规定好了的
开通阿里云提供的镜像加速服务
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["![img](file:///C:\Users\tly20\AppData\Roaming\Tencent\QQTempSys\[5UQ[BL(6~BS2JV6W}N6[%S.png)https://m66ssmqq.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
Docker的基本命令
docker search <关键字> # 搜索镜像
docker search nginx
docker search centos
docker pull <镜像名> # 获取镜像
docker pull nginx
docker pull centos:8
docker pull ubuntu
docker images # 查看有哪些镜像
docker rmi <镜像名> # 删除镜像
docker run <镜像名> <任务> # 运行容器,当任务执行结束之后,容器就会退出
docker run –name=”<容器名>” <镜像名> <任务指令> # 指定容器的名字
docker run -d <镜像名> <任务指令> # 让容器在后台启动
docker run -i -t <镜像名> bash # 进入容器的命令交互程序
docker run -p <主机的端口号>:<容器的端口号> <镜像名> <任务指令> # 暴露容器的端口号
docker run -v <主机上的目录>:<容器的目录> <镜像名> <任务指令> # 将主机上的文件夹映射到容器中
docker ps # 查看容器,默认只能看到运行中的容器
docker ps -a # 查看所有容器
docker logs <容器名> # 查看容器运行的时候输出的内容
docker logs -f <容器名> # 持续查看容器输出的内容
docker stop <容器名> # 停止容器,会告诉容器要结束了,赶紧自己退出
docker kill <容器名> # 杀死容器,直接收回容器的资源,可能会出现数据来不及保存
docker start <容器名> # 启动容器
docker rm <容器名> # 删除容器
docker restart <容器名> # 重启容器
docker pause <容器名> # 暂停容器
docker resume <容器名> # 恢复已经暂停的容器
容器的数据应当另外存放;
容器的数据一般放在数据卷中;
3.3LNMP部署网站
LNMP部署教程:http://mc.iproute.cn:31010/temp/lnmp/
使用官方仓库安装nginx
[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo #写入下载配置
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@localhost ~]# yum -y install nginx #开始下载
修改nginx用户
[root@localhost ~]# groupadd www -g 666 #用户组添加www 用户密码为666
[root@localhost ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
[root@localhost ~]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf
启动nginx并加入开机自启
# 启动nginx服务
[root@localhost ~]# systemctl start nginx
# 设置nginx开机自启动
[root@localhost ~]# systemctl enable nginx
防火墙配置
# 关闭防火墙(不推荐)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
# 防火墙放行指定的协议
[root@localhost ~]# firewall-cmd --add-service=http --permanent
success
[root@localhost ~]# firewall-cmd --reload
success
使用第三方扩展源安装php7.1
#等同于分割线后的命令效果
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
-----------------------------------------------------------------------------------------
[root@localhost ~]# vim /etc/yum.repos.d/php.repo
[php]
name = php Repository
baseurl = http://repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
# 安装epel扩展软件仓库
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
配置php-fpm用户与nginx的运行用户保持一致
[root@localhost ~]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
[root@localhost ~]# sed -i '/^group/c user = www' /etc/php-fpm.d/www.conf
启动php-fpm并加入开机自启
[root@localhost ~]# systemctl start php-fpm
[root@localhost ~]# systemctl enable php-fpm
测试php与nginx是否正常工作
[root@localhost ~]# vim /usr/share/nginx/html/info.php
<?php
phpinfo();
?>
浏览器访问
http://<虚拟机的IP地址>/info.php
在没有告知nginx如何处理.php格式文件的时候,nginx会认为这是一个静态文件,就直接发给浏览器,而浏览器也不知道php是什么文件。就会出现下载到电脑上。
修改nginx配置文件,让nginx接受到以
.php
结尾请求,全部转交给php-fpm处理,也就是转发给9000端口
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
# 在最后一行的大括号前,加上下面的代码
root /usr/share/nginx/html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 重启nginx,让配置生效
[root@localhost ~]# systemctl restart nginx
安装mariadb数据库
[root@localhost ~]# yum install mariadb-server mariadb -y
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# systemctl enable mariadb
[root@localhost ~]# mysqladmin password '123456'
[root@localhost ~]# mysql -uroot -p123456
Nginx连接Fastcgi服务器配置
[root@localhost ~]# vim /etc/nginx/conf.d/php.conf
server {
listen 80;
server_name php.test.com;
root /code;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost ~]# systemctl restart nginx
测试Fastcgi是否正常
# 修改/code文件夹的所有者
[root@localhost ~]# chown -R www.www /code
# 关闭Linux自带的安全子系统,此子系统会阻止www来访问任何一个普通的文件
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /code/info.php
<?php
phpinfo();
?>
测试数据库连接
[root@localhost ~]# vim /code/mysqli.php
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "连接MySQL...成功!";
?>
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以邮件至 1300452403@qq.com