在CyberPanel的系统环境中安装Ghost博客网站

开始之前:之前是用Cyberpanel内置的Docker 安装的Ghost博客网站,但是这次使用了新版本的Cyberpanel后发现失效了(也许在哪里需要重新设定下,或者是Cyberpanel的临时问题),想要通过其他方式安装Ghost,查过网上的资料后,才知道没这么简单,原因如下,在 Ghost 安装期间,Ghost CLI 会检查它是否具有对将安装 Ghost 博客的目录及其所有父目录拥有读写权限。但是 /home 目录中的所有内容(您的网站通常所安装的位置)都被锁定了,这个是用于防止多个网站间相互干扰的,但这也意味着无法通过 Ghost CLI 的检查,安装也会失败。

因此,这次将在 /home 目录之外的另一个/var/www 下创建一个新目录,供 Ghost 博客使用。

一.Ghost安装前的准备工作 

在 /var/www 目录下,把目录名称设置成与 CyberPanel 中的域名一样,这样可以清楚地知道 这个目录的文件是属于哪个网站:

mkdir /var/www/blog.example.org

现在输入下列命令,列出 CyberPanel 站点建立的网站目录内容: 

ls -al /home/blog.example.org

这里会显示为这个网站创建的CyberPanel用户 (例如 cloud1234),从这里开始将其称为 Ghost 用户:

drwx--x--x  4 cloud1234 bloge1234 4096 Jul 26 02:17 .
drwx--x--x 21 root      root      4096 Jul 26 02:17 ..
drwxr-x---  2 root      nogroup   4096 Jul 26 02:17 logs
drwxr-x---  2 cloud1234 nogroup   4096 Jul 26 02:17 public_html

对我们刚刚创建的/var/www/下的blog.example.org目录,授予 Ghost 用户读取和写入权限:

chown cloud1234:cloud1234 /var/www/blog.example.org
chmod 775 /var/www/blog.example.org

现在为 Ghost 用户设置密码,根据提示自己设置密码:

passwd cloud1234

将 Ghost 用户添加到 sudo 组(Ghost 工作所必需的):

adduser cloud1234 sudo

然后,就要切换到Ghost用户:

su - cloud1234

最后,进入我们将安装 Ghost 博客的目录。请注意,我们正在进入 /var/www下的目录 而不是 /home:

cd /var/www/blog.example.org

二.现在开始正式安装Ghost

用Ghost CLI安装 Ghost

ghost install --no-stack --no-setup-nginx --no-setup-ssl --db=sqlite3
  • –no-stack: Avoid checking if server meets requirements.
  • –no-setup-nginx: Don’t set up nginx; we’re using OpenLiteSpeed.
  • –no-setup-ssl: Don’t set up SSL; we’re using CyberPanel.
  • –db=sqlite3: use sqlite
  • --port 2368: 默认不需要输入,如果需要其他端口输入其他的

参考 learn more about the Ghost CLI and its options

💡

这里输入之前为cloud1234设置的密码:

? Sudo Password [hidden]

要在服务器重启后自动启动 Ghost,请选择 Y 以设置 systemd:

? Do you wish to set up Systemd? Yes

最后,选择 Y 立即启动 Ghost 博客:

? Do you want to start Ghost? Yes

三.为Ghost配置virtual host

到 Websites > List Domains> blog.example.org > Manage 找到 vHost Conf .

把里面的东西清除后添加以下内容,注意里面红色标记是需要做相应修改的。绿色标记的另外用途。

docRoot                   $VH_ROOT/public_html
vhDomain                  $VH_NAME
adminEmails               you@example.org
enableGzip                1
enableIpGeo               1

errorlog $VH_ROOT/logs/$VH_NAME.error_log {
  useServer               0
  logLevel                WARN
  rollingSize             10M
}

accesslog $VH_ROOT/logs/$VH_NAME.access_log {
  useServer               0
  logFormat               "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
  logHeaders              5
  rollingSize             10M
  keepDays                10
  compressArchive         1
}

extprocessor ghost {
  type                    proxy
  address                 localhost:2368
  maxConns                100
  pcKeepAliveTimeout      60
  initTimeout             60
  retryTimeout            0
  respBuffer              0
}

context /.well-known/acme-challenge {
  location                /usr/local/lsws/Example/html/.well-known/acme-challenge
  allowBrowse             1
}

context / {
  type                    proxy
  handler                 ghost
  addDefaultCharset       off
}

vhssl  {
  keyFile                 /etc/letsencrypt/live/blog.example.org/privkey.pem
  certFile                /etc/letsencrypt/live/blog.example.org/fullchain.pem
  certChain               1
  enableECDHE             1
  renegProtection         1
  sslSessionCache         1
  enableSpdy              15
  enableStapling          1
  ocspRespMaxAge          86400
}

module cache {
  storagePath /usr/local/lsws/cachedata/$VH_NAME
}

四.完工,查看你的Ghost博客

好了,你现在可以进入Ghost了,https://blog.example.org/ghost.

Leave a Reply

Your email address will not be published. Required fields are marked *