LAMP源码编译安装 (一)

 LAMP 具体包括:Linux操作系统,作为LAMP架构运行的基础;Apache网站服务器作为LAMP架构的前端;MySQL数据库服务器作为LAMP架构的后端;PHP(或Perl、Python)编写语言,作为三种开发动态网页的编程语言。LAMP平台具有成本低廉、可定制、易于开发、方便使用、安全和稳定等优势。

我们这里主要是

httpd 2.4.2 + mysql-5.5.24 + php-5.3.14编译安装过程:

 

 

  
  
  
  
  1.  apr-1.4.6.tar.bz2 
  2.  apr-util-1.4.1.tar.bz2 
  3.  
  4. 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

  

   
   
   
   
  1. 安装 par
  2. #tar xf apr-1.4.1.tar.bz2 
  3. #cd apq-1.4.1  
  4. #less README  查看安装说明   
  5.      ./buildconf 
  6.     ./configure --prefix=/desired/path/of/apr#安装目录  
  7.    make 
  8.    make test  这一步可以省略   
  9.    make install 
  10. # ./buildconf 
  11. # ./configure --prefix=/usr/local/apr 安装目录 
  12. # make  
  13. # make install  
  14.      
         
         
         
    1. 安装apr-util 
    2. #tar xf apr-util-1.4.1.tar.bz2 
    3. #cd apr-util-1.4.1 
    4. #./buildconf  --with-apr=/root/apr-1.4.6 apr的源码包的位置 
    5. #./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    6. ^ apr-util安装位置 ^ apr 安装位置  
    7. #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源 

 

   
   
   
   
  1. # tar xf httpd-2.4.2.tar.bz2 
  2. # cd httpd-2.4.2     
  3. # less INSTALL  
  4.  $ ./configure --prefix=PREFIX 
  5.      $ make 
  6.      $ make install 
  7.      $ PREFIX/bin/apachectl start 
  8.  
  9. # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd 
  10. --enable-so --enable-rewrite --with-zlib --with-pcre 
  11. --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util 
  12. --enable-modules=most  --enable-ssl    --enable-modules-shared=most  
  13. #make && make install  

  httpd.conf 配置文件解析 

   
   
   
   
  1. # cd /etc/httpd/ 
  2. # mv /etc/httpd/httpd.conf /etc/httpd/httpd.conf.bak 
  3. # grep -v '#' httpd.conf.bak |grep -v '^$' >httpd.conf 
  4. # vim httpd.conf 
  5. ServerRoot "/usr/local/apache"    //用于设置httpd服务器的根目录  
  6. Listen 80                      //用于设置监听的端口号 
  7. User daemon           //用于设置运行htttpd进程时的用户身份
  8. Group daemon              //用于设置运行htttpd进程时的组身份
  9. ServerAdmin [email protected]     //用于设置管理员的E-mail地址  
  10. ServerName www.magedu.com            //用于设置FQDN 
  11. DocumentRoot "/usr/local/apache/htdocs"    //用于设置网页文档根目录
  12. DirectoryIndex index.html index.php     //用于设置网站的默认首页
  13. ErrorLog "logs/error_log"    //用于设置错误日志文件的路径和文件名
  14. LogLevel warn       //用于设置记录的级别,默认为Warn(警告)
  15. CustomLog logs/access_log common      //用于设置访问日志文件的路径和格式类型
  16. PidFile logs/httpd.pid    //用于设置保存httpd服务器程序进和号(PID)文件
  17. Timeout 300    //用于设置服务器与浏览器之间网络连接的超时时间 
  18. KeepAlive On           //用于设置是否使用保持连接功能 
  19. MaxKeepAliveRequests 100    //用于设置客户端每次连接允许请求响应的最大文件数  
  20. KeepAliveTimeout 15    //用于设置保持连接的超时秒数  
  21. Include /etc/httpd/extra/proxy-html.conf     //用于包含另一个配置文件的内容  

   区域设置 

   
   
   
   
  1. <Directory />    定义区域开始 
  2.      Options FollowSymLinks  权限只作用于该区域
  3.      AllowOverride None 
  4.      Order deny,allow   
  5.      Deny from all     
  6. </Directory>       定义区域结束   

此时如果我们# httpd -l查看模块

-bash: httpd: command not found

命令找不到,所以我们要修改路径 

 

修改路径 :

   
   
   
   
  1. #vim /etc/profile 
  2.     PATH=/usr/local/apache/bin:$PATH 永久有效 
  3. #source /etc/prifile  但不建议这样做 这样做 值会重复   
  4. #export PATH=/usr/local/apache/bin:$PATH  这样也可以立即生效  

启动服务:

  # /usr/local/apache/bin/apachectl start 无任何信息

  # netstat -tnlp   80端口开启,说明服务启动 

 

