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


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

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

    2. 基本环境配置:

    2.1. NodeJS安装

    1. 依赖项安装

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

      cd /opt
      wget –c http://nodejs.org/dist/v0.12.4/node-v0.12.4.tar.gz
      tar zxvf node-v0.12.4.tar.gz
      cd node-v0.12.4
      ./configure --prefix=/usr/local/nodejs
      make && make install

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

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

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

    3. 升级Python:

      cd /opt
      wget -c http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
      tar jxvf Python-2.7.3.tar.bz2
      cd Python-2.7.3
      ./configure
      make && make install

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

      • 建立软连接
        mv /usr/bin/python /usr/bin/python.bak
        ln -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/nodejs
      make && make install

      注意,又有新的错误:

      ImportError: No module named bz2
      make[1]: *** [/opt/node-v0.12.4/out/Release/obj/gen/libraries.cc] 错误 1
      make[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
      ./configure
      make && 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/nodejs
      make && make install

      这次应该可以安装成功了

    7. 配置NodeJS环境变量

      • 进入profile编辑环境变量
        vim /etc/profile
        export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的【上面】添加如下内容:
        #set for nodejs 
        export NODE_HOME=/usr/local/nodejs
        export 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  openssl
      yum -y install zlib zlib-devel  pcre
    2. 下载、解压安装Nginx

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

      /usr/local/nginx/sbin/nginx

      测试http访问

      curl localhost

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

      <!DOCTYPE html>
      <html>
      <head>
      <title>Welcome to nginx!</title>
      <style>
         body {
              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 and
      working. 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 /opt
      wget –c https://github.com/Countly/countly-server/archive/master.zip
      unzip countly-server-master.zip
      mv ./countly-server-master ./countly
    2. 复制countly web配置文件,并修改配置

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

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

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

      cd ../../api/
      cp config.sample.js  config.js
      vi 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.gz
      tar zxvf supervisor-3.1.1.tar.gz
      cd supervisor-3.1.1
      python setup.py install

      如果出现错误:

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

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

      cd /opt/supervisor-3.1.1
      python setup.py install
    4. 编辑countly-supervisor.conf
      vi /opt/countly/bin/config/supervisord.conf
      %(here)s/../..%(here)s 替换为/opt/countly,保存修改:wq
    5. 配置supervisor文件
      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.conf 
       
      supervisordd=/usr/local/bin/supervisord
      supervisor_config=/etc/supervisord.conf
      supervisor_pid=/var/run/supervisor.pid
       
      RETVAL=0
      prog="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/bin
      if [ -e $supervisor_pid ];then
        echo "supervisor already running...."
        exit 1
      fi
        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" in
      start)
             start
             ;;
      stop)
             stop
             ;;
      reload)
             reload
             ;;
      restart)
             stop
             start
             ;;
      status)
             status $prog
             RETVAL=$?
             ;;
      *)
             echo $"Usage: $prog {start|stop|restart|reload|status|help}"
             exit 1
      esac
      exit $RETVAL

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

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

      测试:

      service supervisor start

      可以看到:

      Starting supervisor with conf:/etc/supervisord.conf
       
                                                                [确定]
    7. 添加到开机启动项中:
      vi /etc/rc.local
      加入:
      /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.conf 
      nginxd=/usr/local/nginx/sbin/nginx
      nginx_config=/usr/local/nginx/conf/nginx.conf
      nginx_pid=/var/run/nginx.pid
      RETVAL=0
      prog="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 1
      fi
        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" in
      start)
             start
             ;;
      stop)
             stop
             ;;
      reload)
             reload
             ;;
      restart)
             stop
             start
             ;;
      status)
             status $prog
             RETVAL=$?
             ;;
      *)
             echo $"Usage: $prog {start|stop|restart|reload|status|help}"
             exit 1
      esac
      exit $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

  • 相关阅读:
    各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
    How to see log files in MySQL?
    git 设置和取消代理
    使用本地下载和管理的免费 Windows 10 虚拟机测试 IE11 和旧版 Microsoft Edge
    在Microsoft SQL SERVER Management Studio下如何完整输出NVARCHAR(MAX)字段或变量的内容
    windows 10 x64系统下在vmware workstation pro 15安装macOS 10.15 Catelina, 并设置分辨率为3840x2160
    在Windows 10系统下将Git项目签出到磁盘分区根目录的方法
    群晖NAS(Synology NAS)环境下安装GitLab, 并在Windows 10环境下使用Git
    使用V-2ray和V-2rayN搭建本地代理服务器供局域网用户连接
    windows 10 专业版安装VMware虚拟机碰到的坑
  • 原文地址:https://www.cnblogs.com/lulee007/p/4570325.html
Copyright © 2020-2023  润新知