如何在 Cent OS 主机上安装 ghost 博客? 本文出处: http://blog.freedom.moe - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
echopan
V2EX    Node.js

如何在 Cent OS 主机上安装 ghost 博客? 本文出处: http://blog.freedom.moe

  •  1
     
  •   echopan 2014-12-06 13:12:57 +08:00 5621 次点击
    这是一个创建于 3974 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Cent-OS-nodejs-ghost
    ====================

    ######How to create the blog of ghost in Cent Operate System
    怎么在Cent OS等Linux系统上创建基于Nodejs的Ghost博客

    host文档还不完备,仍在继续完善中,每天可能都会有更新和改进。如果你遇到了难题或者有改进意见,请告诉我们。

    Ghost构建于Node.js平台之上,支持0.10.*版本(最新稳定版)的Node.js。

    在你的本地计算机上运行Ghost其实很简单,前提是你已经安装了Node.js。

    什么是Node.js?参考网站: http://nodejs.org/
    Node.js是构建快速、扩展性良好并且高效的web应用的开发平台。在过去的20年间,web从一堆静态页面进化为能够支持复杂web应用(例如Gmail和facebook)的平台。而Javascript这一编程语言是这一进程的推进剂。

    Node.js让我们具有了开发服务器端Javascript程序的能力。而在以前,Javascript只能在浏览器上运行,如果要开发服务器端的程序,就要使用PHP一类的编程语言了。如果能够用同一种开发语言来完成web应用的开发,这将是多么棒!并且,Node.js还赋予了前端开发工程师更大的能力。

    Node.js让这一切变为可能,其原理是对Google Chrome浏览器所用的Javascript引擎进行了包装,让它能够跨平台运行。也就是说,你能在自己的电脑上非常快速的安装Ghost并让它非常快捷、方便的跑起来。 接下来我们详细讲解如何在Mac、Windows或Linux上安装Ghost,另外还介绍了如何在服务器或托管空间上部署Ghost。

    #####起步
    如果你厌烦了手工安装Node.js和Ghost,可以试试BitNami团队开发的Ghost安装工具,它提供了对所有主流平台的支持。

    ######在 Linux 上安装
    安装 Node
    你可以通过从 http://nodejs.org 下载 .tar.gz 存档或者是通过包管理器安装。你可以根据 这篇文章 的说明来从包管理器安装 Node
    通过在终端窗口中输入 node -v 和 npm -v检查 Node 和 npm 是否安装成功
    安装并运行 Ghost
    登录到 http://ghost.org,然后点击蓝色的 ‘Download Ghost Source Code’ 按钮
    在下载页,点击下载最新的 zip 压缩文件然后将文件解压到你想运行 Ghost 的地方
    如果你以 guest 身份登陆的 linux 或者以 SSH 远程连接只有终端,那么:

    ####使用以下命令下载 Ghost 的最新版:

    $ curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
    使用以下命令解压存档:

    $ unzip -uo ghost.zip -d ghost
    在你解压好之后,打开一个终端:

    切换到刚才解压的 Ghost 文件夹目录下,可以复制到/home/wwwroot/xxx.com/下面。这是已经添加的虚拟主机(lnmp环境)

    $ cd /你的 Ghost 解压目录
    输入以下命令安装 Ghost :

    npm install production
    注意是两个

    ###在 npm 结束安装后,输入以下命令让 Ghost 以开发模式启动:

    $ npm start
    Ghost 将会运行在 127.0.0.1:2368
    你可以在 config.js 中修改IP地址和端口

    在浏览器中,访问 127.0.0.1:2368 即可查看最新搭建的 Ghost 博客

    访问 127.0.0.1:2368/ghost 并且设置管理员用户并登陆 Ghost 管理员

    #####让 Ghost 一直运行

    前面提到的启动 Ghost 使用 npm start 命令。这是一个在开发模式下启动和测试的不错的选择,但是通过这种命令行启动的方式有个缺点,即当你关闭终端窗口或者从 SSH 断开连接时,Ghost 就停止了。为了防止 Ghost 停止工作,有两种方式解决这个问题。

    Forever (https://npmjs.org/package/forever)
    你可以使用 forever 以后台任务运行 Ghost 。forever 将会按照 Ghost 的配置,当进程 crash 后重启 Ghost。

    通过 npm install forever -g 安装 forever
    为了让 forever 从 Ghost 安装目录运行,输入 NODE_ENV=production forever start index.js
    通过 forever stop index.js 停止 Ghost
    通过 forever list 检查 Ghost 当前是否正在运行

    ######配置 Ghost 域名

    如果你已经让 Ghost 一直运行了,你也可以设置一个代理服务器让你的博客可以使用域名访问。以下的示例假定你的操作系统是 centos,使用 Nginx 作为你的Web服务器,已经使用以上任意一种方法让 Ghost 在后台运行。

    安装 lnmp(参考 http://lmp.org/install.html)

    wget -c http://soft.vpser.net/lnmp/lnmp1.1-full.tar.gz && tar zxf lnmp1.1-full.tar.gz && cd lnmp1.1-full && ./centos.sh
    这个命令将会安装nginx并且设定好所有必需的目录和基础配置。

    配置你的站点

    在 /usr/local/nginx/conf/vhost 修改xxxx.com.conf 文件(指的是在/root/vhost.sh建立的虚拟机xxx.com.conf文件 参考http://lnmp.org/faq/lnmp-vhost-add-howto.html)
    使用文本编辑器或者SFTP打开这个文件 (/usr/local/nginx/conf/vhost/xxx.com.conf) 先去掉文本server_name example.com;下面的内容,
    保留server {
    listen 80;
    server_name example.com;

    接着把以下内容复制进这个文件:

    server {
    listen 80;
    server_name example.com;

    location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_pass http://127.0.0.1:2368;
    }
    }
    将 server_name 的值改为你的域名。

    #####用文本编辑器修改你的配置文件/home/wwwroot/xxx.com/config.js,查找production: { ,直接找到url,修改为url:’http://xxx.com’如下:

    cOnfig= {
    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
    url: ‘http://xxx.com’, //这是要修改的url
    mail: {},
    database: {
    client: ‘sqlite3′,
    connection: {
    filename: path.join(__dirname, ‘/content/data/ghost.db’)
    },
    debug: false
    },
    接着输入命令
    service nginx restart

    如果不行的话,请重启主机。接着在命令行输入cd /home/wwwroot/xxx.com/后在输入npm start再输入forever start index.js
    这样就完成了。
    #####想要添加Supervisor或者初始化脚本,请看下:
    Supervisor (http://supervisord.org/)
    流行的 Linux 发行版例如 Fedora, Debian 和 Ubuntu,都包含一个 Supervisor 包:一个进程控制系统,允许在启动的时候无需初始化脚本就能运行 Ghost。不像初始化脚本一样,Supervisor 可以移植到不同的发行版和版本。

    根据不同的 Linux 发行版 安装 Supervisor 。如下所示:
    Debian/Ubuntu: apt-get install supervisor
    Fedora: yum install supervisor
    其他大多数发行版: easy_install supervisor
    通过 service supervisor start 确保 Supervisor 运行
    为 Ghost 创建一个启动脚本。通常为 /etc/supervisor/conf.d/ghost.conf ,例如:

    [program:ghost]
    command = node /path/to/ghost/index.js
    directory = /path/to/ghost
    user = ghost
    autostart = true
    autorestart = true
    stdout_logfile = /var/log/supervisor/ghost.log
    stderr_logfile = /var/log/supervisor/ghost_err.log
    envirOnment= NODE_ENV=”production”
    使用 Supervisor 启动 Ghost:supervisorctl start ghost

    停止 Ghost: supervisorctl stop ghost
    详细内容请参阅 Supervisor 文档。

    初始化脚本
    Linux 系统在启动的时候会运行初始化脚本。这些脚本通常存在于 /etc/init.d 。为了让 Ghost 一直运行下去甚至自动重启,你可以设置一个初始化脚本来完成这个任务。以下的例子工作在 Ubuntu ,并且在 Ubuntu 12.04 下测试通过。

    使用以下命令创建 /etc/init.d/ghost 文件:

    $ sudo curl https://raw.github.com/TryGhost/Ghost-Config/master/init.d/ghost \
    -o /etc/init.d/ghost
    使用 nano /etc/init.d/ghost 命令打开文件并检查以下内容:

    将 GHOST_ROOT 变量的值更换为你的 Ghost 安装路径

    检查 DAEMON 变量的值是否和 which node 的输出值相同

    这个初始化脚本将在你的系统上以它自己的 Ghost 用户和用户组运行,使用以下命令来创建:

    $ sudo useradd -r ghost -U
    确保 Ghost 用户可以访问安装目录:

    $ sudo chown -R ghost:ghost /你的 Ghost 安装目录
    使用以下命令给这个初始化脚本加上可执行权限:

    $ sudo chmod 755 /etc/init.d/ghost
    现在你可以使用以下的命令来控制 Ghost :

    $ sudo service ghost start
    $ sudo service ghost stop
    $ sudo service ghost restart
    $ sudo service ghost status
    为了让 Ghost 能在系统启动时同时启动,我们必须要将刚刚创建的初始化脚本注册为为启动项。 执行以下两个命令:

    $ sudo update-rc.d ghost defaults
    $ sudo update-rc.d ghost enable
    为了保证你的用户可以更改 Ghost 目录里的文件和默认的 config.js ,需要将你加入 ghost 用户组中: $ sudo adduser 你的用户名 ghost

    如果你现在重启你的服务器,Ghost 应该会自动运行。

    使用 forever 和如何在 ubuntu 下建立 Ghost 守护进程的文档即将发布!
    麻烦捐助我一次》这是对我的犒劳

    参考文件出自: http://docs.ghostchina.com/zh/installation/deploy/
    35 条回复    2014-12-14 14:23:07 +08:00
    Dukec
        1
    Dukec  
       2014-12-06 13:20:37 +08:00
    你竟然也玩v2
    0x142857
        2
    0x142857  
       2014-12-06 13:25:44 +08:00   1
    V2EX 禁止全文转载 = =
    jimmy66
        3
    jimmy66  
       2014-12-06 13:26:27 +08:00
    @Dukec 这也是我想说的。。
    echopan
        4
    echopan  
    OP
       2014-12-06 13:54:55 +08:00
    @0x142857 我在此文中改了一些,之前是按照Ubuntu的方法,不一样
    echopan
        5
    echopan  
    OP
       2014-12-06 13:55:58 +08:00
    @Dukec 我只看看不说话,潜水很久了
    miyuki
        6
    miyuki  
       2014-12-06 14:59:41 +08:00 via Android
    :-) 你也混这里 握爪
    MeowCold
        7
    MeowCold  
       2014-12-06 15:00:20 +08:00
    使用AMH简单点
    MeowCold
        8
    MeowCold  
       2014-12-06 15:01:27 +08:00
    @echopan 是 Freedom吗?我寒喵
    echopan
        9
    echopan  
    OP
       2014-12-06 15:19:50 +08:00
    @miyuki 哈哈,我在这里潜水很久了,看着不说话
    echopan
        10
    echopan  
    OP
       2014-12-06 15:20:03 +08:00
    @MeowCold 是我啊
    hautbbs
       
    hautbbs  
       2014-12-06 15:21:28 +08:00
    VPS在debian,lmmp环境下安装好后可以实现 域名:2368访问,那接下来要怎么做才能把那个2386给去掉,实现通过域名直接访问?谢谢
    roychan
        12
    roychan  
       2014-12-06 15:29:05 +08:00
    @hautbbs 用 Nginx 代理 localhost:2368
    hautbbs
        13
    hautbbs  
       2014-12-06 15:44:13 +08:00
    @roychan 谢谢,我知道是这个意思,但是niginx不太懂啊,装个LNMP也是完全看着教程装好的,能不能详细讲一下,LNMP下要改哪里?谢谢了
    typcn
        14
    typcn  
       2014-12-06 15:48:45 +08:00 via iPad
    我自己也写了套blog
    roychan
        15
    roychan  
       2014-12-06 15:52:09 +08:00
    @hautbbs 上面的文章里有写。
    server {
    listen 80;
    server_name example.com;

    location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $http_host;
    proxy_pass http://127.0.0.1:2368;
    }
    }

    如果是最一般情况的话这段内容是在虚拟主机对应的 conf 文件里的,也就是在 /etc/nginx/sites-enabled 文件夹下。LNMP 如果我没记错的话是在 /usr/local/nginx 里面。修改完成以后 reload 一下 nginx,然后再按照上面教程里说的修改一下 Ghost 的产品地址,重启 ghost,就可以了。
    bitwing
        16
    bitwing  
       2014-12-06 15:52:20 +08:00
    @hautbbs 也可以直接在 config.js 中修改端口为 80,详细的修改参阅 http://support.ghost.org/config/
    hautbbs
        17
    hautbbs  
       2014-12-06 15:57:54 +08:00
    @bitwing 在LMPM下,80已经被nginx占用,所以不能直接改为80
    hautbbs
        18
    hautbbs  
       2014-12-06 16:00:37 +08:00
    @roychan 那这段代码是什么意思?是不是反向代理,如果是这样的话,在LNMP下都是已经设定好的,不应该再需要我们改什么了,我认为是不是只需要改个端口就可以了?但是在哪里改我还没找到
    hautbbs
        19
    hautbbs  
       2014-12-06 16:08:39 +08:00
    @roychan 这句 proxy_pass http://127.0.0.1:2368 ,是要直接这样改还是改成我自己VPS的IP:2368 ?
    roychan
        20
    roychan  
       2014-12-06 16:56:29 +08:00
    @hautbbs 127.0.0.1 == localhost
    lingoys
        21
    lingoys  
       2014-12-06 17:32:55 +08:00
    乃居然也在这...
    zieglar
        22
    zieglar  
       2014-12-06 18:01:10 +08:00
    都已经 Centos 了,还装 lnmp。。。还vhost,看起就烦
    MinonHeart
        23
    MinonHeart  
       2014-12-06 18:46:18 +08:00 via Android
    你也玩
    zgoing
        24
    zgoing  
       2014-12-06 21:53:33 +08:00 via iPad
    ghost还不完善,和wordpress比欠缺的功能很多,建议观望观望它的成长,毕竟它将来是要代替Wordpress的
    fyhqy
        25
    fyhqy  
       2014-12-06 22:07:26 +08:00
    @roychan
    @echopan 你们2都在群里。。。
    roychan
        26
    roychan  
       2014-12-06 22:09:37 +08:00
    @fyhqy 啥群(不是枫叶主机吧= =)
    fyhqy
        27
    fyhqy  
       2014-12-06 22:20:37 +08:00
    @roychan 对的。我记得好像群里有你
    roychan
        28
    roychan  
       2014-12-06 22:23:48 +08:00
    @fyhqy 记性好啊,我现在还保有一台枫叶主机。不过好像不在群里了…
    fyhqy
        29
    fyhqy  
       2014-12-06 22:25:54 +08:00
    @roychan 因为前段时间有个群解散了。新群很多人都没加进来。
    roychan
        30
    roychan  
       2014-12-06 22:31:45 +08:00
    @fyhqy 群号可否给下…
    fyhqy
        31
    fyhqy  
       2014-12-06 22:44:19 +08:00
    @roychan 318135341
    echopan
        32
    echopan  
    OP
       2014-12-07 13:30:20 +08:00
    @Dukec 有时间叫上我做内测
    9yu
        33
    9yu  
       2014-12-07 22:38:28 +08:00
    你竟然也玩v2
    zhfsxtx
        34
    zhfsxtx  
       2014-12-12 22:18:15 +08:00
    mark
    tcdw
        35
    tcdw  
       2014-12-14 14:23:07 +08:00
    好评
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     903 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 20:32 PVG 04:32 LAX 13:32 JFK 16:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86