创建博客是一项激动人心的冒险,而Ghost是一个专注于简单性、速度和灵活性的强大平台。您可以选择直接在它们的 网站 上构建博客,他们将每月收取少量费用,或者在自托管实例上 安装它,这是免费的!

在接下来的部分中,我将逐步介绍这个过程,并讨论我在Debian上设置Ghost时遇到的问题:

官方安装指南请参阅:https://ghost.org/docs/install/ubuntu/

1. Apache配置

你可以复制已有的其它站点的Apache配置并进行修改,也可以直接创建一个新的空文件。我将使用vim来进行操作。

vim /etc/apache2/sites-available/ghost.conf

使用新的域名(注意把 dev.2volt.cc 替换为你自己的域名)更新文件并添加一些代理配置。

<VirtualHost *:80>
    ServerName dev.2volt.cc
    DocumentRoot /var/www/html/ghost

    ProxyPreserveHost On

    RewriteEngine On
    Redirect permanent / https://dev.2volt.cc/
    ErrorLog ${APACHE_LOG_DIR}/dev_error.log
    CustomLog ${APACHE_LOG_DIR}/dev_access.log combined
</VirtualHost>

<VirtualHost *:443>
    ServerName dev.2volt.cc
    DocumentRoot /var/www/html/ghost

    ProxyPreserveHost On
    ProxyPass / http://localhost:2368/
    ProxyPassReverse / http://localhost:2368/

    ErrorLog ${APACHE_LOG_DIR}/ghost_error.log
    CustomLog ${APACHE_LOG_DIR}/ghost_access.log combined
</VirtualHost>

更新配置后,将站点添加到Apache:

a2ensite ghost
systemctl restart apache2

要设置SSL,请使用以下命令;它将为您更新Apache配置文件:

sudo certbot --apache --domains dev.2volt.cc

2. 配置数据库

如果你和我一样使用的是MariaDB,请按照以下步骤操作:

sudo mysql -u root -p
MariaDB [(none)]> CREATE USER 'xx'@localhost IDENTIFIED BY 'ur_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

3. 安装Ghost

将目录的所有者设置为运行apache2的用户,通常是 www-data

cd  /var/www/html/
sudo mkdir -p ghost
sudo chown www-data:www-data ghost
sudo chmod 775 ghost
cd ghost
ghost install

Ghost安装过程将从您那里收集有关站点的信息:

  • 博客网址:https://dev.2volt.cc/
  • MySQL主机名:127.0.0.1
  • MySQL用户名/密码:xx,ur_password
  • 数据库表:ghost

跳过设置NGINX和SSL的部分。同时,记得设置防火墙:

sudo ufw allow 2368

现在,您应该能够打开 https://dev.2volt.cc/ 并查看站点。

4. 我遇到的问题

如果无法看到站点,就像我经历的那样,可以按照以下方式进行故障排除:

  • 如果站点自动重定向到 localhost:2368,请检查配置文件中的端口:
cat config.production.json

预期端口应为2368,但可能为2369。这种现象可能是以为安装了多次。

  • 如果出现500错误或连接失败,请检查日志:
cat /var/log/apache2/ghost_error.log

在某些情况下,这是由于无法连接到数据库。由于Node 18将使用IPv6而不是IPv4,如果将配置文件里的数据库的主机设置为localhost,你就会看到以下错误:

 Connect ECONNREFUSED ::1:3306

一个简单的解决办法是将其指定为 127.0.0.1


Blog Comments powered by Disqus.