我们主要修改 /etc/nginx/conf.d/default.conf,我最终的配置如下,见注释。
server { listen 80; #你的域名 server_name linuxidc.com; #访问日志地址 access_log /var/log/nginx/log/host.access.log main; #后续Wordpress原有数据导入章节会详细说明 location /wp-content/ { root /var/www/content/images; } #下面几个location都是让nginx直接serve静态文件 location ~ ^/(img/|css/|lib/|vendor/|fonts/|robots.txt|humans.txt) { root /var/www/core/client/assets; access_log off; expires max; } location ~ ^/(shared/|built/) { root /var/www/core; access_log off; expires max; } location ~ ^/(favicon.ico) { root /var/www/core/shared; access_log off; expires max; } location ~ ^/(content/images/) { root /var/www; access_log off; expires max; } #后续Wordpress原有数据导入会详细讲解 rewrite ^/(d+)/(d+)/(.*)$ http://linuxidc.com/$3 permanent; #核心block,将请求proxy到Ghost实例上 #其中端口可以在Ghost的config.js中修改,但要保持一致 location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } }修改完配置后执行service nginx restart,如果没有报错说明配置是没有问题的。
配置Ghost做了这么多的铺垫工作,终于要开始配置 Ghost 了。打开 /var/www/config.js(如果不存在该文件,则先执行mv config-sample.js config.js将默认的配置文件重命名)。
打开config.js后,直接修改production模块。
... production: { url: 'http://linuxidc.com', //替换为你自己的域名。 mail: {}, database: { client: 'mysql', connection: { host : '127.0.0.1', user : 'ghost', //上面配置过 password : 'ghost对应的密码', //上面配置过 database : 'ghost', //我们前面为 Ghost 创建的数据库名称 charset : 'utf8' } }, server: { host: '127.0.0.1', port: '2368'//若修改该端口记得在nginx中做相应改变 } }, ...配置完成后,使用npm安装所有的依赖。
npm install --production关于为什么加上 --production 这个flag,Ghost 官网给出了解释。虽然我们现在直接在编辑Ghost的源码,看起来像是在develop,但实际上如果你不加--production,npm安装依赖时会安装一堆开发Ghost核心时才需要的文件,这些文件在运行Ghost的时候是不需要的。
安装完所有的依赖,可以运行 Ghost 的了。如果我们直接执行 node index.js,当你的ssh 断开后 node 也会停止运行,所以我们需要另一个模块forever,让我们的 node 程序一直执行。
npm install forever -g安装完 forever 后,再执行下面的命令启动 Ghost:
NODE_ENV=production forever start index.js如果不出意外,输入你的域名就能看到 Ghost 的界面了。当然,一般都是会出现意外的,这个时候建议你查看如下内容:
nginx 错误日志,/var/log/nginx/error.log
Ghost 代码所在目录的权限
Ghost 的配置是否正确
数据库能否正常连接
WordPress原有数据导入对于从 WordPress 转过来的人,一般会遇到两个问题:
原有博文数据的导入
原有附件(图片)的导入
原链接到新链接的跳转
下面分享一下我的解决方案。
博文数据导入对于Wordpress数据导入到Ghost,你可以安装一款 WordPress 插件 Ghost,然后在后台工具一栏导出 Ghost 支持的数据格式。
注意:目前支持导出的内容包括标题、作者、日期、内容、链接(permalink,slug)、标签,不支持其它的 postmeta。