开机自动启动

 

   
   
   
   
  1. 1、vim /etc/rc.local       
  2.      /usr/local/apache/bin/apachectl start  
  3. 开机可以自动启动 但关闭 就是要非法关闭  
  4.       
  5. 2、/etc/sysconfig/httpd 复制一份修改一下  
  6. apachectl=/usr/local/apache/bin/apachectl 
  7. httpd=${HTTPD-/usr/local/apache/bin/httpd} 
  8. prog=httpd 
  9. pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid} 
  10. check13()这个函数删除 服务不是1.3  
  11.  
  12. 4、#cp httpd /etc/rc.d/init.d 
  13. #chmod +x /etc/rc.d/init.d/httpd   
  14. #chkconfig --add httpd 加到服务列表 
  15. #chkconfig --list httpd 查看 一下  
  16. #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的  基于主机名的  

  

 

   
   
   
   
  1.    vim /etc/htttpd/httpd.conf 编辑主配置文件  
  2. #DocumentRoot "/usr/local/apache/htdocs" 把这一行注释掉  
  3. Include /etc/httpd/extra/httpd-vhosts.conf 把这一项启用  
  4.  1、监听在不同的端口  
  5.  
  6.    Listen 80 
  7.    Listen 8080  监听那个端口  就写哪个端口  
  8.    <VirtualHost *:80> 
  9.     ServerAdmin [email protected] 
  10.     DocumentRoot /www/www.a.html/     
  11.     ServerName www.a.com 
  12. </VirtualHost> 
  13.  <VirtualHost *:8080> 
  14.     ServerAdmin [email protected] 
  15.     DocumentRoot /www/www.b.html/     
  16.     ServerName www.b.com 
  17. </VirtualHost> 
  18.  
  19. 2、监听不同IP 的同一个端口  
  20. <VirtualHost 172.16.2.1:80> 
  21.     ServerAdmin [email protected] 
  22.     DocumentRoot /www/www.a.html/     
  23.     ServerName www.a.com 
  24. </VirtualHost> 
  25. <VirtualHost 192.168.1.102:80> 
  26.     ServerAdmin [email protected] 
  27.     DocumentRoot /www/www.b.html/ 
  28.     ServerName www.b.com 
  29.     Alias /a   "/www/www.a.html" 这是路径别名  http://192.168.1.102/a 访问的是 www.a.com  
  30. </VirtualHost> 
  31.                  
  32.  
  33. 3、基于主机名                  
  34. NameVirtualHost *:80  这一行启用 而且和下面的一样 *:80 
  35. 同一个IP同一个端口  
  36.     
  37.  <VirtualHost *:80> 
  38.     ServerAdmin [email protected] 
  39.     DocumentRoot /www/www.a.html/ 
  40.     ServerName www.a.com 
  41. </VirtualHost> 
  42. <VirtualHost *:80> 
  43.     ServerAdmin [email protected] 
  44.     DocumentRoot /www/www.b.html/ 
  45.     ServerName www.b.com 
  46.     ServerAlias bbs.b.com  别名   
  47.     Alias /a   "/www/www.c.html" 
  48. </VirtualHost>   

查看服务器的状态信息 

 

   
   
   
   
  1. 1、# vim httpd.conf   
  2. Include /etc/httpd/extra/httpd-info.conf 启用这一行  
  3.  
  4. 2、# vim extra/httpd-info.conf   
  5. <Location /server-status> 
  6.     SetHandler server-status 
  7.     Require ip 172.16.1.1 
  8. </Location> 
  9. <Location /server-info> 
  10.     SetHandler server-info 
  11.     Require ip 172.16.1.1  加权限 只有这一个ip可以访问
  12. </Location> 
  13.  
  14. 3、# httpd -t 测试配置文件语法 
  15. # apachectl restart 重启服务  
  16. 4、测试  
  17. http://www.magedu.com/server-status  
  18.  
  19.  不应该让所有人都可以看到 只允许某个IP 地址访问  

man 的使用 

 

   
   
   
   
  1. # vim /etc/man.config  
  2. MANPATH /usr/local/apache/man #加入这一行 

库文件的使用

 

   
   
   
   
  1. #vim  /etc/ld.so.conf/apache.conf 
  2.   /usr/local/apache/lib # 把apache的库文件地址写在这  
  3.  
  4. #ldconfig # 让系统重新读取一下 库文件   
  5.       开机的时候系统就统计过库文件  放在 /etc/ld.so.cache   

头文件的输出

 

   
   
   
   
  1. #ln -sv /usr/local/apache/include /usr/include/httpd 创建一个连接  
  2.   通过 /usr/include/httpd 这个路径可以访问到 apache的头文件   就可以  

 

OK!apache 的基本知识就先回顾到此,更多内容切等下回分析》》》》》》》》》》

 

 

 

 

 


你可能感兴趣的:(httpd,ab,apr)