CentOS 5.5 下安装Countly Web Server过程记录

来源:互联网 发布:识别电影的软件 编辑:程序博客网 时间:2024/06/05 10:37

CentOS 5.5 下安装Countly Web Server过程记录

1. 系统更新与中文语言包安装

2. 基本环境配置:

2.1. NodeJS安装

  1. 依赖项安装

    yum -y install gcc gcc-c++ openssl-devel
  2. 下载并解压安装 nodejs

    cd /optwget –c http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gztar zxvf node-v0.12.4.tar.gzcd node-v0.12.4./configure --prefix=/usr/local/nodejsmake && make install

    注意此时会有错误输出信息:

    ./configure  File "./configure", line 442fpu = 'vfpv3' if armv7 else 'vfpv2'^ SyntaxError: invalid syntax

    这是因为Python当前版本 2.4.3 不够,需要升级Python

  3. 升级Python:

    cd /optwget -c http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2tar jxvf Python-2.7.3.tar.bz2cd Python-2.7.3./configuremake && make install

    正常情况下即使python2.7安装成功后,系统默认指向的python仍然是2.4.3版本,考虑到yum是基于python2.4.3才能正常工作,不敢轻易卸载。
    解决方法:

    • 建立软连接

      mv /usr/bin/python /usr/bin/python.bakln -s /usr/local/bin/python2.7 /usr/bin/python
    • 使yum配置指向特定版本python2.4

      vi /usr/bin/yum

    将第一行显示的#/usr/bin/python修改为#/usr/bin/python2.4
    保存修改:wq

  4. 继续上面的步骤重新安装NodeJS:

    cd /opt/node-v0.12.4./configure --prefix=/usr/local/nodejsmake && make install

    注意,又有新的错误:

    ImportError: No module named bz2make[1]: *** [/opt/node-v0.12.4/out/Release/obj/gen/libraries.cc] 错误 1make[1]: Leaving directory '/opt/node-v0.12.4/out'make: *** [node] 错误 2

    这个错误是由于python中没有装bz2的库导致的

  5. 继续安装bz2

    yum install -y bzip2*cd /opt/Python-2.7.2/Modules/zlib./configuremake && make install

    重新安装python

    cd /opt/Python-2.7.2/python2.7 setup.py install
  6. 继续上面的步骤重新安装NodeJS:

    cd /opt/node-v0.12.4./configure --prefix=/usr/local/nodejsmake && make install

    这次应该可以安装成功了

  7. 配置NodeJS环境变量

    • 进入profile编辑环境变量
      vim /etc/profile

    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的【上面】添加如下内容:

    #set for nodejsexport NODE_HOME=/usr/local/nodejsexport PATH=$NODE_HOME/bin:$PATH

    :wq保存并退出,编译/etc/profile 使配置生效

    source /etc/profile

    输入测试:

    node -v

    得到版本号v0.12.4

2.2 Ngnix安装

  1. 在安装nginx前,需要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel 和libevent

    yum install pcre-devel  libevent  opensslyum -y install zlib zlib-devel  pcre
  2. 下载、解压安装Nginx

    wget -c http://nginx.org/download/nginx-1.8.0.tar.gztar –zxv –f nginx-1.8.0.tar.gzcd nginx-1.8.0./configure --prefix=/usr/local/nginxmake && make install
  3. 测试nginx
    开启:

    /usr/local/nginx/sbin/nginx

    测试http访问

    curl localhost

    得到以下输出信息表示成功安装并开启nginx

    <!DOCTYPE html><html><head><title>Welcome to nginx!</title><style>  body {      width: 35em;      margin: 0 auto;      font-family: Tahoma, Verdana, Arial, sans-serif;  }</style></head><body><h1>Welcome to nginx!</h1><p>If you see this page, the nginx web server is successfully installed andworking. Further configuration is required.</p><p>For online documentation and support please refer to<a href="http://nginx.org/">nginx.org</a>.<br/>Commercial support is available at<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p></body></html></pre>

3. 安装Countly Web Server

  1. 下载到/opt,并解压

    cd /optwget –c https://github.com/Countly/countly-server/archive/master.zipunzip countly-server-master.zipmv ./countly-server-master ./countly
  2. 复制countly web配置文件,并修改配置

    cd /opt/countly/frontend/express/cp config.sample.js  config.jsvi config.js

    mongodb服务器地址host修改为192.168.8.16,保存并退出
    :wq

  3. 复制api配置文件,并修改mongodb host

    cd ../../api/cp config.sample.js  config.jsvi config.js

    mongodb服务器地址host修改为192.168.8.16,保存并退出
    :wq

  4. 复制 countly.config.js

    cd /opt/countly/frontend/express/public/javascripts/countly/cp countly.config.sample.js  countly.config.js
  5. 此时如果执行node /opt/countly/api/api.js node会报错误,没有time 组件,需要安装time组件
    使用淘宝提供的源进行安装

    npm --registry http://registry.cnpmjs.org/ install time

    这个时间比较长,会进行node-gyp rebuild,安装完成后,就可以测试node /opt/countly/api/api.jsnode /opt/countly/frontend/express/app.js

4. 配置服务自启动

