Solo 网站安装教程

本贴最后更新于 1932 天前,其中的信息可能已经渤澥桑田

阿里云轻量级应用服务器

系统版本:CentOS7.3

开放端口(22 端口等一切安装完毕后最好删除):

系统更新

yum -y update

安装 JDK1.8

查询是否已经安装
java -version -bash: java: command not found #代表未安装
安装
yum install java java -version
安装成功

Java 安装成功

安装 nginx 及配置

安装依赖库

gcc gcc-c++

yum install -y gcc gcc-c++

gcc 安装成功

PCRE 库

yum install -y pcre pcre-devel

zlib

yum install -y zlib zlib-devel

openssl

yum install -y openssl openssl-devel
编译安装

创建 nginx 文件夹

mkdir /usr/local/server mkdir /usr/local/server/nginx mkdir /usr/local/server/nginx/temp mkdir /usr/local/server/nginx/run mkdir /var/temp mkdir /var/temp/nginx cd /usr/local/server/nginx

将 nginx-1.8.0.tar.gz 拷贝至 Linux 服务器此文件夹(可通过其它方式获取)

解压:

tar -zxvf nginx-1.8.0.tar.gz cd nginx-1.8.0

configure 参数设置

注意:将临时文件目录指定为/usr/local/server/nginx/temp,需要在/usr/local/server/nginx 下创建 temp 目录

./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --with-http_stub_status_module --with-http_ssl_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi

编译安装

make make install

启动 nginx(安装目录默认在/usr/local/nginx)

cd /usr/local/nginx/sbin/ ./nginx

访问网站,出现如下代表 nginx 安装成功

配置 nginx 开机启动

我使用的是在启动脚本/etc/rc.local 里加语句

mkdir /var/run/nginx touch /var/run/nginx/nginx.pid cd /usr/local/nginx/sbin/ ./nginx

赋予权限

chmod +x rc.local

配置站点

创建对应文件夹
mkdir /usr/local/www cd /usr/local/www

上传自己的静态资源备份,成功后如下:

配置 nginx 关联域名和站点

编辑 nginx.conf

vi /usr/local/nginx/conf/nginx.conf

在 http 里加入

#主站 server { listen 80; server_name tobeshrek.com; location / { root /usr/local/www/tobeshrek.com; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # 静态资源站点 server { listen 80; server_name resource.tobeshrek.com; #将localhost修改为您证书绑定的域名,例如:www.example.com。 rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。 location / { index index.html index.htm; } }

重新加载配置文件

cd /usr/local/nginx/sbin ./nginx -s reload

访问成功

配置站点 SSL

开启 nginx 的 ssl 模块

创建 ssl 储存文件夹,如下:

mkdir /usr/local/nginx/conf/cert

将阿里云下载的免费 SSL 证书上传到该目录

在 nginx.conf 文件中配置,在 http 里修改和加入

#主站 server { listen 80; server_name tobeshrek.com; #将localhost修改为您证书绑定的域名,例如:www.example.com。 rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。 location / { index index.html index.htm; } } # 主站SSL加密配置 server { listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。 server_name tobeshrek.com; #将localhost修改为您证书绑定的域名,例如:www.example.com。 ssl_certificate cert/2562917_tobeshrek.com.pem; #将domain name.pem替换成您证书的文件名。 ssl_certificate_key cert/2562917_tobeshrek.com.key; #将domain name.key替换成您证书的密钥文件名。 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。 ssl_prefer_server_ciphers on; location / { root /usr/local/www/tobeshrek.com; #站点目录。 index index.html index.htm; } } # 静态资源站点SSL加密 server { listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。 server_name resource.tobeshrek.com; #将localhost修改为您证书绑定的域名,例如:www.example.com。 ssl_certificate cert/2812408_resource.tobeshrek.com.pem; #将domain name.pem替换成您证书的文件名。 ssl_certificate_key cert/2812408_resource.tobeshrek.com.key; #将domain name.key替换成您证书的密钥文件名。 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。 ssl_prefer_server_ciphers on; location / { root /usr/local/www/resource.tobeshrek.com; #站点目录。 index index.html index.htm; } }

重新启动 nginx

