免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2205 | 回复: 0
打印 上一主题 下一主题

建立一个带宽、线程可控的下载型WEB网站 php+mysql+apache+zend+... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-15 13:45 |只看该作者 |倒序浏览
建立一个带宽线程可控的下载型WEB网站  

一、前言 :

这种配置的WEB网站初步实现了IP线程和线程流量的管理,用的linux版本是RedHat AS 4.2。

二、所需要的软件及其版本

httpd-2.0.54.tar.gz
mysql-4.1.18.tar.gz
php-4.4.2.tar.gz
ZendOptimizer-2.6.2-linux-glibc21-i386.tar.gz
mod-cband-0.9.7.3.tgz         限制Apache的并发连接数以及控制Apache的带宽

三、安装配置Mysql

#        cd  /tmp
#         wget        http://ftp.ntu.edu.tw/pub/MySQL/ ... mysql-4.1.18.tar.gz
#        tar        zxvf                mysql-4.1.18.tar.gz
#        cd        mysql-4.1.18
#        ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
#        prefix=/usr/local/mysql         mysql安装的目标目录
#        sysconfdir=/etc         my.ini配置文件的路径
#        localstatedir=/var/lib/mysql        数据库存放的路径
#        make
#        make  install
安装完以后要初始化数据库,当然你是升级的话不用做这步;
#        /usr/local/mysql/bin/mysql_install_db
建立 mysql 用户;
#        /usr/sbin/useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql
设置权限;
#        chown -R mysql:mysql /var/lib/mysql
#        chmod 750 /var/lib/mysql
#        chown -R mysql:mysql /usr/local/mysql
#        chmod 750 /usr/local/mysql
做完上面的步骤,然后把编译目录的一个脚本复制过去;
#        cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#        chmod 755 /etc/rc.d/init.d/mysqld
#        /sbin/chkconfig --add mysqld
#        /sbin/chkconfig mysqld on                设置使 mysql 每次启动都能自动运行。
好了,至此mysql安装完毕,可以起动mysql服务
/etc/rc.d/init.d/mysqld start
下面这步比较关键;


#        ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
#        ln -s /usr/local/mysql/include/mysql /usr/include/mysql
可以不做这步,大可以在编译其他软件的时候自定义myslq的库文件路径,但最好还是把库文件链接到默认的位置,这样在编译类似PHP,Vpopmail等软件时可以不用指定mysql的库文件地址。

四、安装配置Apache

#        cd         /tmp
#        wget        http://archive.apache.org/dist/httpd/httpd-2.0.54.tar.gz
#        tar        zxvf                httpd-2.0.54.tar.gz
#        cd        httpd-2.0.54
#        ./configure --prefix=/usr/local/apache --enable-module=so --enable-speling --enable-rewrite        --enable-forward
#        so模块用来提供 DSO 支持的 apache 核心模块,rewrite是地址重写的模块,如果不需要可以不编译。
--enable-so 选项:让 Apache 可以支持DSO模式,注意,我们在这里采用的是 Apache2.0 的语法。如果你的Apache 是1.3版本,应改为--enable-module=so
--enable-mods-shared=most选项:告诉编译器将所有标准模块都编译为DSO模块。你要是用的是 Apache1.3, 改为--enable-shared=max就可以。
--enable-rewrite选项:支持地址重写功能,使用1.3版本的朋友请将它改为--enable-module=rewrite
#        make
#        make        install
#        cp        /usr/local/apache/bin/apachectl                /etc/rc.d/init.d/httpd
#        /etc/rc.d/init.d/httpd        start

五、安装配置 PHP

#        cd        /tmp
#        wget        http://cn2.php.net/get/php-4.4.2.tar.gz/from/cn.php.net/mirror
#        tar        zxvf                php-4.4.2.tar.gz
#        cd        php-4.4.2
#        ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs
说明:
--with-apxs2=/usr/local/apache/bin/apxs 是Apache2的语法
--with-apxs=/usr/local/apache/bin/apxs 是Apache1.3的语法
#        make
#        make        install
#        cp        php.ini-dist        /usr/local/php/lib/php.ini
#        vi        /usr/local/apache/conf/httpd.conf



AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
下添加:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

重新启动 Apache 服务;
#        /etc/rc.d/init.d/httpd        restart


六、安装配置mod-cband      (支持httpd-2.0)

#        cd        /tmp
#        wget        http://cband.linux.pl/download/mod-cband-0.9.7.3.tgz
#        tar        zxvf                mod-cband-0.9.7.3.tgz
#        cd        mod-cband-0.9.7.3
#        PATH=/usr/local/apache/binPATH
#        ./configure
#        make
#        make        install

在屏幕下方看到下列文字段 :

Libraries have been installed in:
   /usr/local/apache/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so( manual pages.
----------------------------------------------------------------------
chmod 755 /usr/local/apache/modules/mod_cband.so
[activating module `cband' in /usr/local/apache/conf/httpd.conf]

如果有,则说明安装成功。


#        mkdir        /usr/local/apache/htdocs/www.test.net.cn
#        mkdir        /usr/local/apache/logs/www.test.net.cn
#        vi        /usr/local/apache/conf/httpd.conf

在配置文件的最下方添加以下内容:

NameVirtualHost 12.34.56.78                ( 主机 IP 地址 )
<VirtualHost www.test.net.cn>
        ServerName www.test.net.cn:80
        ServerAdmin admin@test.net.cn
        DocumentRoot "/usr/local/apache/htdocs/www.test.net.cn "
        DirectoryIndex test.php
        ErrorLog logs/www.test.net.cn/error_log
        CustomLog logs/www.test.net.cn/access_log        common

<Location /cband-status>
        SetHandler        cband-status
</Location>
<Location /cband-status-me>
        SetHandler        cband-status-me
</Location>
RewriteEngine        on
RewriteOptions        inherit
# limit speed of this vhost to 500kb/s, 10 request/s, 30 open connections
        CbandSpeed        500kb/s                10        30
# in addition every remote host connecting to this vhost
# will be limited to 100kb/s, 5 request/s, 2 open connections
        CbandRemoteSpeed        100kb/s                5        2
        CbandPeriod        3S
</VirtualHost>

#        /etc/rc.d/init.d/httpd        stop
#        /etc/rc.d/init.d/httpd        start

七、安装配置ZendOptimizer

说明:Zend Optimizer V2.5.5以上版本,就可以支持PHP5
#        cd        /tmp
#        wget        http://download.discuz.net/ZendO ... glibc21-i386.tar.gz
#        tar        zxvf                ZendOptimizer-2.6.2-linux-glibc21-i386.tar.gz
#        cd        ZendOptimizer-2.6.2-linux-glibc21-i386
#        ./install.sh

出现终端图形化安装界面,一路回车,其中有两处需要指定路径的,检查缺省是否与你的机器实现路径相符,不同则改之。如Specify the Apache bin directory,变更下方路径为你的Apache的bin目录:/usr/local/apache/bin。之后,又是一路回车至最后提示安装成功并重启apache。
Zend的安装目录一般为/usr/local/Zend/。

测试

编辑test.php文件在/usr/local/apache/htdocs/目录下,内容为:
<?
Phpinfo()
?>

在浏览器地址栏中输入http://localhost/test.php,回车。在不滚动的屏幕下方Zend Engine2图标左侧是否看到下列文字段 :

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.0.3, Copyright (c) 1998-2004 Zend Technologies
with Zend Extension Manager v1.0.4, Copyright (c) 2003-2004, by Zend Technologies
with Zend Optimizer v2.6.2, Copyright (c) 1998-2004, by Zend Technologies

如果有,则说明安装成功,此时在滚动屏幕可以看到有Zend Optimizer参数表格。
如果没有上方文字的后面两行,则说明安装有问题。最有可以的是Zend Optimizer没有找到你的php.ini文件。在上述文字段上方表格找到Configuration File (php.ini) Path后面的具体路径,将你的php.ini


复制过去,然后重启Apache,一般可以解决。
友情告知:你可以在你的机器内安装ZendEncoder软件,使用它你就可以将PHP网页文件进行伪编译了。这里不打算述及ZendEncoder的安装使用问题,否则就离题有点远啦。

八、MySQL管理工具(phpMyAdmin Ver 2.6.1 RC2)
  
phpMyAdmin 2.6.1 RC2 for Linux
  phpMyAdmin 是一套可以用来管理 MySQL-server 以及单一数据库的 PHP 程序,对于不熟悉 MySQL 命令列指令的人来说,是很方便的管理工具。
http://dl.163.com/html/25/25370.html
  1、安装
  直接解压缩下载的phpMyAdmin-2.6.1-rc2.tar.gz至/var/www/html/下,并将目录phpMyAdmin-2.6.1-rc2改名为phpMyAdmin。
  2、使用
  在确保Apache服务器已经启动。
  打开Firefox浏览器,地址栏输入:http://localhost/phpMyAdmin,回车
  出现phpMyAdmin的主界面了吧。
  3、建议
  为安全起见,建议立即按下列步骤更改MySQL的root登录密码。
  (1)在第一个页面中央表格root记录右侧人头像图标点击。
  (2)打开权限编辑页面。在中央“更改密码”文本框中输入两次密码,点击“执行”。
  (3)用编辑器打开/var/www/html/phpMyAdmin/config.inc.php
  第85行$cfg['Servers'][$i]['password']后面的单引号内填入刚才的密码。保存退出。
  这样你就可以自动登录了。
  (4)如果你想手动登录,请修改该文件以下变量值:
  第60行:$cfg['blowfish_secret'] = 'cookie';
  第83行:$cfg['Servers'][$i]['auth_type']     = 'cookie';
  第85行:$cfg['Servers'][$i]['password']      = '';  
  保存退出。

九、java开发工具包(J2SDK Ver.1.4.2)
  为提供服务器对jsp脚本语言的支持,我们还必须安装Java开发工具包。
  1、安装
  J2SDK的安装,详见本人的另一篇拙文(第七节)
http://www.linuxsky.net/ftopic1245.html
    2、配置
    编辑~/.bash_profile文件,在最后位置加入如下几行:
CODE:
[Copy to clipboard]
JAVA_HOME=/usr/share/j2sdk1.4.2
PATH=$JAVA_HOME&#58;$JAVA_HOME/bin&#58;$PATH
CLASSPATH=.&#58;$JAVA_HOME/lib/tools.jar&#58;$JAVA_HOME/lib/dt.jar
export PATH JAVA_HOME CLASSPATH
  3、测试
  (1)用文本编辑器编辑HelloWorldApp.java,内容为:
CODE:
[Copy to clipboard]
class HelloWorldApp
{
   public static void main &#40;String args&#91;&#93;&#41;
  {
      System.out.println&#40;"Hello,World!"&#41;;
  }
}
  (2)编译:#javac HelloWorldApp.java
  (3)运行:#java HelloWorldApp
  如果输入一行Hello,World!,说明安装配置成功!

    十、Tomcat(Tomcat 5.0.30)
Tomcat是在SUN的JSWDK的基础上发展起来的另一个优秀的JSP服务器,它不但支持Servlet,而且还提供了Web服务器的功能。
1、下载:
http://download.enet.com.cn/html/232192000121401.html
2、安装:
解压缩下载的包至/usr/local/下,建议更目录名为tomcat5.0.30。
3、启动:
#/usr/local/tomcat5.0.30/bin/startup.sh
4、测试:
Firefox地址栏输入:http://localhost:8080,回车。
如果看到左上角有只漂亮的小猫咪,就说明OK了。

  十一、Tomcat与Apache的整合器(jakarta-tomcat-connectors Ver.2.0.4)
  1、下载
http://apache.linuxforum.net/dis ... -src-current.tar.gz
    2、安装
    (1)解压缩下载的包至/usr/local/src/下。
    (2)进入目录
    #cd /usr/local/src/jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2
    (3)编译安装
    #./configure --with-apxs2=/usr/local/apache/bin/apxs
    #make
    #cd ../build/jk2/apache2
    #/usr/local/apache/bin/apxs -n jk2 -i mod_jk2.so
    (4)编辑Apache配置文件/usr/local/apache/conf/httpd.conf
    在LoadModule加入如下一行:
    LoadModule jk2_module modules/mod_jk2.so
  (5)在/usr/local/apache/conf/目录下编辑保存一个名为workers2.properties的文本文件,内容为:
CODE:
[Copy to clipboard]
&#91;logger&#93;
level=ERROR

&#91;config&#58;&#93;
file=/usr/local/apache2/conf/workers2.properties
debug=0
debugEnv=0

# Alternate file logger
&#91;logger.file&#93;
#level=DEBUG
level=ERROR
file=/var/log/httpd/jk2.log

&#91;shm&#58;&#93;
info=Scoreboard. Required for reconfiguration and status with multiprocess servers
file=/var/log/httpd/jk2.shm
size=1048576
debug=0
disabled=0

&#91;channel.socket&#58;localhost&#58;8009&#93;
info=Ajp13 forwarding over socket
debug=0
tomcatId=localhost&#58;8009
keepalive=1

&#91;ajp13&#58;localhost&#58;8009&#93;
channel=channel.socket&#58;localhost&#58;8009
debug=0

&#91;status&#58;&#93;
info=Status worker, displays runtime informations

&#91;uri&#58;/jkstatus/*&#93;
info=Display status information and checks the config file for changes.
worker=ajp13&#58;localhost&#58;8009

&#91;uri&#58;/*.jsp&#93;
worker=ajp13&#58;localhost&#58;8009
context=/
(6)修改/usr/local/tomcat5.0.30/conf/server.xml,在
&lt;Host name="localhost" debug="0" appBase="apps" unpackWARs="true" autoDeploy="true"&gt;
下方加入这行:
&lt;Context path="" docBase="/var/www/html" debug="0" reloadable="true" crossContext="true"/&gt;
保存退出。
    (7)测试
    A)方法一:Firefox地址栏输入http://localhost/examples/,看看JSP Samples及其两列图标链接了吧。
    B)方法二:在/var/www/html/下编辑一test.jsp文件,内容为以下五行:
CODE:
[Copy to clipboard]
&lt;%@ page language="java" contentType="text/html;charset=gb2312"%&gt;
&lt;%
out.print&#40;"&lt;font color=red&gt;This is JSP's test page!&lt;/font&gt;&lt;br&gt;&lt;br&gt;"&#41;;
%&gt;
Hello! The time is now &lt;%= new java.util.Date&#40;&#41; %&gt;
再在Firefox地址栏输入http://localhost/test.jsp,有输出下面两行文件吗?
This is JSP's test page!
Hello! The time is now Wed Mar 09 02:34:15 CST 2005

    OK,所有的工作就告一段落了,大功告成!
    web服务器建设是一项十分繁杂的工作,以上只是初步完成在本机调试HTML、PHP、JSP及其调用MySQL的服务器环境。
    要真正完成在Internet上实际应用的web服务器,毫无疑问还有很多工作要做。




NameVirtualHost 192.168.2.250
<VirtualHost 192.168.2.250 >
        ServerName 192.168.2.250:80
        ServerAdmin admin@test.net.cn
        DocumentRoot "/usr/local/apache/htdocs/www.test.net.cn/"
        DirectoryIndex test.php
        ErrorLog logs/www.test.net.cn/error_log
        CustomLog logs/www.test.net.cn/access_log       common

<Location /cband-status>
        SetHandler      cband-status
</Location>
<Location /cband-status-me>
        SetHandler      cband-status-me
</Location>
RewriteEngine   on
RewriteOptions  inherit
# limit speed of this vhost to 500kb/s, 10 request/s, 30 open connections
        CbandSpeed      500kb/s         10      30
# in addition every remote host connecting to this vhost
# will be limited to 100kb/s, 5 request/s, 2 open connections
        CbandRemoteSpeed        100kb/s         5       2
        CbandPeriod     3S
</VirtualHost>
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP