LAMP 具体包括:Linux操作系统,作为LAMP架构运行的基础;Apache网站服务器作为LAMP架构的前端;MySQL数据库服务器作为LAMP架构的后端;PHP(或Perl、Python)编写语言,作为三种开发动态网页的编程语言。LAMP平台具有成本低廉、可定制、易于开发、方便使用、安全和稳定等优势。
我们这里主要是
httpd 2.4.2 + mysql-5.5.24 + php-5.3.14编译安装过程:
- apr-1.4.6.tar.bz2
- apr-util-1.4.1.tar.bz2
- httpd-2.4.2.tar.bz2
一、编译安装apache (httpd 2.4.2)
Httpd.apache.org 查看最新版本
1、解决依赖关系
(编译之前,我们要确保安装编译的环境,
#yum grouplist Development Tools Development Libraries 确保这两个组安装
以及调整时间 #hwclock -s )
Httpd-2.4.2 需要较新版本的apr和apr-util,因此要对其升级。
方法:⑴ 源代码编译安装
⑵ 直接升级安装 “rpm -Uvh”
我们这里使用源码编译安装
需要两个源码包
apr-1.4.6.tar.bz2
apr-util-1.4.1.tar.bz2
- 安装 par
- #tar xf apr-1.4.1.tar.bz2
- #cd apq-1.4.1
- #less README 查看安装说明
- ./buildconf
- ./configure --prefix=/desired/path/of/apr#安装目录
- make
- make test 这一步可以省略
- make install
- # ./buildconf
- # ./configure --prefix=/usr/local/apr 安装目录
- # make
- # make install
- 安装apr-util
- #tar xf apr-util-1.4.1.tar.bz2
- #cd apr-util-1.4.1
- #./buildconf --with-apr=/root/apr-1.4.6 apr的源码包的位置
- #./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
- ^ apr-util安装位置 ^ apr 安装位置
- #make &&make install
2、安装httpd 2.4.2 版本
httpd-2.4.2编译过程也要依赖于pcre-devel软件包 所以要先确认pcre-devel装没有:
#rpm -q pcre-devel 查询系统安装没有
#yum -y install pcre-devel 先配置好yum源
- # tar xf httpd-2.4.2.tar.bz2
- # cd httpd-2.4.2
- # less INSTALL
- $ ./configure --prefix=PREFIX
- $ make
- $ make install
- $ PREFIX/bin/apachectl start
- # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd
- --enable-so --enable-rewrite --with-zlib --with-pcre
- --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
- --enable-modules=most --enable-ssl --enable-modules-shared=most
- #make && make install
httpd.conf 配置文件解析
- # cd /etc/httpd/
- # mv /etc/httpd/httpd.conf /etc/httpd/httpd.conf.bak
- # grep -v '#' httpd.conf.bak |grep -v '^$' >httpd.conf
- # vim httpd.conf
- ServerRoot "/usr/local/apache" //用于设置httpd服务器的根目录
- Listen 80 //用于设置监听的端口号
- User daemon //用于设置运行htttpd进程时的用户身份
- Group daemon //用于设置运行htttpd进程时的组身份
- ServerAdmin web@zpp.com //用于设置管理员的E-mail地址
- ServerName www.magedu.com //用于设置FQDN
- DocumentRoot "/usr/local/apache/htdocs" //用于设置网页文档根目录
- DirectoryIndex index.html index.php //用于设置网站的默认首页
- ErrorLog "logs/error_log" //用于设置错误日志文件的路径和文件名
- LogLevel warn //用于设置记录的级别,默认为Warn(警告)
- CustomLog logs/access_log common //用于设置访问日志文件的路径和格式类型
- PidFile logs/httpd.pid //用于设置保存httpd服务器程序进和号(PID)文件
- Timeout 300 //用于设置服务器与浏览器之间网络连接的超时时间
- KeepAlive On //用于设置是否使用保持连接功能
- MaxKeepAliveRequests 100 //用于设置客户端每次连接允许请求响应的最大文件数
- KeepAliveTimeout 15 //用于设置保持连接的超时秒数
- Include /etc/httpd/extra/proxy-html.conf //用于包含另一个配置文件的内容
区域设置
- <Directory /> 定义区域开始
- Options FollowSymLinks 权限只作用于该区域
- AllowOverride None
- Order deny,allow
- Deny from all
- </Directory> 定义区域结束
此时如果我们# httpd -l查看模块
-bash: httpd: command not found
命令找不到,所以我们要修改路径
修改路径 :
- #vim /etc/profile
- PATH=/usr/local/apache/bin:$PATH 永久有效
- #source /etc/prifile 但不建议这样做 这样做 值会重复
- #export PATH=/usr/local/apache/bin:$PATH 这样也可以立即生效
启动服务:
# /usr/local/apache/bin/apachectl start 无任何信息
# netstat -tnlp 80端口开启,说明服务启动
开机自动启动
- 1、vim /etc/rc.local
- /usr/local/apache/bin/apachectl start
- 开机可以自动启动 但关闭 就是要非法关闭
- 2、/etc/sysconfig/httpd 复制一份修改一下
- apachectl=/usr/local/apache/bin/apachectl
- httpd=${HTTPD-/usr/local/apache/bin/httpd}
- prog=httpd
- pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
- check13()这个函数删除 服务不是1.3
- 4、#cp httpd /etc/rc.d/init.d
- #chmod +x /etc/rc.d/init.d/httpd
- #chkconfig --add httpd 加到服务列表
- #chkconfig --list httpd 查看 一下
- #chkconfig httpd on 在2345级别开机启动
#service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
测试web服务器的性能
Httpd服务自带了一个压力测试工具AB(Apache Benchmark,Apache基准测试工具),用于检测Web站点的性能表现,如并发平均响应时间、速度以及并发连接处理能力等。AB命令工具位于安装目录中的“bin/”文件夹下,使用该命令的简单格式如下:
Ab [-q] –c 并发请求数 –n 总的请求数 [http://] 域名 [:端口]/路径
# ab -c 10 -n 100 http://www.magedu.com/
构建虚拟web主机 :
虚拟Web主机指的是在同一台服务器中运行多个Web站点的应用,其中的每一个站点并不独立占用一台真正的计算机。
有三种构建方法 :基于端口的 基于ip的 基于主机名的
- vim /etc/htttpd/httpd.conf 编辑主配置文件
- #DocumentRoot "/usr/local/apache/htdocs" 把这一行注释掉
- Include /etc/httpd/extra/httpd-vhosts.conf 把这一项启用
- 1、监听在不同的端口
- Listen 80
- Listen 8080 监听那个端口 就写哪个端口
- <VirtualHost *:80>
- ServerAdmin webmaster@
- DocumentRoot /www/www.a.html/
- ServerName
- </VirtualHost>
- <VirtualHost *:8080>
- ServerAdmin webmaster@
- DocumentRoot /www/www.b.html/
- ServerName
- </VirtualHost>
- 2、监听不同IP 的同一个端口
- <VirtualHost 172.16.2.1:80>
- ServerAdmin webmaster@
- DocumentRoot /www/www.a.html/
- ServerName
- </VirtualHost>
- <VirtualHost 192.168.1.102:80>
- ServerAdmin webmaster@
- DocumentRoot /www/www.b.html/
- ServerName
- Alias /a "/www/www.a.html" 这是路径别名 http://192.168.1.102/a 访问的是
- </VirtualHost>
- 3、基于主机名
- NameVirtualHost *:80 这一行启用 而且和下面的一样 *:80
- 同一个IP同一个端口
- <VirtualHost *:80>
- ServerAdmin webmaster@
- DocumentRoot /www/www.a.html/
- ServerName
- </VirtualHost>
- <VirtualHost *:80>
- ServerAdmin webmaster@
- DocumentRoot /www/www.b.html/
- ServerName
- ServerAlias 别名
- Alias /a "/www/www.c.html"
- </VirtualHost>
查看服务器的状态信息
- 1、# vim httpd.conf
- Include /etc/httpd/extra/httpd-info.conf 启用这一行
- 2、# vim extra/httpd-info.conf
- <Location /server-status>
- SetHandler server-status
- Require ip 172.16.1.1
- </Location>
- <Location /server-info>
- SetHandler server-info
- Require ip 172.16.1.1 加权限 只有这一个ip可以访问
- </Location>
- 3、# httpd -t 测试配置文件语法
- # apachectl restart 重启服务
- 4、测试
- http://www.magedu.com/server-status
- 不应该让所有人都可以看到 只允许某个IP 地址访问
man 的使用
- # vim /etc/man.config
- MANPATH /usr/local/apache/man #加入这一行
库文件的使用
- #vim /etc/ld.so.conf/apache.conf
- /usr/local/apache/lib # 把apache的库文件地址写在这
- #ldconfig # 让系统重新读取一下 库文件
- 开机的时候系统就统计过库文件 放在 /etc/ld.so.cache
头文件的输出
- #ln -sv /usr/local/apache/include /usr/include/httpd 创建一个连接
- 通过 /usr/include/httpd 这个路径可以访问到 apache的头文件 就可以
OK!apache 的基本知识就先回顾到此,更多内容切等下回分析》》》》》》》》》》