cd /usr/local/nginx/sbin ./nginx -s quit ./nginx

访问域名,成功,Chrome 会有把小锁

安装 Docker

Docker 介绍

执行命令安装

yum -y install docker

更换中科大的源

官方文档

vi /etc/docker/daemon.json
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }

ecs -> :wq 保存

重启 docker

systemctl restart docker

安装 MySQL

# 安装mysql:5.6,直接docker run 他会自动去官方镜想下载 # MYSQL_ROOT_PASSWORD=你的数据库密码 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你的数据库密码 -d mysql:5.6 # docker安装的mysql默认允许远程连接,可以使用Navicat等软件连接数据库 # 进入容器mysql docker exec -it mysql bash # 进入数据库 p后面跟你的密码 mysql -uroot -pXXX #操作 #退出数据库 exit #退出容器 exit

安装 Solo 开源博客

solo 官方 docker 安装文档

进入 MySQL 创建 solo 数据库
#如果进入时提示容器为运行则,运行数据库镜像 docker run mysql # 进入容器mysql docker exec -it mysql bash # 进入数据库 p后面跟你的密码 mysql -uroot -pXXX # 创建数据库(数据库名:solo;字符集utf8mb4;排序规则utf8mb4_general_ci) create database solo DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 出现Query OK, 1 row affected (0.00 sec)表示成功 #退出数据库 exit #退出容器 exit
拉取镜像,成功如下图
docker pull b3log/solo

运行 solo 镜像

docker run --detach --name solo --network=host \ --env RUNTIME_DB="MYSQL" \ --env JDBC_USERNAME="root" \ --env JDBC_PASSWORD="你的数据库密码" \ --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \ --env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=true&serverTimezone=UTC&allowPublicKeyRetrieval=true" \ b3log/solo --listen_port=8080 --server_scheme=https --server_host=blog.tobeshrek.com --server_port=

配置 nginx 反向代理

ssl 文件传到服务器/usr/local/nginx/conf/cert 目录下

# solo博客站点 upstream backend { server localhost:8080; # Solo 监听端口 } server { listen 80; server_name blog.tobeshrek.com; #将localhost修改为您证书绑定的域名,例如:www.example.com。 rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。 location / { index index.html index.htm; } } # 静态资源站点SSL加密 server { listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。 server_name blog.tobeshrek.com; #将localhost修改为您证书绑定的域名,例如:www.example.com。 ssl_certificate cert/2785998_blog.tobeshrek.com.pem; #将domain name.pem替换成您证书的文件名。 ssl_certificate_key cert/2785998_blog.tobeshrek.com.key; #将domain name.key替换成您证书的密钥文件名。 ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。 ssl_prefer_server_ciphers on; location / { proxy_pass http://backend$request_uri; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; client_max_body_size 10m; } }

重载 nginx 配置文件

cd /usr/local/nginx/sbin ./nginx -s reload

安装成功

安装 FTP 服务器->vsftpd

yum 安装
yum -y install vsftpd #安装 rpm -qa |grep vsftp #查看是否安装了vsftp rpm -e vsftpd-3.0.2-25.el7.x86_64 #卸载
放行阿里云控制台防火墙

20、21、30000/30999

一些指令(按情况执行对应指令)
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 service vsftpd start #启动vsftpd服务 service vsftpd restart #重启vsftpd服务 service vsftpd status #查询vsftpd服务状态 chkconfig vsftpd on #设置自启

创建 chroot_list 文件

vi /etc/vsftpd/chroot_list

测试一下能否登录 FTP 了,先安装一个 ftp 客户端组件

yum -y install ftp #安装ftp ftp localhost #尝试登录 tail -f /var/log/secure #查看日志文件
配置文件放行 root 用户
# 在/etc/vsftpd 目录下 # 修改user_list和ftpusers文件 # 注释root用户,放行root用户

vsftpd.conf 文件配置,加上以下几行

# 227 解决227路由问题 pasv_enable=YES pasv_min_port=30000 pasv_max_port=30999 pasv_address=106.15.91.0 #你的外网IP地址

/etc/vsftpd/目录结构

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1441 引用 • 10069 回帖 • 495 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Dirk

    不错 回去试试 sym 没按明白