4.1 安装supervisor 进程管理,设置自启动

  1. 下载并安装supervisor

    cd /opt && wget -c --no-check-certificate https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.1.tar.gztar zxvf supervisor-3.1.1.tar.gzcd supervisor-3.1.1python setup.py install

    如果出现错误:

    Traceback (most recent call last):File "setup.py", line 32, in <module>  from setuptools import setup, find_packagesImportError: No module named setuptools
  2. 下载安装python组件:setuptools17.0

    unzip setuptools-17.0.zipcd setuptools-17.0python setup.py install
  3. 继续用python安装 supervisor

    cd /opt/supervisor-3.1.1python setup.py install
  4. 编辑countly-supervisor.conf
    bash
    vi /opt/countly/bin/config/supervisord.conf

    %(here)s/../..%(here)s 替换为/opt/countly,保存修改:wq
  5. 配置supervisor文件
    bash
    echo_supervisord_conf > /etc/supervisord.conf
    vi /etc/supervisord.conf

    将最后两行取消注释,改为:

    [include]
    files = /opt/countly/bin/config/supervisord.conf

    保存 :wq
  6. 配置supervisor 自启动

    vi /etc/init.d/supervisor

    添加加入代码:

    #!/bin/bash# supervisor Startup script for the Countly HTTP Server# it is v.0.0.2 version.# chkconfig: - 85 15# description: Countly# processname: supervisor# pidfile: /var/run/supervisor.pid# config: /etc/supervisord.confsupervisordd=/usr/local/bin/supervisordsupervisor_config=/etc/supervisord.confsupervisor_pid=/var/run/supervisor.pidRETVAL=0prog="supervisor"# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0[ -x $supervisordd ] || exit 0# Start supervisor daemons functions.start() {PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/nodejs/binif [ -e $supervisor_pid ];then echo "supervisor already running...." exit 1fi echo  $"Starting $prog with conf:$supervisor_config"daemon $supervisordd --configuration ${supervisor_config} RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/supervisor return $RETVAL}# Stop supervisor daemons functions.stop() {      echo -n $"Stopping $prog: "      killproc $supervisordd      RETVAL=$?      echo      [ $RETVAL = 0 ] && rm -f /var/lock/subsys/supervisor /var/run/supervisor.pid}# reload supervisor service functions.reload() {PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/nodejs/bin  echo -n $"Reloading $prog: "  #kill -HUP `cat ${supervisor_pid}`  killproc $supervisordd -HUP  RETVAL=$?  echo}# See how we were called.case "$1" instart)      start      ;;stop)      stop      ;;reload)      reload      ;;restart)      stop      start      ;;status)      status $prog      RETVAL=$?      ;;*)      echo $"Usage: $prog {start|stop|restart|reload|status|help}"      exit 1esacexit $RETVAL

    保存修改 :wq
    设置文件属性为可执行

    chmod a+x /etc/init.d/supervisor

    测试:

    service supervisor start

    可以看到:

    Starting supervisor with conf:/etc/supervisord.conf                                                         [确定]
  7. 添加到开机启动项中:
    bash
    vi /etc/rc.local

    加入:
    bahs
    /etc/init.d/supervisor start

    保存 :wq

4.2 配置Nginx自启动

  1. 添加nginx脚本

    vi /etc/init.d/nginx

    加入下面的内容:

    #!/bin/bash# nginx Startup script for the Nginx HTTP Server# it is v.0.0.2 version.# chkconfig: - 85 15# description: Nginx is a high-performance web and proxy server.#              It has a lot of features, but it's not for everyone.# processname: nginx# pidfile: /var/run/nginx.pid# config: /usr/local/nginx/conf/nginx.confnginxd=/usr/local/nginx/sbin/nginxnginx_config=/usr/local/nginx/conf/nginx.confnginx_pid=/var/run/nginx.pidRETVAL=0prog="nginx"# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0[ -x $nginxd ] || exit 0# Start nginx daemons functions.start() {if [ -e $nginx_pid ];then echo "nginx already running...." exit 1fi echo -n $"Starting $prog: " daemon $nginxd -c ${nginx_config} RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx return $RETVAL}# Stop nginx daemons functions.stop() {      echo -n $"Stopping $prog: "      killproc $nginxd      RETVAL=$?      echo      [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid}# reload nginx service functions.reload() {  echo -n $"Reloading $prog: "  #kill -HUP `cat ${nginx_pid}`  killproc $nginxd -HUP  RETVAL=$?  echo}# See how we were called.case "$1" instart)      start      ;;stop)      stop      ;;reload)      reload      ;;restart)      stop      start      ;;status)      status $prog      RETVAL=$?      ;;*)      echo $"Usage: $prog {start|stop|restart|reload|status|help}"      exit 1esacexit $RETVAL

    保存并退出:wq
    设置文件的访问权限(a+x ==> all user can execute 所有用户可执行)

    chmod a+x /etc/init.d/nginx
  2. 添加到开机启动项中

    vi /etc/rc.local

    加入一行/etc/init.d/nginx start保存并退出,下次重启会生效。

  3. 完成所有配置,重启服务器。

    reboot
  4. 重新打开terminal输入:

    curl localhost

    得到:

    Moved Temporarily. Redirecting to /login

5. 说明

过程中参考了这些文章
安装中文语言支持包
http://www.xshell.net/linux/GNOM.html

CentOS安装NodeJS
http://zhaohe162.blog.163.com/blog/static/38216797201402234212981/

给nodejs的npm更换源
http://blog.sina.com.cn/s/blog_77a8ce670101cdd3.html

升级CentOS5.6_X64 python2.4.3到2.7
http://hxl2009.blog.51cto.com/779549/1031310

python中没有装bz2的库
http://flyer2010.iteye.com/blog/1699946

配置环境变量
http://blog.csdn.net/zhaoweitco/article/details/12677089

0 0
原创粉丝点击