服务器 频道

Zeus+php+Zend Optimizer安装指南

  【IT168 服务器学院】本文是Crossday第一篇unix作文,基于linux而写出。zeus是一个著名的web服务器软件,其效能远在apache1/2之上,是整台服务器用户跑论坛的首选,对内存小于1G而流量非常大的用户,换用zeus会比apache多获得一倍的负载能力。
  
  本文提供方法在redhat linux 7.3及以上各版本,PHP 4.3.0及以上版本,Zend Optimizer 2.1.0验证通过,所配置参数为适应每15分钟在线1000人以上的,使用Discuz! 2.0/3.0的中大型论坛所优化
  
  进入一个目录。如:
  cd /usr/local/src
  
  找一个zeus 4.2 r3 for linux的破解版本下载
  
  wget http://download.discuz.net/zeus_linux.tgz
  
  tar xvzf zeus_linux.tgz
  cd Zeus.Web.Server.v4.2r3.Linux.x86/
  tar xvzf Zeus_42r3_Linux-glibc2.1.tgz
  cd Zeus_42r3_Linux-glibc2.1/
  
  开始安装
  

  ./zinstall
  
  按CTRL+C 打入accept
  
  Where should the product be installed? [/usr/local/zeus]: 回车
  
  Installation options:
  
  1. Full install of both admin server & web server
  2. Stand-alone install of admin server
  3. Clustered install of web server
  H. Help
  
  Choose installation option [1]: 回车
  
  Enter the key filename, or leave blank for unlicensed mode: /usr/local/src/Zeus.Web.Server.v4.2r3.Linux.x86/license.key (输入密匙位置)
  
  Please choose a password for the admin server: ****** (输入管理员密码)
  Re-enter: ****** (重新输入密码)
  
  Would you like Zeus to start at boot time? Y/N [Y]: (回车)
  
  以上是安装过程 很容易的就装好了 如果有apache在跑 先把他停掉 避免80端口冲突
  /usr/local/apache/bin/apachectl stop
  
  若安装中提示libdb.so.2不存在 先进入压缩包的libdb.so.2目录中
  rpm -ivh db1-1.85-8.i386.rpm
  
  安装php
  

  cd /usr/local/src
  
  从小日本网站下载php
  
  wget http://cn2.php.net/get/php-4.3.4.tar.gz/from/jp2.php.net/mirror
  tar xvzf php-4.3.4.tar.gz
  cd php-4.3.4/
  ./configure --prefix=/usr/local/php --enable-fastcgi --enable-force-cgi-redirect --with-config-file-path=/etc --with-zlib --with-mysql --with-xml
  make
  make install
  cp php.ini-dist /etc/php.ini
  
  安装Zend Optimizer
  

  cd /usr/local/src
  wget http://download.discuz.net/ZendOptimizer-2%5B1%5D.1.0b-Linux_glibc21-i386.tar.gz
  tar xvzf ZendOptimizer-2%5B1%5D.1.0b-Linux_glibc21-i386.tar.gz
  cd ZendOptimizer-2.1.0b-Linux_glibc21-i386/
  ./install.sh
  一阵回车 问Confirm the location of your php.ini file的时候打入/etc
  问Are you using Apache web server?的时候选No
  
  设置Zeus
  

  访问 http://your.com:9090 (你的域名地址或IP地址)
  用户名 admin 密码:刚才设定的密码
  
  进入Zeus管理控制台,点Create a Virtual Server 把相关的六个选项填好,不多说提交后出现刚才加入的virtual server,点FastCGI
  
  Enabling Support for FastCGI Programs 选 Enabled
  Restricting FastCGI locations 选 Enable FastCGI programs to be located anywhere
  Configuring Directories for FastCGI Local Responders 不用写他 因为我们用remote方式连接fastcgi
  
  Configuring FastCGI Remote Responders 中填入以下配置
  Directory name : /usr/local/php/bin/php
  Location: Machine name: localhost
            Port: 8002
  Additional methods supported?:None
  
  其他都不用管,点Apply changes
  
  点左边Url Handling下面的Handlers
  File Extension : php
  Specify the path and filename of the handler, relative to the document root : /usr/local/php/bin/php
  点Apply changes
  
  点左边Url Handling下面的Directory Requests
  Index Files中加入一个 index.php 和一分隔逗号
  Directory Listing选Disabled
  点Apply changes
  
  再点上面的 This configuration has been modified. Click here for details or to make it take effect.
  出来的页面点Commit
  
  配置php-fastcgi
  cd /usr/local/zeus/rc.d
  建立一个S05php的文件 内容为
  
  #!/bin/sh
  
  # Script to start and stop the persistent PHP runner for FastCGI.
  # Please check paths before use.
  
  # FastCGI PHP binary
  FPHPBIN=/usr/local/php/bin/php
  
  # Location to place semaphore
  SEMFILE=/tmp/php.pid
  PHP_FCGI_CHILDREN=200
  PHP_FCGI_MAX_REQUESTS=1000
  export PHP_FCGI_CHILDREN
  export PHP_FCGI_MAX_REQUESTS
  
  # This is Linux - use /proc to increase the local (ephemeral) port range
  #echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
  
  if [ -z "$ZEUSHOME" ]
  then
    cd `dirname $0`/..
    ZEUSHOME=`pwd`
    export ZEUSHOME
  fi
  
  case "$1" in
    ''start'')
  
          if [ -e $SEMFILE ]
                  then
                          echo FastCGI PHP error: already running.Restart FastCGI PHP now
                      kill `cat $SEMFILE`
              sleep 5
          fi
  
          if [ ! -x $FPHPBIN ]
                  then
                          echo FastCGI PHP error: please check that $FPHPBIN is executable and exists.
                  exit 1
          fi
  
                  echo Starting FastCGI PHP.
                  $ZEUSHOME/web/bin/fcgirunner --user=99 --group=99 --pidfile=$SEMFILE 8002 $FPHPBIN
          ;;
  
    ''stop'')
          if [ -e $SEMFILE ]
                  then
                  echo Stopping FastCGI PHP.
          kill `cat $SEMFILE`
          rm $SEMFILE
                  exit 0
          fi
         ;;
    ''restart'')
          if [ -e $SEMFILE ]
                  then
                  echo Stopping FastCGI PHP.
                  kill `cat $SEMFILE`
          sleep 5
          fi
          echo Starting FastCGI PHP.
          $ZEUSHOME/web/bin/fcgirunner --user=99 --group=99 --pidfile=$SEMFILE 8002 $FPHPBIN
         ;;
    *)
      echo "usage: $0 {start|stop|restart}"
      ;;
  
  esac
  exit 1
  
  
