通过以下教程,可以在云服务器上搭建一个Halo博客,具体效果参考本博客:)
前期准备
- 购买服务器
- 安装系统镜像,推荐centOS7.6
- 重设云服务器登录密码
环境安装
-
通过命令进入服务器,如ssh root@123.123.123.123,输入登录密码进入服务器
-
安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce docker-ce-cli containerd.io --allowerasing yum install docker-ce systemctl start docker systemctl enable docker docker version 如果出现了docker版本信息,证明docker安装完成 注:如果docker启动容器失败了,用这个命令看日志 docker logs --details 容器id
-
安装jdk
在电脑本地通过oracle官网下载java版本
然后通过命令上传至服务器,以下是mac上传下载命令集合1、mac上传文件到Linux服务器 scp 文件名 用户名@服务器ip:目标路径 scp /Users/test/testFile root@192.168.1.1:/test/ 2、mac上传文件夹到Linux服务器,与上传文件相比多加了-r scp -r 文件夹目录 用户名@服务器ip:目标路径 scp -r /Users/test/testFolder test@192.168.1.1:/test/ 3、Linux服务器下载文件到mac scp 用户名@服务器ip:文件路径 目标路径 scp root@192.168.1.1:/test/testFile /Users/test/ 4、Linux服务器下载文件夹到mac,与下载文件相比多加了-r scp -r 用户名@服务器ip:文件路径 目标路径 scp -r root@IP:/test/testFolder /Users/test/
解压缩文件
tar -zxvf jdk-8u171-linux-x64.tar.gz
设置环境变量
vi /etc/profile //在该文件中增加以下内容 JAVA_HOME=/usr/java/jdk1.8.0_191 JRE_HOME=$JAVA_HOME/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH
使用命令测试是否安装
java -version
-
安装MySQL
docker pull mysql:5.7 docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
-
安装nginx
docker pull nginx
启动基础容器用于资源拷贝
docker run -d --name=nginx nginx
创建nginx目录文件并进入
日志文件位置:/var/log/nginx 配置文件位置: /etc/nginx 资源存放的位置: /usr/share/nginx/html
注:日志目录为软连接,所以不创建logs目录
进入到对应目录,输入命令复制配置文件docker cp [容器id]:/etc/nginx ./conf docker cp [容器id]:/usr/share/nginx/html ./html
删除基础容器
停止nginxdocker stop nginx
删除nginx
docker rm nginx
创建正式容器
docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/:/etc/nginx/ -v /usr/share/nginx/html:/usr/share/nginx/html nginx
配置文件
#user nginx; worker_processes 1; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; server { listen 80; server_name my.zrkworld.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } upstream halo { server 127.0.0.1:8090; } server { listen 80; server_name zrkworld.com; location / { proxy_pass http://172.17.0.1:8090/; #注意这个ip地址要用ipconfig -a 来查看本机ip,之所以不用127.0.0.1是因为不明原因连接失败 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }
修改配置后重启容器
docker restart nginx
-
安装redis
docker pull redis
-
安装博客