什么是wp-calypso呢?看这里:wpcalypso - 古腾堡
简单讲这是一个致力于让wordpress后台变得更轻、快、好的前端应用。
在本地安装wp-calypso时我遇到了各种各样的坑,特此记录。

服务器环境

Node

虽然官方使用的node版本是v8.9.3,但是我们把它更新到最新版,截至此时最新版是v8.9.4。使用nvm管理器来对node进行版本管理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 切换到安装目录
cd ~
# 下载nvm最新版
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
or
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
# 安装
source ~/.bashrc
# 列出所有可用的node
nvm ls -remote
# 下载指定的node
nvm install v8.9.4
# 设置系统默认的node
nvm alisa default v8.9.4
# 查看当前node
node -v
# 也可以直接下载LTS版node
nvm install lts/carbon

gcc

如果你使用centos6.9及以下版本,那么默认gcc版本在v4.4.7以下,包括v4.4.7,现在升级到最新版,截止此时最新版是v7.3.0.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 切换到安装的目录
cd ~
# 下载最新版gcc(截止目前为v7.3.0)
wget ftp://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
tar zxf gcc-7.3.0.tar.gz
cd gcc-7.3.0
# 下载所需依赖包
./contrib/download_prerequisites
# 创建编译后文件存放目录(gcc-build-7.3.0)
mkdir gcc-build-7.3.0
cd gcc-build-7.3.0
# 编译更新
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
make install
# 重启虚拟机
reboot
# 查看安装的gcc
gcc- v

npm start曲折

执行npm start后可能会有错误发生,如:

‘GLIBCXX_3.4.21’not found

这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决,如下操作:

1
2
3
4
5
6
7
8
9
10
11
# 执行以下命令,查找编译gcc时生成的最新动态库:
find / -name "libstdc++.so*"
# 将输出的最新动态库libstdc++.so.6.0.24复制到/usr/lib64目录下:
cp /home/gcc-7.3.0/gcc-temp/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.24 /usr/lib64
# 重建默认库的软连接
cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.24 libstdc++.so.6
# 重新运行以下命令检查动态库,出现(GLIBCXX_3.4.24)即替换成功
strings /usr/lib64/libstdc++.so.6 | grep GLIBC

Hosts

这里是由于个人原因导致的,因为我是在公司的虚拟机上运行的wp-calypso项目,所以需要对hosts文件做一些手脚:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 修改本地hosts文件,新增行(172.22.11.123为目标虚拟机IP):
172.22.11.123 dev.calypso.com
# 修改虚拟机hosts文件(vi /etc/hosts)
127.0.0.1 calypso.localhost
# 修改nginx配置文件
# the IP(s) on which your node server is running. I chose port 4000.
upstream dev.calypso.com {
server calypso.localhost:3000;
keepalive 1;
}
server
{
listen 80;
#listen [::]:80;
server_name dev.calypso.com;

location / {
proxy_pass http://dev.calypso.com;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

access_log /home/wwwlogs/dev.calypso.com.log;
}
# 本地浏览器打开dev.calypso.com即可

至此,安装完成了。