注意--user=65534 --group=65534 为php进程运行的用户和组,一般设置为nobody用户和组FreeBSD是65534/65534,Linux是99/99
  
  如不会建文件 可看下面范例
  
  vi S05php
  (打一个小写的i)
  (把上面的内容复制到剪贴板 然后按SHIFT+INSERT粘贴过去)
  (按ESC)
  (输入 :wq 然后回车)
  
  改写属性使其可执行
  chmod 755 S05php
  
  回到Zeus的9090端口管理界面 把刚才设置的虚拟主机Start
  
  启动Zeus的命令为 /usr/local/zeus/start-zeus
  停止Zeus的命令为 /usr/local/zeus/stop-zeus
  重启Zeus的命令为 /usr/local/zeus/restart-zeus
  
  编辑/etc/rc.local
  加入一行
  /usr/local/zeus/start-zeus
  使得Zeus在开机时自动运行
  
  如果现在无法访问web,多半是因为没有把apache停掉造成的,注意要将启动时候的apache自启动给去掉 否则zeus无法绑定到80端口进而无法访问 如没有上述问题 安装后仍然无法访问 可能为web服务器没有正确安装 例如第一次安装后中断退出 第二次又以升级方式安装 等等 这样的情况建议先把zeus停掉 然后将其目录rm -fr删除 重新安装一次即可正常 个人以为这是zeus安装脚本设计的不合理所致
  
  结束:zeus实在是太强大了,无以言表,在不需任何外挂模块的情况下实现多线程的高效服务 IP并发限制 来路限制 带宽限制等如此多丰富而实用的功能,确实是unix世界中极为强悍和高效的web服务器软件
  
  S05php脚本为CCF的坛主hunrea所作
  
  我的第一篇unix作文,不当指出敬请指正.
0
相关文章