动态网站架构案例
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,积分奖惩,审核用户,推荐关注及好友等设置;
论坛菜单:包括板块管理,板块合并及分类信息设置,板块结构为分区加板块的设计,一个分区下可以创建多个板块内容;
以上是关于动态网站架构案例的主要内容,如果未能解决你的问题,请参考以下文章