CentOS版本 CentOS-7-x86_64-DVD-1810
Ghost版本 2.23.4
本文以下所有操作和命令均是根據官網setup說明進行,官網僅針對Ubuntu有安裝說明,沒有在CentOS里的安裝說明,網上能Google或Baidu到的所有文章,均是比較老的Ghost版本,很多命令已經有所變化了
准備工作
-
對系統進行更新
yum update
## 新建用戶
* 由於Ghost不能在root下進行安裝,因此需要新建一個用戶
```shell
adduser username //添加新用戶或者用已有的用戶,用戶名為username
passwd username //修改新建用戶的密碼
-
新添加的用戶需要有
sudo
的權限vi /etc/sudoers //編輯權限文件
找到下面這行並在后面添加上前面設置好的新用戶名
root ALL=(ALL) ALL username ALL=(ALL) ALL
安裝Nginx服務
-
因為yum安裝里面沒有Nginx,因此我們需要通過epel來安裝
yum -y install epel-release yum -y install nginx
將端口添加到防火牆里或者關閉防火牆
systemctl stop firewalld
安裝MySql5.7
-
更新安裝MySql的源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm //根據選擇要安裝的版本來確定下列代碼應disable或enable sudo yum-config-manager --disable mysql80-community sudo yum-config-manager --enable mysql57-community yum -y install mysql-community-server
-
啟動MySql服務並查看安裝時的
root
密碼systemctl start mysqld.service sudo grep 'temporary password' /var/log/mysqld.log
-
修改MySql的
root
密碼mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
安裝Nodejs
curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs
node --version //查看是否安裝成功,如果顯示Nodejs版本號則成功
安裝官方的Ghost工具ghost-cli
sudo npm install ghost-cli@latest -g
網站目錄准備,此目錄必須為空目錄
sudo mkdir -p /home/wwwroot/ghost
sudo chown <user>:<user> /home/wwwroot/ghost
sudo chmod 775 /home/wwwroot/ghost
安裝Ghost
cd /home/wwwroot/ghost
ghost install
如果安裝失敗或者連接斷開可以用
ghost setup
重試
啟動ghost
在安裝的過程中,ghost-cli會自動配置MySql和Nginx,但不知為何無論我怎么試,都會提示找不到Nginx,但后面可以自己配置Nginx
//官方工具是針對Ubuntu的,所以最后的啟動命令會報錯,使用下面的命令即可
sudo systemctl start ghost_localhost
//配置了nginx后可以需要重新啟動
sudo systemctl restart nginx
Nginx的反向代理配置
location / {
proxy_pass http://127.0.0.1:2368;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
需要指出的是 CentOS 7 的 SELinux,使用反向代理需要打開網絡訪問權限。
sudo setsebool httpd_can_network_connect 1