构建LAMP网站服务平台.doc_第1页
构建LAMP网站服务平台.doc_第2页
构建LAMP网站服务平台.doc_第3页
构建LAMP网站服务平台.doc_第4页
构建LAMP网站服务平台.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

构建LAMP网站服务平台4.1安装httpd服务1.x:1.0、1.1、1.2、1.32.x:2.0、2.1、2.24.2 RPM包安装 RHEL5光盘1、 httpd-2.2.3-6.e15.i386.rpm程序软件包:执行程序、配置文件、启动文件等httpd-devel-2.2.3-6.e15.i386.rpm开发包工具httpd-manual-2.2.3-6.e15.i386.rpm帮助手册文档system-config-httpd--1.e15.noarch.rpm 图形化配置工具2、 Apache服务器相关的主要目录和文件如下/etc/httpd/根目录/etc/httpd/conf/httpd.conf主配文件/var/www/html/网站根目录/etc/init.d/httpd控制脚本/usr/sbin/httpd执行程序/var/log/httpd/access_log/var/log/httpd/error.log4.3编译安装卸载rpm方式的httpd软件包默认编译环境 gcc-4.1.1-53.el5/dowmload.cgiwget /dist/httod/httpd-2.2.9.tar.gz1、 解压并释放源码包tar zxvf httpd-2.2.9.tar.gz C /usr/local/src2、 配置编译选项#cd /usr/local/src/httpd-2.2.9/#./configure -prefix=/usr/local/apache2 -enable-so -enable-rewrite -enable-cgi -enable-suexec -enable-ssl -enable-charset-lite -with-suexec-docroot=/usr/local/apache2/htdocs -with-suexec-caller=daemon注释:-prefix=PREFIX 在PREFIX指定的目录下安装独立体系的文件-enable-so 激活DSO能力-enable-rewrite 激活mod_rewrite(允许URL重写)-enable-cgi 激活cgi支持-enable-suexec 激活给产生到进程设置uid和gid-enable-ssl 激活SSL/TLS支持(mod_ssl)-enable-charset-lite 激活字符集转换-with-suexec-caller 允许用户调用SuExec-with-suexec-docroot 设置SuExec根目录3、 编译服务器程序 注意:时间较长#make4、 安装已编译完成的程序#make install4.4、httpd 服务的目录结构1、#ls /usr/localapache2binetcgamesincludeliblibexecsbinsharesrc2、#ls /usr/local/apache2bin运行和管理Web的执行程序等abapu-1-configdbmmanagehtcachecleanhtpasswdlogresolveapachectlapxsenvvarshtdbmhttpdrotatelogscheckgidapr-1-configenvvars-stdhtdigesthttxt2dbmcgi-binerroriconslib保存运行的库文件man保存httpd、apachectl等程序的man帮助文档modules保存动态加载的模块文件buildconf保存配置文件extrahttpd.confmagicmime.typesoriginalhtdocs文档根目录apache_pb22_ani.gifapache_pb22.pngapache_pb.pngapache_pb22.gifapache_pb.gifindex.htmlincludelogsmanual保存完整配置指南文档4.5、构建基本的可用的Web服务器1、 修改主配文件httpd.conf全局配置ServerN/设置主机域名(基于DNS访问)ServerRoot “/usr/local/apache2” /设置httpd服务的根目录Listen80/监听网络端口号User daemon/设置httpd进程的用户身份Group daemon/设置httpd进程的组身份ServerA/设置管理员联系邮箱DocumentRoot“/usr/local/apache2/htdocs”/设置网页文档根目录DirectoryIndex index.html index.php/设置网站默认搜引页(首页)ErrorLog logs/error_logLogLevel warn/设置记录日志的级别(Warn)CustomLog logs/access_log common/设置访问日志文件的路径和格式类型PidFile logs/httpd.pid /设置保存进程号PID的文件(位于apache根目录中)Timeout 300/设置Web与浏览器连接的超时秒数KeepAlive On /设置是否使用保持连接功能 (Off/On)MaxKeepAliveRequests 100 /设置允许响应的最大文件数KeepAliveTimeout 15 /设置保存连接的超时秒数Include conf/extra/httpd-vhosts.conf 特殊功能的配置目录区域设置 (系统根目录 “/”)Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all虚拟主机区域配置除去注释和空格#grep v “#”httpd.conf |grep v “$” httpd.conf 2、 检查httpd.conf文件的语法设置/usr/local/apache2/bin/apachectl t (Syntax OK)或/usr/local/apache2/bin/httpd t3、 启动、终止及重启httpd服务 (start stop restart)/usr/local/apache2/bin/apachectl start netstat anpt |grep : 80 4、 设置开机自启vi /etc/rc.d/rc.loacl 或 /etc/rc.local/usr/local/apache2/bin/apachectl start或#echo “/usr/local/apache2/bin/apachecctl” /etc/rc.local5、 故障排除1) 主机域名和服务器名不一致导致启动httpd服务非常慢出现提示信息:httpd: apr_sockaddr_info_get() failed for httpd: Could not reliably determine the Servers fully qualified domain name, using for ServerName 解决方案:ServerN /usr/local/apache2/conf/httpd.confHOSTNAME=/etc/sysconfig/ www/etc/hosts (映射记录)2) TCP 80端口已被占用提示信息: could not bind to address :80解决方案:netstat-anpt |grep : 80killall -9 httpd chkconfig level 35 httpd off/usr/local/apache2/bin/apachectl start或rpm方式卸载 6、 日志文件1) tail -2 /usr/local/apache2/logs/access_log 查看:指定时间指定IP客户机的访问动作 统计各时段的访问(awstats-6.9.tar.gz)例:68 - - 06/Mar/2009:18:5:34 +0800 “GET / HTTP/1.1” 304 -2) tail -2 /usr/local/apache2/logs/error_log例:Fri Mar 06 18:58:36 2009 notice caught SIGTERM,shutting downFri Mar 06 18:58:51 2009 notice Apache/2.2.9 (Unix) configured - resuming normal operations4.6、Web站点的典型应用1、性能测试1) ab -q c 并发请求数 n 总的请求数 http:/域名:端口/路径-q 不显示测试进度信息 注意:最后的“/”不能省略例:/usr/local/apache2/bin/ab q c 2000 n 4000 / 查看参数:Concurrency Level: 2000 并发请求数 Time taken for tests: 9.358806 seconds 消耗时间 Complete requests: 4000 完成请求数 Failed requests: 0 Write errors: 0 Total transferred: 1196874 bytes 网络传输量 HTML transferred: 179124 bytes HTML内容传输量 Requests per second: 427.40 #/sec (mean) 每秒响应请求数 Time per request: 4679.403 ms (mean) 平均请求响应时间 Time per request: 2.340 ms (mean,across all concurrent requests) Transfer rate: 123.80 Kbytes/sec received Connection Times (ms) min mean+/-sd median max连接时间统计信息2) 修改最大文件数限制 ulimit a |grep “open files” 查看 ulimit n 10000 修改 不更改使用AB可能出现的问题: Socket: Too many open files (24)2、 虚拟主机 (充分利用服务器的硬件资源,大大降低网站构建及运行成本)1) 基于域名(指定虚拟主机服务器IP地址)(1)、确定主机名、IP参数(2)、准备网页文件 #/usr/local/apache2/htdocs/ #mkdir sicom #echo “” sicom/index.html(3)、添加虚拟主机配置 #vi /usr/local/apache2/conf/httpd.conf NameVirtualHost 1:80 DocumentRoot /usr/local/apache2/htdocs/sicomServerName ErrorLog logs/.error.logCustomLog logs/.access.log combined (common没法统计日志记录) Server Admin (4)、/usr/local/apache2/bin/apachectl restart(5)、客户端访问测试 (可修改WINDOWSsystem32driversetchosts)2) 基于IP#vi /usr/local/apache2/conf/httpd.confDocumentRoot /usr/local/apache2/htdocs/sicomServerName ErrorLog logs/.error.logCustomLog logs/.access.log combined (common没法统计日志记录) Server Admin 3) 基于端口 (开监听端口) #vi /usr/local/apache2/conf/httpd.conf Listen 1:80 Listen 1:8080DocumentRoot /usr/local/apache2/htdocs/sicomServerName ErrorLog logs/.error.logCustomLog logs/.access.log combined (common没法统计日志记录) Server Admin DocumentRoot /usr/local/apache2/htdocs/sicomServerName ErrorLog logs/.error.logCustomLog logs/.access.log combined (common没法统计日志记录) Server Admin 3、 个人主页 (public_html)(1)、启用个人主页#vi /usr/local/apache2/conf/httpd.conf UserDir public_htmlOptions NoneAllowOverride NoneOrder allow,denyAllow from all(2)、建立测试文件#su si$mkdir public_html$echo “Sis Home Page” public_html/index.html $chmod o+x /home/si注意:宿主目录默认设置较严格的访问权限,需增加其他用户执行权限 (3)、/usr/local/apache2/bin/apachectl restart(4)、客户端访问:/si/4、 日志分析了解Web站点的访问情况(每天特定时间访问IP数、点击率等)1) 可Shell脚本统计2) Awstats使用的Perl语言,可分析Apache、Samba、Tomcat、Squid乃至Wins的ISS等 awstats-6.9.tar.gz#cd /usr/local/src/awstats/tools#./awstats_configure.p1(1)1、进入交互式界面 检查awstats的安装目录、httpd服务的配置文件路径(/usr/local/apache2/conf/httpd.conf)、日志记录格式 ( common combind )等 ( y )2、创建awstats 的配置文件 ( y )3、定义日志分析的目标网站名称 ( )4、定义awstats 配置文件的存放目录 (/etc/awstats)( Enter )5、添加cron (之后手动) (Enter)6、退出安装脚本(Enter)(2) vim /etc/awstats/.conf LogFile=”/usr/local/apach2/logs/.access.log” Lang=”cn” 或者auto DirData=”/usr/local/awstats/data” (3) 创建数据库存放目录、并更新 mkdir /var/lib/awstats perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl update -config=(4) cron计划任务 #crontab -e * */5 * * * /usr/bin/perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl update config=#service crond start#chkconfig level 35 crond on (5) 查看日志分析报告 (访问人次、网页数、文件数、字节) /awstats/awstats.pl?config= vi /usr/local/apach2/htdocs/sicom/aw.html 5、 访问控制1 基于用户 认证:识别用户身份过程 授权:允许特定用户访问特定区域信息的过程基本认证:不用预先配置摘要认证:编译Apache时预先配置“enable-auth-digest”(不是所有浏览器都支持) (1)、vim /usr/local/apache2/conf/httpd.conf (添加内容) AuthName “AWSTATS”受保护领域名称,弹出认证登录对话框中显示AuthType Basic 设置认证AuthUserFile /usr/local/awstats/wwwroot/.htpasswd(隐藏文件) 设置用于保存用户账号、密码的认证文件路径Require valid-user 授权给认证文件中的所有有效用户 (2)、创建存储认证用户账号及口令的文件#cd /usr/local/apache2/bin#./htpasswd c /usr/local/awstats/wwwroot/.htpasswd awuser 输入密码“-c” 新建认证文件 (3)、重启 /usr/local/apache2/bin/apachectl restart (4)、查看日志分析报告 (需要输入账户、密码) /awstats/awstats.pl?config=2 基于客户端地址 重启httpdOrder allow,deny : 拒绝所有没有被明确允许的客户端地址Order deny,allow : 允许所有没有被明确拒绝的客户端地址例:(1)、Order allow,deny Allow from all (2)、Order deny,allow Deny from Deny from /24 Allow from 4.7 安装管理MySQL数据库 (端口:3306)/downloads/mysql-5.0.56.tar.gz1、 创建运行数据库的系统用户、组#useradd M s /sbin/nologin mysql 2、 解压、与配置编译选项及编译、安装#./configure -prefix=/usr/local/mysql3、 建立配置文件#cp support-files/f/etc/f (适用于中等负载的数据库) 4、 初始化数据库#/usr/local/mysql/bin/mysql_install_db -user=mysql #chown -R root:mysql /usr/local/mysql/#chown R mysql /usr/local/mysql/var (数据文件存储目录)(初始化后,默认创建了三个数据库 test、mysql、information_schema)5、 调整lib库路径 (非标准的路径)#echo “/usr/local/mysql/lib/mysql” /etc/ld.so.conf#ldconfig6、 MySQL 启动控制 (1)、使用mysqld_safe脚本安全启动服务 #/usr/local/mysql/bin/mysqld_safe -user=mysql & #netstat ntpl |grep 3306 修改mysql端口 :vim /etc/fport = 3306 (2)将mysql添加为系统服务 (start、stop、restart) #cp support-files/mysql.server /etc/init.d/mysqld #chmod +x /etc/init.d/mysqld (mysqld: unrecognized service) #chkconfig add mysqld 系统自启 #chkconfig mysqld on(3) 设置MySQL程序的执行路径(为了执行mysql的等命令和脚本工具方便) #export PATH=$PATH:/usr/local/mysql/bin#echo “PATH=$PATH:/usr/local/mysql/bin” /etc/profile4.8 数据库的基本管理1、 登录、退出MySQL环境#mysql u root; (此root与系统不同)mysqlexit#mysqladmin u root password “pwd123” (设密码)#mysql u root -p2、 显示数据库结构1 查看数据库中的列表信息mysqlSHOW DATABASES; 2 查看数据库中的数据表信息mysqlUSE mysql;mysqlSHOW TABLES;每个数据表对应三个文件,后缀名分别是“.frm”、“.MYD”、“.MYI”3 显示数据表结构mysqlDESCRIBE 数据库名. 表名;4 数据库的创建与删除(1)、创建新的数据库 (足够权限、唯一 /usr/local/mysql/var)mysqlCREATE DATABASE 数据库名;(2)、创建新的数据表mysqlCREATE TABLE 表名 (字段定义 );例:mysqlCREATE TABLE users (user_name CHAR(30) NOT NULL ,user_passwd CHAR(20) NOT NULL DEFAULT 123456,PRIMARY KEY (user_name); (3)、删除一个数据表mysqlDROP TABLE 数据库名.表名; (4)、删除一个数据库mysqlDROP DATABASE 数据库名;5 数据录入与维护(1)、插入新的数据记录mysqlINSERT INTO 表名(字段1,字段2, ) VALUES(字段1的的值,字段2的值, );例:mysqlINSERT INTO auth.users(user_name,user_passwd) VALUES (zhangsan,ENCRYPT(123456);(2)、查询数据记录 mysqlSELECT 字段名1,字段名2 FROM 表名 WHERE 条件表达式;所有字段可以用通配符“*”,不指定条件可省略“WHERE”例:1)、mysqlSELECT * FROM auth.users;2)、mysqlSELECT user_name,user_passwd FROM auth.usersWHERE user_name=zhangsan;(3)、修改、更新数据记录mysqlUPDATE 表名 SET 字段名1=字段值1,字段名2=字段值2WHERE 条件表达式例:mysqlUPDATE auth.users SET user_passwd=ENCRYPT(pwd123)WHERE user_name=lisi;mysqlFLUSH PRIVILEGES;(4)、删除数据记录mysqlDELETE FROM 表名 WHERE 条件表达式;例:mysqlDELETE FROM auth.users WHERE user_name=lisi;mysqlDELETE FROM auth.users WHERE User=;6、维护数据库及用户权限 了解更多的MySQL语句:/doc/refman/5.0/en/(1)、数据库的备份 (结合cron)1)、直接备份/var/local/mysql/var2)、mysqldump u 用户名 p 密码 options 数据库名 表名 /备份路径/备份文件名 例:1)、#mysqldump u root p auth mysql-auth.sql#ll mysql-auth.sql2)、#mysqldump u root p mysql host user mysql.host-user.sql3)、#mysqldump u root p auth -all-databasesmysql-all.sql 可添加“-opt”选项进行优化,加快备份速度(2)、恢复数据库#mysql u root p 数据库名 /备份路径/备份文件名 例:1)、恢复所有数据库,不用指定数据库名# mysql u root p mysql-all.sql2)、恢复单个的数据库或表#mysql u root p auth mysql-auth.sql#mysql u root p mysql GRANT SELECT ON mysql.user TO siyuanlocalhost IDENTIFIED BY 123456;mysql GRANT ALL ON auth.* TO admin1localhostIDENEIFIED BY 123456; 2) 查看权限mysql SHOW GRANTS FOR 用户名域名或IP例:mysqlSHOW GRANTS FOR rootlocalhost;mysqlSHOW GRANTS FOR admin3%.;3)撤销权限mysqlREVOKE 权限列表 ON 数据库名.表名 FROM 用户名域名或IP例:mysqlREVOKE ALL ON auth.* FROM admin3%.;mysqlSHOW GRANTS FOR admin3%.;4.9、构建PHP环境 http:/www/.downloads/php-5.2.6.tar.gz 1、安装PHP软件包1)、解压释放2)、预先配置编译时的参数#./configure -perfix=/usr/local/php5 -enable-mbstring -with-apxs2=/usr/local/apache2/bin/apxs -with-mysql=/usr/local/mysql-with-config-file-path=/usr/local/php5-perfix:设置PHP的安装路径-enable-mbstring:设置PHP支持的多字节字符串-with-apxs2:设置Apache服务器提供的apxs模块支持程序的文件位置-with-mysql:设置MySQL服务器程序的安装位置-with-config-file-path:设置PHP程序的配置文件所在的位置3) 、编译安装 (等待时间较长)#make & make install4) 、复制php.ini的配置文件#cp php.ini.dist /usr/local/php5/php.ini3、 设置http.conf文件 (调整完成,重新启动httpd服务)#vi /usr/local/apache2/conf/httpd.confLoadModule php5_module modules/libphp5.so (自动生成)加载PHP程序对应的模块 模块名称 模块文件位置AddTypeapplication/x-httpd-php.phpAddType image/x-icon .iconDirectoryIndex index.php index.html (首页文件)ServerNDocumentRoot “/var/www/html”根据需要修改网页目录根目录调整Options NoneAllowOverride NoneOrder allow,denyAllow from all4、 测试PHP运行环境1)、测试PHP与Apache的协同工作#vi /usr/local/apache2/htdocs/test.php/test.php2)、测试PHP与MySQL的协同工作#vi /usr/local/apache2/htdocs/testdb.php/testdb.php4.10 使用LAMP架构部署Web应用系统1、 架设Discuz!论坛1)、建立数据库及用户#mysql u root p mysqlCREATE DATABASE bbsdb; mysqlGRANT all ON bbsdb.* TO runbbslocalhost IDENTIFIED BY pwd123;2)、解压#unzip Disuz_6.1.0_SC_UTF8.zip d discuz#mv discuz/upload /usr/local/apache2/htdocs/bbs3)、设置相关目录的属主#cd /usr/local/apache2/htdocs/bb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论