动态网站架构案例

Posted 狼途

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态网站架构案例相关的知识,希望对你有一定的参考价值。

1》动态网站架构:

     LAMP(Linux+Apache+mysql+php/Python/perl)架构是一套强大的网站解决方案,LAMP是多个开源项目的首字母缩写,LAMP网站架构主要应用于动态网站的WEB架构,          这种WEB框架具有通用,跨平台,高性能,高负载,稳定等特性,是目前企业部署 网站的首选平台,同时,我们也需要看到nginx在国内的应用越来越成熟,相对Apache而言,        Nginx对于静态文件的响应能力要远远高于Apache服务器,所以近几年也兴起了LNMP的架构,但对于负载PHP的网站而言,Apache仍然是目前的首选产品,我们将通过实际部          署两个开源网站项目讲解LAMP的实际应用,两个开源项目均采用PHP代码编写,分别是Discuz!论坛以及WordPress博客系统,网站架构案例结构中通过基于域名的虚拟主机实          现在一台Apache服务器上运行两个不同的网站平台,论坛的域名为bbs.example.com,博客的域名为blog.example.com;

2》论坛系统应用案例:

    Discuz!是目前国内应用最广泛的社区论坛建站平台,使用Discuz!可以实现一站式建站服务,Discuz!从2001年发布至今已经经历了16年的发展历史,大量的应用案例证明了           该系统的成熟度,稳定性及负载能力都是值得信赖的;另外,由于Discuz!采用的是PHP语言开发,并且开放源代码,所以Discuz!也是PHP编程人员学习PHP代码的模板;

    部署Discuz!论坛所需软件环境包括:WWW服务器(如,Apache,Nginx等),PHP软件包(版本要求在4.3.0以上),MySQL数据库(版本要求在3.23及以上),这里将采           用LAMP平台实现论坛系统的部署,具体步骤如下;

    1>下载软件包:

       #wget  http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.27.tar.gz

         #wget  http://mirror.bit.edu.cn/apache/apr/apr-1.6.2.tar.gz

         #wget  http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

         #wget  http://cdn.mysql.com/Downloads/MySQL/mysql-5.6.31.tar.gz

         #wget  http://cn2.php.net/get/php-5.3.13.tar.gz

    2>部署AMP环境:

        1)将所有源码包解压到特定目录下:            

            [root@chw ~]# tar -xvf httpd-2.4.27.tar.gz -C /usr/local/src/

            [root@chw ~]# tar -xvf apr-1.6.2.tar.gz -C /usr/local/src/

            [root@chw ~]# tar -xvf apr-util-1.6.1.tar.gz -C /usr/local/src/

            [root@chw ~]# tar -xvf mysql-5.6.31.tar.gz -C /usr/local/src/

            [root@chw ~]# tar -xvf php-5.3.13.tar.gz -C /usr/local/src/

        2)安装依赖包:

              

        3)安装Apache  HTTP Server软件(具体安装查看博主相关博客):            

          [root@chw ~]# cd /usr/local/src/
          [root@chw src]# cd apr-1.6.2
          [root@chw apr-1.6.2]# ./configure --prefix=/usr/local/apr         

          [root@chw apr-1.6.2]# make && make install

          [root@chw apr-1.6.2]# cd /usr/local/src/apr-util-1.6.1
          [root@chw apr-util-1.6.1]# ./configure  --prefix=/usr/local/apr-util   --with-apr=/usr/local/apr/

                                     [root@chw apr-util-1.6.1]# make && make install          

          [root@chw httpd-2.4.27]# ./configure --prefix=/usr/local/apache --enable-so --enable-ssl --enable-rewrite --with-mpm=worker --with-suexec-bin --with-                                                                                                     apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util          

          [root@chw httpd-2.4.27]# make && make install

        4)安装mysql数据库(具体安装说明见博主相关博客):            

          [root@chw mysql-5.6.31]# cd mysql-5.6.31

          [root@chw mysql-5.6.31]# groupadd mysql

          [root@chw mysql-5.6.31]# useradd -r -s /sbin/nologin -g mysql mysql

          [root@chw mysql-5.6.31]# cmake . -DENABLE_DOWNLOADS=1

          [root@chw mysql-5.6.31]# make && make install

          [root@chw mysql-5.6.31]#chown -R mysql.mysql  /usr/local/mysql

          [root@chw mysql-5.6.31]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

          [root@chw mysql-5.6.31]# cp /usr/local/mysql/my.cnf /etc/my.cnf          

          [root@chw mysql-5.6.31]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld  

          [root@chw mysql-5.6.31]# service mysqld start
            Starting MySQL. [确定]

          [root@chw mysql-5.6.31]# chkconfig --add mysqld
          [root@chw mysql-5.6.31]# chkconfig mysqld on
          [root@chw mysql-5.6.31]# echo "/usr/local/mysql/lib/" >>/etc/ld.so.conf
          [root@chw mysql-5.6.31]# ldconfig

        5)创建论坛数据库:

            Discuz是基于PHP的动态网站,很多数据都需要保存在数据库中,因此我们需要在Mysql数据库中为论坛创建数据库,并创建数据库管理账户及密                                                        码:             

          [root@chw ~]# /usr/local/mysql/bin/mysql -u root

                  

        6)安装PHP程序:            

          [root@chw ~]# cd /usr/local/src/php-5.3.13
          [root@chw php-5.3.13]# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql/ --with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --enable-                                                                                   sockets          

          [root@chw php-5.3.13]# make && make install           

          [root@chw php-5.3.13]# cp php.ini-development /usr/local/php5/lib/php.ini

               修改Apache主配置文件httpd.conf以确保该文件中有如下两条指令,这两条指令的功能是加载模块并设置文件类型:

              LoadModule  php5_module   modules/libphp5.so

              AddType    application/x-httpd-php   .php

        7)测试(服务器生成PHP测试页面,客户端通过IP地址访问测试页面):

            [root@chw php-5.3.13]# echo "<?php  phpinfo();?>" >/var/www/html/index.php            

            [root@chw php-5.3.13]# firefox http://172.31.16.234/index.php

