Chinaunix首页 | 论坛 | 博客
  • 博客访问: 665165
  • 博文数量: 209
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 326
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 09:29
文章分类

全部博文(209)

文章存档

2015年(6)

2014年(40)

2013年(154)

2012年(11)

我的朋友

分类: LINUX

2014-04-03 18:55:53

LAMP的理解:

    LAMP:是Linux+Apache+Mysql+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.



第一部分: 编译安装过程的顺序: httpd 2.4.9 + mysql-5.5.33 + php-5.4.26:


一、安装mysql-5.5.33:

前提:

    准备好开发包以及依赖包并且安装好.

1.准备数据存放的文件系统:

    新建一个逻辑卷,并将其挂载至特定目录即可。

    这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。

1).创建分及/data目录:

wKiom1M7CqLx_4DEAAFYcui7UIY074.jpg

2).创建LVM(方便以后开机不足时扩展.)

3).格式化文件系统且配置为开机自动挂载:

4).创建mydata目录,且修改目录的属主属组:

2.新建用户以安全方式运行进程:

3.安装并初始化mysql-5.5.33:

1).解压安装包且创建软链接(方便以后升级):

2).初始化系统库:

2.为mysql提供sysv服务脚本:

3.添加至服务列表:

4.提供配置文件(我的是双核的,所以改为4):

5.启动mysqld服务:

6.查看套接字文件:

注意rpm包安装时路径为:/var/lib/mysql.

7.如何连接mysql呢??

1).修改PATH环境变量,让系统可以直接使用mysql的相关命令:

2).连接到mysql上查看版本:

3).删除匿名用户:

-->如果不确定,就先查看下:

4).修改密码:

Ⅰ.一次修改一个密码:

Ⅱ.修改全部用户的密码:

Ⅲ.测试登陆:

Ⅳ.在家目录下创建隐藏文件.my.cnf,(不用手动输入密码,在连接mysql时自动连接.):

8.导出库文件、头文件:

二、编译安装apache;


1.解决依赖关系:

    httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级.

        升级方式有两种: 一种是通过源代码编译安装,一种是直接升级rpm包.

    --> 这里选择使用编译源代码的方式进行.

1).安装pcre-devel包(开发包组件)-> httpd-2.4.9编译过程也要依赖于pcre-devel软件包,需要事先安装,此软件包系统光盘自带:

2.安装apr、apr-util:

1).编译安装apr-1.5.0:

2).编译安装apr-util-1.5.3:

3.编译安装httpd-2.4.9:

1).安装:


点击(此处)折叠或打开

  1. [root@www ~]# tar xf httpd-2.4.9.tar.bz2
  2. [root@www ~]# cd httpd-2.4.9
  3. [root@www httpd-2.4.9]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --with-zlib --with-pcre --enable-rewrite --with-apr=/usr/local/apr --with-apr -util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=event
  4. [root@www httpd-2.4.9]# make && make install
补充:
(1)构建MPM为静态模块
    在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。
(2)构建 MPM 为动态模块
    在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。


2).提供SysV服务脚本/etc/rc.d/init.d/httpd24,内容如下:

--->如果没有脚本的话就提供,如下:


