1.服务器环境搭建
2.登录服务器, 安装必要的软件工具包
- 安装ruby
- 安装ruby
# 安装ruby $ sudo yum install ruby
- 安装rvm
# 升级ruby版本2.4 # 升级gcc $ yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison iconv-devel # 安装rvm信任证书 $ curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import - # 安装rvm $ curl -L get.rvm.io | bash -s stable # 退出账户再登录, 以激活rvm $ exit # sshde登录 $ ssh root@服务器公网IP # 输入密码, 确认 # 加载rvm的配置 $ source /etc/profile.d/rvm.sh # 查看rvm的版本, 以确认rvm安装成功 $ rvm -v
- 升级ruby, 版本2.4.5
# 查看当前系统已安装的ruby的版本 $ ruby -v # 查看ruby的所有已发布版本 $ rvm list known # 制定安装版本(2.4较稳定) $ rvm install 2.4 # 加载ruby的说明文档 $ rvm docs generate-ri
- 安装ruby-gem
# 若提示'gem command not found', 则需要安装ruby-get $ yum install rubygems
- 安装jekyll, 参见Jekyll
# 安装jekyll $ gem install jekyll bundler # 安装分页插件 $ gem install jekyll-paginate
- 安装git
- 首先, 创建自己的软件管理目录, 个人建议方式: /你的名字/SoftWare, 示例:
$ cd / $ mkdir caofanCPU $ cd /caofanCPU $ mkdir SoftWare
- 然后, 安装git, 参见Git源码安装
# centos系统 $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel # ubuntu系统 $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev # 切换到软件目录下 $ cd /caofanCPU/SoftWare # 创建git的根目录 $ mkdir Git # 进入git根目录 $ cd Git # 方式一: 软件安装 $ yum install git-core # 方式二: 命令下载git源码, 重命名'git-latest' $ cd /caofanCPU/SoftWare/Git # 获取git-2.20.1的源码 # wget https://www.kernel.org/pub/software/scm/git/git-2.20.1.tar.gz $ 解压 $ tar -zxf git-2.20.1.tar.gz # 创建git软件目录 $ mkdir git-local # 切换到源码目录 $ cd ../git-2.20.1 # 设置编译连接后的软件目录, 即git软件目录 $ make prefix=/caofanCPU/SoftWare/Git/git-local all # 编译链接, 在git软件目录下生成软件 $ sudo make prefix=/caofanCPU/SoftWare/Git/git-local install # 查看git版本, 确认源码安装成功 $ git --version
3.克隆博客网站的源码
- 建议在本机(Windows系统)安装IDEA,
java
或python
都行 IDEA自动集成MarkDown, 方便以后写博客文章 - 回到Linux服务器, 下载博客代码
- 创建博客根目录
$ cd /caofanCPU $ mkdir Blog $ cd Blog $ git clone https://github.com/caofanCPU/caofanCPU.github.io.git
- 开启服务器端口
- 网页配置(
推荐
), 到阿里云控制台配置, 参见阿里云服务器开端口 装逼操作, shell解决, 参见阿里云iptablesw文件不存在- 关闭防火墙
$ systemctl stop firewalld
- 配置iptables服务
# 安装服务 $ yum install iptables-services # 启动服务 $ systemctl enable iptables # 查看服务, 确认成功 service iptables status
- 配置端口文件
$ vim /etc/sysconfig/iptables # 参照端口22添加8080-8099, 4000的端口 # 22端口用于ssh登录, 默认开启 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT # 80-89端口用于nginx集群 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80:89 -j ACCEPT # 8080-8099端口用于应用服务 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080:8099 -j ACCEPT # 4000用于本博客 -A INPUT -p tcp -m state --state NEW -m tcp --dport 4000 -j ACCEPT
- 重启防火墙
service iptables restart
- 备注: 阿里云对于服务器端口有管控, 若方式二行不通, 就用方式一解决
- 网页配置(
- 使用jekyll启动博客服务
- Github网站上fork仓库
注册并登录你的Github, follow caofanCPU, 他会提供技术支持的哦
找到博客仓库, 点击fork, 再回到你自己的仓库
复制你的仓库地址, 以下均以我自己的仓库为例子, 建议你改为你自己的
- 切换到博客git仓库的根目录
$ cd /caofanCPU/Bolg/caofanCPU.github.io
- 指定公网IP启动博客服务
$ nohup jekyll s -w --host=0.0.0.0 &
- 解决jekyll版本更新的问题
# 常见问题: 'jekyll 3.8.5 | Error: jekyll-paginate' 和 'Deprecation: The 'gems' configuration option has been renamed to 'plugins'. Please update your config file accordingly' 更改配置文件 _config.yml 将'gems: [jekyll-paginate]'改为'plugin: [jekyll-paginate]' 改完后, 提交代码到远程仓库 $ git fetch --all && git reset --hard origin/master && git pull $ git push -u
- 再次启动服务
$ nohup jekyll s -w --host=0.0.0.0 & # 看到如下内容则博客服务启动OK Auto-regeneration: enabled for '/caofanCPU/Bolg/caofanCPU.github.io' Server address: http://0.0.0.0:4000/ Server running... press ctrl-c to stop.
- 确认服务进程及端口号
# 查询进程号 $ ps -ef | grep jekyll # 根据进程号查询端口 $ netstat -nap | grep 你看到的pid
-
在浏览器上试着输入http://服务器公网IP:4000/ , 惊艳你了吗?
- 拓展 换用域名访问博客(域名备案有点麻烦, 不想折腾的可以略过)
-
安装Nginx
# 安装基础工具包 $ yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel # 下载nginx版本1.14.0 $ wget http://nginx.org/download/nginx-1.14.0.tar.gz # 解压 $ tar -xvf nginx-1.14.0.tar.gz # 切换到解压后的根目录 $ cd nginx-1.14.0 # 执行配置 $ ./configure # 编译连接 $ make # 编译安装, 默认安装在/usr/local/nginx目录下 $ make install # 切换到nginx软件目录 $ cd /usr/local/nginx/conf # 增加虚拟域名(自定义域名)配置 $ vim /usr/local/nginx/conf/nginx.conf # 在该文件倒数第二行写入(注意要带;): include vhost/*.conf; # 创建自定义域名配置文件目录 $ mkdir vhost
-
配置域名代理
# 每个域名单独创建一个配置文件, 文件命名: 域名或其缩写.config # 内容 server { listen 80; server_name 你的域名(示例) www.baidu.com; #charset koi8-r; #access_log logs/host.access.log main; #location / { #root /dev/shm/normal; #index index.html index.htm; #} location / { proxy_pass http://127.0.0.1:4000/; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; } }
- nginx常用命令
- 测试nginx所有配置是否OK
$ /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
- 重启nginx
$ /usr/local/nginx/sbin/nginx -s reload
- 停止nginx
$ /usr/local/nginx/sbin/nginx -s stop
- 启动nginx
$ /usr/local/nginx/sbin/nginx
- 查看nginx主/副进程
$ ps -ef | grep nginx
-
附加 查看内存空间
$ free -m
- 收藏 jasypt密码加密
- 下载jasypt包
- 下载执行脚本pwd-encode.sh
- 将这两个文件上传传到服务器, 示例
$ cd /caofanCPU/ $ mkdir MyUtil $ cd MyUtil/ # 使用Xftp上传(XShell的快捷键 Ctrl + Alt + F), 命令方式请自行百度 'scp' # 上传后, 赋予脚本'pwd-encode.sh'权限 $ chmod 777 pwd-encode.sh # 然后, 试试如下命令: ./pwd-encode.sh 你要加密的密码 你设定的加密盐值 # 该脚本默认加密算法为, 如需更改, 请 vim pwd-encode.sh 可在第7行'algorithm=PBEWithMD5AndDES'进行更改 $ ./pwd-encode.sh root 123 # 福利, Linux生成n位随机字符串, 作为盐值, 示例: 32位的Base64随机字符串 $ openssl rand -base64 32
-
总结
- 欢迎关注Github 或 公众号帝八哥
- 感谢jekyll提供的网站工具
- 感谢博文网站源码作者Xuan Huang
- 感谢博文原作者yezhwi
- 捐赠|Donate, 实践撰文分享实属不易, 您的支持能为更多省时省事的分享提速, 谢谢!
微信 |
支付宝 |
MiXin |