DoraCMS 2.0 开源有一段时间了,一直没有时间去写点辅助部署的文档,这里就详细介绍下在生产环境如何部署DoraCMS。

我这里为了方便使用虚拟机来模拟线上环境,使用的是ubuntu-14.04.1-desktop,当然服务器最好是选用非desk比较好,不过步骤完全一样。

1、安装nodejs。

① 推荐先做系统更新

# apt-get update

② Node.js 仅需要你的服务器上有一些基本系统和软件功能,比如 'make'、'gcc'和'wget' 之类的。如果你还没有安装它们,运行如下命令安装:

# apt-get install python gcc make g++ wget

③ 创建文件夹,在服务器上找个合适位置创建两个文件夹 soft, webapp。

④ 访问链接 Node JS Download Page 下载源代码.

复制其中的最新的源代码的链接,进入刚才创建的soft目录下然后用wget 下载,命令如下:

# wget https://nodejs.org/download/rc/v9.0.0-rc.0/node-v9.0.0-rc.0.tar.gz

下载完成后解压:

tar -zxvf node-v9.0.0-rc.0.tar.gz

⑤ 安装 Node JS v9.0.0

现在可以开始使用下载好的源代码编译 Node.js。在开始编译前,你需要在 ubuntu server 上切换到源代码解压缩后的目录,运行 configure 脚本来配置源代码。

./configure

现在运行命令 'make install' 编译安装 Node.js:

make install

make 命令会花费十几分钟完成编译,安静的等待一会................. 漫长的等待过后(大概10分钟),编译结束,我们验证一下是否安装成功:


2、安装mongodb

① 去http://www.mongodb.org/downloads  找最新版的链接,切换到soft目录下执行

#wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.2.0.tgz

② 解压缩到 /usr/local/mongodb/ 目录下 (需要提前在 local 目录下创建 mongodb 文件夹)

tar zxvf mongodb-linux-x86_64-ubuntu1404-3.2.0.tgz
mv mongodb-linux-x86_64-ubuntu1404-3.2.0 /usr/local/mongodb

③ 在/usr/local/mongodb/目录下建立文件夹data、log


#mkdir data
#mkdir log

④ 在/usr/local/mongodb/目录下创建配置文件mongodb.conf

dbpath=/usr/local/mongodb/data/  #数据存放路径

logpath=/usr/local/mongodb/log/mongodb.log #日志存放路径

#auth=true

⑤ 启动mongodb
(注意此时不需要auth启动

./mongod --config /usr/local/mongodb/mongodb.conf

⑥ mongodb启动后,新增一个 terminal,进入soft目录下,下载DoraCMS基础数据

doracms2.1.zip,并解压: 

⑦进入mongodb的bin目录下执行数据导入:

# cd /usr/local/mongodb/mongodb-linux-x86_64-ubuntu1404-3.2.0/bin
mongorestore -h 127.0.0.1:27017 -d doracms2 --drop /home/xiaoshen746/Documents/soft/data

导入成功后是这样的:

⑧ 创建数据库管理员

还是在mongodb bin 目录,下执行下面的语句:

./mongo
...
use admin

添加管理员

db.createUser({user: "doracms",pwd: "doracms",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

添加doracms

db.createUser( { user: "doramart", pwd: "doramart", roles: [ { role: "readWrite", db: "doracms2" }, ] } )

添加完成后,我们可以通过 db.auth 的方式校验是否添加正确。

⑨ 修改mongdb.conf , 将 auth=true 注释打开,把之前启动的mongdb挂掉,使用进程守护的方式重新启动数据库。

启动mongodb:

./mongod --config /usr/local/mongodb/mongodb.conf --smallfiles &


3、部署代码

① 安装git

#apt-get install git

② 在 github 上 fork DoraCMS 到自己的仓库 , 在你的本地PC,clone下代码,进入代码根目录,安装依赖

npm install

安装完成后,执行 npm run build 打包生产代码。打包完成后 push 到自己的仓库中。

PS:这一步的主要目的是在本地打好生产包,后续再服务器上运行。

③ 我们现在回到服务器,进入到之前创建的 webapp 目录,git 自己提交的代码

#git clone https://github.com/username/DoraCMS

完成后,进入 DoraCMS 代码根目录,执行npm install 在服务器上安装依赖(使用cnpm更快)

④ 修改 settings.js 中的数据库配置


4、修改环境变量,设置 NODE_ENV=production

# vim /etc/profile

查看是否生效:


5、全局安装pm2

# npm install pm2 -g


6、启动程序

至此我们的准备工作已经就绪,可以启动程序了,以上的步骤都非常重要,不能遗漏。

① pm2 启动服务

pm2 start server.js --name doracms

② 访问首页,可以看到服务起来了(你可以通过自己服务器ip加端口号形式访问)

 

③ 访问后台,修改系统配置。

我们通过(http://localhost:8080/dr-admin)访问后台,登录信息 doramart/123456 . doramart用户具有超级管理员权限。进入后台之后,必须修改匹配的站点信息


至此,部署已经基本完成。写的比较多,基本上讲清楚了整个部署流程,我自己都觉得有点啰嗦,希望都帮到大家。