点击(此处)折叠或打开

  1. [root@www ~]# vim /etc/rc.d/init.d/httpd24
  2. #!/bin/bash
  3. #
  4. # httpd Startup script for the Apache HTTP Server
  5. #
  6. # chkconfig: - 85 15
  7. # description: Apache is a World Wide Web server. It is used to serve \
  8. # HTML files and CGI.
  9. # processname: httpd
  10. # config: /etc/httpd/conf/httpd.conf
  11. # config: /etc/sysconfig/httpd
  12. # pidfile: /var/run/httpd.pid
  13. # Source function library.
  14. . /etc/rc.d/init.d/functions
  15. if [ -f /etc/sysconfig/httpd ]; then
  16.         . /etc/sysconfig/httpd
  17. fi
  18. # Start httpd in the C locale by default.
  19. HTTPD_LANG=${HTTPD_LANG-"C"}
  20. # This will prevent initlog from swallowing up a pass-phrase prompt if
  21. # mod_ssl needs a pass-phrase from the user.
  22. INITLOG_ARGS=""
  23. # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
  24. # with the thread-based "worker" MPM; BE WARNED that some modules may not
  25. # work correctly with a thread-based MPM; notably PHP will refuse to start.
  26. # Path to the apachectl script, server binary, and short-form for messages.
  27. apachectl=/usr/local/apache/bin/apachectl
  28. httpd=${HTTPD-/usr/local/apache/bin/httpd}
  29. prog=httpd
  30. pidfile=${PIDFILE-/var/run/httpd.pid}
  31. lockfile=${LOCKFILE-/var/lock/subsys/httpd}
  32. RETVAL=0
  33. start() {
  34.         echo -n $"Starting $prog: "
  35.         LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
  36.         RETVAL=$?
  37.         echo
  38.         [ $RETVAL = 0 ] && touch ${lockfile}
  39.         return $RETVAL
  40. }
  41. stop() {
  42.   echo -n $"Stopping $prog: "
  43.   killproc -p ${pidfile} -d 10 $httpd
  44.   RETVAL=$?
  45.   echo
  46.   [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
  47. }
  48. reload() {
  49.     echo -n $"Reloading $prog: "
  50.     if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
  51.         RETVAL=$?
  52.         echo $"not reloading due to configuration syntax error"
  53.         failure $"not reloading $httpd due to configuration syntax error"
  54.     else
  55.         killproc -p ${pidfile} $httpd -HUP
  56.         RETVAL=$?
  57.     fi
  58.     echo
  59. }
  60. # See how we were called.
  61. case "$1" in
  62.   start)
  63.   start
  64.   ;;
  65.   stop)
  66.   stop
  67.   ;;
  68.   status)
  69.         status -p ${pidfile} $httpd
  70.   RETVAL=$?
  71.   ;;
  72.   restart)
  73.   stop
  74.   start
  75.   ;;
  76.   condrestart)
  77.   if [ -f ${pidfile} ] ; then
  78.     stop
  79.     start
  80.   fi
  81.   ;;
  82.   reload)
  83.         reload
  84.   ;;
  85.   graceful|help|configtest|fullstatus)
  86.   $apachectl $@
  87.   RETVAL=$?
  88.   ;;
  89.   *)
  90.   echo $"Usage: $prog {start|stop|restart|condrestart|reload|status| 接下
  91. fullstatus|graceful|help|configtest}"
  92.   exit 1
  93. esac
  94. exit $RETVAL
3).加入服务列表:


4.提供PATH环境变量:

5.修改hosts文件(免的在本地启动时会报错):

6.只要是编译模块就需要它:

7. 编辑apache的主配置文件:

8.启动httpd24,并测试访问默认页面:

1).启动服务:

2).查看80端口是否启动:

点击(此处)折叠或打开

  1. [root@www init.d]# ss -tunlp | grep :80
  2. tcp LISTEN 0 128 :::80 :::* users:(("httpd",57827,4),("httpd",57829,4),("httpd",57857,4),("httpd",57858,4))
  3. users:(("httpd",57827,4),("httpd",57829,4),("httpd",57857,4),("httpd",57858,4))
  4. [root@www init.d]
3).测试访问:



三、编译安装php-5.4.26:


1.解决依赖关系->配置好yum;

2.编译安装php-5.4.26:

1).安装:

点击(此处)折叠或打开

  1. [root@www ~]# tar xf php-5.4.26.tar.bz2
  2. [root@www ~]# cd php-5.4.26
  3. [root@www php-5.4.26]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
  4. [root@www php-5.4.26]# make && make install
2).参数介绍:

注意:

说明:
1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。
2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

3.为php提供配置文件:

1).关于 php.ini:

2).提供配置文件(这里没有编辑):

4.编辑apache配置文件httpd.conf,以apache支持php:

1).编辑 vim /etc/httpd24/httpd.conf:

2).重启httpd24:

3).查看端口:

5.编辑测试页面index.php,如下--> (与MySQL 建立连接会话如下):

1).第一次(编辑测试页面):

2).第一次(测试访问: ):

3).第二次(编辑页面测试脚本):

4).第二次(测试访问: ):

5).第三次测试(关闭mysql服务):

6).第三次(访问测试: )


四、安装xcache,为php加速:

简单理解:

        XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载

1.安装 phpMyAdmin-4.0.5:

1).解压文件:

2).将文件剪切至/usr/local/apache/htdocs/pma

3).访问: pma/

4).利用ab来做压力测试(安装xcache的php加速器之前, ab测试结果如下):

(1) 测试前 top的使用情况:

(2)压力测试的结果:

(3)压力测试进行时截图,与上面的图片做对比:

(4).压力测试进行时phpMyAdmin的截图(能打开,只是得等待吆):

2.安装xcache,为php加速:

1).安装xcache-3.0.3(用本地的解释器探测模块所依赖的版本号、扩展API等,生成序列号标记,而后才能编译):

注意:

2).在访问: -->并且找到xcache  :

3).在访问: pma(这里没有做压力测试呢)

4).再次执行ab做压力测试(这里就不上图了):

5).做了Xcache之后性能按理来说会提升 3 倍左右的.这里也就没有上CPU与压力测试的后图了.



接这篇博客: http://blog.chinaunix.net/uid-29584738-id-4193960.html






阅读(1513) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~