3》初始化论坛系统:

    1> 首先修改Apache配置文件,通过DirectoryIndex index.php  index.html指令设置默认首页为index.php,去除主配置文件Include conf/extra/httpd-vhosts.conf指令前的“#”符                         号,Include指令读取httpd-vhosts.conf文件的内容作为主配置文件的一部分:                        

      [root@chw ~]#vim  /usr/local/apache/conf/extra/httpd-vhosts.conf

        <VirtualHost  *:80>

            ServerAdmin  root@gmail.com

            DocumentRoot  "/usr/local/apache/htdocs/bbs"

            ServerName    bbs.example.com

        ErrorLog  "logs/bbs.example..com-error_log"

        Customlog  "logs/bbs.example.com-access_log"  common

        </VirtualHost>      

      [root@chw ~]#mkdir  -p  /usr/local/apache/htdocs/bbs/logs

    2>接下来需要从http://download.comsenz.com/DiscuzX/2.5/Discuz_X2.5_SC_UTF8.zip中下载Discuz!软件包,下载后解压将upload中的文件上传至bbs目                                                   录:        

        [root@chw src]# mkdir /usr/local/src/discus 

        [root@chw src]# unzip Discuz_X2.5_SC_UTF8.zip -d /usr/local/src/discus/

         [root@chw src]# cp -r /usr/local/src/discus/upload/*  /usr/local/apache/htdocs/bbs 

        [root@chw src]# chmod -R 777 /usr/local/apache/htdocs/bbs/{config/,data} 

        [root@chw src]# chmod -R 777 /usr/local/apache/htdocs/bbs/uc_client/data/cache 

        [root@chw src]# chmod -R 777 /usr/local/apache/htdocs/bbs/uc_server/data/         

        [root@chw src]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
        [root@chw src]# service iptables save 

        [root@chw src]# /usr/local/apache/bin/apachectl restart

     3>最后客户端通过浏览器访问http://bbs.example.com/install,完成初始化操作,图一至图四展示了整个初始化的全部过程,其中图二为安装环境检查,包括PHP版本,磁盘                       空间,文件及目录权限,检查没有问题会显示对勾,有问题的项目则被标记为叉号,只有修复了问题后才可以继续完成下面的操作,图四需要填写数据库信息,包括数据                     库名称,账户及密码信息,因此,需要提前在mysql数据库系统中创建相应的数据库及账户密码信息,管理员密码为论坛管理员密码;

         

          

                

                                     

 

        完成以上初始化操作后,一定要将/usr/local/apache/htdocs/bbs/install/index.php删除,防止进行多次初始化操作,此时客户端通过浏览器访问论坛域名:                               http://bbs.example.com,即可登录论坛首页,首次登录仅包含一个默认板块;

 4》论坛系统设置:

      论坛初始化完成后,并没有具体板块的内容,管理员可以登录后台进行一些全局,板块,内容,用户等设置,登录论坛首页后单击右上角的管理中心输入管理员账户及                密码后即可进入后台管理界面;            

       全局菜单:包括站点信息,论坛注册与访问控制,站点功能,性能及SEO优化,用户权限,论坛积分,防灌水,上传及水印等设置;

       界面菜单:包括论坛首页,导航栏,站点风格,论坛表情管理,提示消息及弹出消息等设置;

       内容菜单:包括发帖审核,论坛主题管理,批量删帖,批量群组管理,语言过滤,帖子优化,日志管理,相册与图片管理等设置;

       用户菜单:包括用户组,管理组,禁止用户,禁止IP,积分奖惩,审核用户,推荐关注及好友等设置;

       论坛菜单:包括板块管理,板块合并及分类信息设置,板块结构为分区加板块的设计,一个分区下可以创建多个板块内容;                  

 

以上是关于动态网站架构案例的主要内容,如果未能解决你的问题,请参考以下文章

大型网站架构系列:电商网站架构案例

大型网站架构系列:电商网站架构案例

大型网站架构系列:电商网站架构案例

电商网站架构案例

大型网站架构系列:电商网站架构案例

大型网站架构系列:电商网站架构案例