VPS搭建个人博客/相册教程03_zing-gallery个人相册配置

zing-gallery是github上一个基于node.js开源的web相册,完美适配了移动设备。


1、clone zing-gallery到本地,修改远程仓库地址为自己的服务器上gallery仓库地址,push代码

1
2
3
4
5
6
7
1. # git clone https://github.com/litten/zing-gallery.git
2. # git remote rm origin
3. # git remote add origin git@xx.xx.xx.xx:repo/gallery.git # 修改远程仓库地址为自己服务器上创建的git仓库
4. # git remote -v # 查看远程仓库地址
5. # git add .
6. # git commit
7. # git push

2、在linux上安装npm依赖

2.1 ssh登录到vps

2.2 cd 到gellery远程代码仓库目录下

2.3 安装依赖

1
npm install

2.4 开启node服务

1
npm run start

node会默认开启一个端口为3000的服务,端口号可以在app.js文件中修改。在浏览器中通过域名+端口访问相册页面。

2.5 常见错误

npm install 和npm run start的时候经常报错,整理了这个过程中遇到的一些异常处理。

  • 端口被占用

    1
    2
    3
    4
    # 找出所有node应用
    ps -ax | grep node
    # kill node进程
    sudo kill 端口号
  • images库下载失败

    1
    npm rebuild images --force
  • libc.so.6: version GLIBC_2.14 not found

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    1.查看系统版本和glibc库版本
    # cat /etc/redhat-release 
    CentOS release 6.9 (Final)

    # strings /lib64/libc.so.6 |grep GLIBC_
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_PRIVATE

    发现CentOS6.9最高支持glibc的版本为2.12。

    2.升级glibc
    # wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz 
    # wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz 
    # tar -xvf  glibc-2.14.tar.gz 
    # tar -xvf  glibc-ports-2.14.tar.gz
    # mv glibc-ports-2.14 glibc-2.14/ports
    # mkdir glibc-build-2.14
    # cd glibc-build-2.14/ 
    # ../glibc-2.14/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
    # make
    # make install 

    3.安装完成,查看/lib64/libc.so.6软连接
    # ll /lib64/libc.so.6 
    /lib64/libc.so.6 -> /lib64/libc-2.14.so

    4.查看glibc支持的版本
    # strings /lib64/libc.so.6 |grep GLIBC_
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_2.13
    GLIBC_2.14
    GLIBC_PRIVAT

3、修改nginx配置,设置反向代理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server
{
listen 80;
#listen [::]:80;
server_name ruidada.info ;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/blog;
charset utf-8;
location /gallery/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}

access_log /home/wwwlogs/ruidada.info.log;
}

至此配置好反向代理之后。重启nginx服务。这个时候,就可以在浏览器中通过域名+/gallery/访问相册页面了。

4、用supervisor开启管理相册进程

由于相册服务需要你在每次服务器重启之后手动执行一下npm run start命令去开启node进程,有时该node进程被杀死,相册服务都无法开启了。这样为了方便在服务器重启或者该相册进程被kill之后能够自动重新开启,恢复正常的相册服务功能。所以需要使用到supervisor这个自动管理进程工具,且supervisor依赖于python环境。 查看python版本,如果没有安装python,可以在https://www.python.org/downloads/source/网站下载对应的python版本,解压安装即可。

4.1 安装supervisor

1
2
3
4
5
6
7
8
9
10
11
12
13
1. # python -V 
2. # wget https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz
3. # tar zxf supervisor-3.3.1.tar.gz
4. # cd supervisor-3.3.1
5. # python setup.py install
5.1 如果报错:Couldn't find index page for 'meld3' (maybe misspelled?)....
1. # wget https://pypi.python.org/packages/3e/ab/9615164b2a4a935e34a62646e9106445e9895464079c13c1ac1200dd88c8/meld3-0.6.7.tar.gz#md5=53e589482029ee84ffac9362db71eabe
2. # tar -zxvf meld3-0.6.7.tar.gz
3. # cd meld3-0.6.7
4. # python setup.py install
running install_egg_info
Writing /usr/lib/python2.6/site-packages/meld3-0.6.7-py2.6.egg-info
5.2 Finished processing dependencies for supervisor==3.3.1...

4.2 supervisor相关命令介绍:

  • supervisortd:守护进程服务(用于接收进程管理命令)
  • supervisorctl:客户端(用于和守护进程通信,发送管理进程的指令)
    • supervisord : 启动supervisor
    • supervisorctl reload :修改完配置文件后重新启动supervisor
    • supervisorctl status :查看supervisor监管的进程状态
    • supervisorctl start 进程名 :启动XXX进程
    • supervisorctl stop 进程名 :停止XXX进程
    • supervisorctl stop all:停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
    • supervisorctl update:根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重
  • echo_supervisord_conf:生成初始配置文件

4.3 配置

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
1.生成配置文件
# mkdir /etc/supervisor // 新建一个文件夹
# echo_supervisord_conf > /etc/supervisor/supervisord.conf
2.启动
# supervisord -c /etc/supervisor/supervisord.conf
3.查看 supervisord 是否在运行:
# ps aux | grep supervisord
4.打开配置文件
# vim /etc/supervisor/supervisord.conf
在配置文件底部,配置include
[include]
files = /etc/supervisor/conf.d/*.conf
5.新建一个gallery进程配置
# mkdir conf.d
# cd /etc/supervisor/conf.d
# vim gallery.conf
添加如下代码:
[program:gallery] ;进程名,对应supervisor客户端supervisorctl中对进
程管理的名字
command=npm run start ;启动命令
autostart=true ;supervisord启动的时候启动
directory=/home/wwwroot/gallery ;进程的启动目录
autorestart=true ;进程异常退出后自动重启
startsecs=10 ;进程启动多少秒之后,此时状态如果是running,则认
为启动成功
startretries=5 ;最大启动重试次数

4.4 重启配置

1
supervisorctl reload

至此相册配置已经完成,在浏览器中通过域名+/gallery/,就可以打开你的相册页面啦。

关于图片如何配置上传。参考zing-gallery的readme文件。

上传图片之后,使用git push到自己的服务器上。就可以实现图片动态上传更新了。

把自己的旅行的风景照片,生活中有趣的照片分享出去。

Rui,<br>.....。