首页 > 代码库 > 简单编译LAMP

简单编译LAMP

前期准备,需要安装开发工具包

安装方法:yum groupinstall “Development tools”

一、httpd

   1、安装apr

    软件包:apr-1.4.6.tar.bz2

  1. [root@client httpd]# tar xf apr-1.4.6.tar.bz2
  2. [root@client httpd]# cd apr-1.4.6
  3. [root@client apr-1.4.6]# ./configure --prefix=/usr/local/apr14
  4. [root@client apr-1.4.6]# make && make install

2、安装apr-until

   软件包:apr-util-1.4.1.tar.bz2

  1. [root@client httpd]# tar xf apr-util-1.4.1.tar.bz2
  2. [root@client httpd]# cd apr-util-1.4.1
  3. [root@client apr-util-1.4.1]# ./configure --prefix=/usr/local/apr-until --with-apr=/usr/local/apr14
  4. [root@client apr-util-1.4.1]#make && make install

3、安装httpd

    软件包:httpd-2.4.6.tar.bz2

  1. [root@client httpd]# yum install pcre-devel     # 还需要pcre-devel包的支持,提前安装下
  2. [root@client httpd]# yum install openssl-devel     #因为启用了openssl,所以还需要安装openssl-devel包。
  1. [root@client httpd]# tar xf httpd-2.4.6.tar.bz2
  2. [root@client httpd]# cd httpd
  3. [root@client httpd]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi
  4. --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most
  5. --enable-mpms-shared=all --with-mpm=event
  6. [root@client httpd]# make && make install

配置可以由系统控制的服务脚本,可以用其他机器安装过的文件来替代,只需修改一下路径即可。我就用之前安装过httpd服务的脚本复制到/etc/init.d/httpd,

然后稍微做些修改。主要是这个路径,改成我们自己的即可。

  1. # Path to the apachectl script, server binary, and short-form for messages.
  2. apachectl=/usr/local/apache/bin/apachectl
  3. httpd=${HTTPD-/usr/local/apache/bin/httpd}
  4. prog=httpd
  5. pidfile=${PIDFILE-/var/run/httpd.pid}
  6. lockfile=${LOCKFILE-/var/lock/subsys/httpd}

特别要提到的就是这个Pid文件,此文件默认在安装目录下的/logs/中。如果想修改需要更改如果几个位置。

首先要修改httpd-mpm.conf里的pidfile位置

  1. [root@client php-5.5.10]# vim /etc/httpd24/extra/httpd-mpm.conf
  2. #
  3. # Server-Pool Management (MPM specific)
  4. #
  5. #
  6. # PidFile: The file in which the server should record its process
  7. # identification number when it starts.
  8. #
  9. # Note that this is the default PidFile for most MPMs.
  10. #
  11. PidFile "/var/run/httpd.pid"

之后还要在主配置文件(httpd.conf)中启用httpd-mpm.conf

  1. [root@client php-5.5.10]# vim /etc/httpd24/httpd.conf
  2. # Server-pool management (MPM specific)
  3. Include /etc/httpd24/extra/httpd-mpm.conf

建立头文件链接

  1. [root@client apache]# ln -sv /usr/local/apache/include /usr/include/httpd24
  2. `/usr/include/httpd24‘ -> `/usr/local/apache/include‘

配置启动服务脚本,可以直接获取其他机器用yum安装的脚本,将httpd文件复制到/etc/init.d下。然后加以修改

  1. # Path to the apachectl script, server binary, and short-form for messages.
  2. apachectl=/usr/local/apache/bin/apachectl #把路径修改成自己的即可
  3. httpd=${HTTPD-/usr/local/apache/bin/httpd}    #把路径修改成自己的即可
  4. prog=httpd
  5. pidfile=${PIDFILE-/var/run/httpd.pid}   #pid文件位置如需要修改,在/etc/httpd24/extra/httpd-mpm.conf中修改
  6. lockfile=${LOCKFILE-/var/lock/subsys/httpd}   #此处保持即可
  7. RETVAL=0
  8. STOP_TIMEOUT=${STOP_TIMEOUT-10}

如需要改变pid文件的位置,则修改httpd-mpm.conf,修改好后,还需要再主配置文件中启用此配置文件

  1. PidFile "/var/run/httpd.pid"
  2. # Server-pool management (MPM specific)
  3. Include /etc/httpd24/extra/httpd-mpm.conf    #去掉httpd.conf文件中此行前面的#号注释

至此httpd安装结束。

二、安装二进制mysql

软件包:mysql-5.6.17-linux-glibc2.5-x86_64

  1. [root@client ~]# groupadd mysql
  2. [root@client ~]# useradd -g mysql -r -s /sbin/nologin -d /mydata/data
  3. [root@client ~]# mkdir -pv /mydata/data
  4. [root@client ~]# chown mysql.mysql /mydata/data/ -R
  5. [root@client ~]# tar xf mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
  6. [root@client local]# ln -sv mysql-5.6.17-linux-glibc2.5-x86_64 mysql
  7. `mysql‘ -> `mysql-5.6.17-linux-glibc2.5-x86_64‘
  8. [root@client local]# cd mysql
  9. [root@client mysql]# chown -R mysql.mysql .
  10. [root@client mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
  11. [root@client mysql]# chown -R root .
  12. [root@client mysql]# cp my.cnf /etc/my.cnf
  13. [root@client mysql]# vim /etc/my.cnf
  14. # These are commonly set, remove the # and set as required.
  15. basedir = /usr/local/mysql
  16. datadir = /mydata/data
  17. [root@client mysql]# cp support-files/mysql.server /etc/init.d/mysqld

    service mysqld start 尝试启动看看是否成功。

三、安装PHP

软件包:php-5.5.10.tar.bz2 libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm

如果要支持crypt需要安装如下两个包,系统源里没有自带,需要自行下载安装

rpm -ivh libmcrypt-2.5.7-5.el5.i386.rpm libmcrypt-devel-2.5.7-5.el5.i386.rpm

  1. [root@client PHP5.5]# tar xf php-5.5.10.tar.bz2
  2. [root@client PHP5.5]# cd php-5.5.10
  3. [root@client php-5.5.10]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl
  4. --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir
  5. --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets
  6. --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc
  7. --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
  8. #这里补充下,我这个编译参数指定了bz2压缩选项,还要安装一下bz2-devel包,系统源自带yum下即可。
  9. 还有一点我httpd选择了event模式,所以php要指定able-maintainer-zts此参数来配合使用。
  10. [root@client php-5.5.10]# make && make install
  11. [root@client php-5.5.10]# cp php.ini-production /etc/php.ini
  12. [root@client php-5.5.10]# vim /etc/httpd24/httpd.conf              #编辑此文件增加对php网页的支持
  13. # If the AddEncoding directives above are commented-out, then you
  14. # probably should define those extensions to indicate media types:
  15. #
  16. AddType application/x-httpd-php .php                   #增加此行
  17. AddType application/x-httpd-php-source .phps           #增加此行
  18. <IfModule dir_module>
  19. DirectoryIndex index.html index.php                    #增加index.php
  20. </IfModule>

编辑一个测试网页,用浏览器访问以便查看是否成功。

  1. [root@client htdocs]# cd /usr/local/apache/htdocs/
  2. [root@client htdocs]# mv index.html index.php     #这是一个查看php内部信息的网页代码。
  3. <html>
  4. <?php
  5. phpinfo();
  6. ?>
  7. </html>
  8. [root@client htdocs]# vim index.php               #这是查看mysql能否连接的网页代码。
  9. <html>
  10. <?php
  11. $link=mysql_connect(localhost,root,‘‘);
  12. if ($link)
  13. echo "Sueccess...";
  14. else
  15. echo "Failure...";
  16. ?>
  17. </html>

四、xcache

1.介绍:

动态网页的访问速度要比静态网页低很多,所以一般都会再加一个缓存软件来提高访问的效率。xcache就是这样一个软件。

    我笼统的描述下他都做了些什么,这个软件是针对php来工作的。所以要说下php是怎么来进行工作的,我只是简单描绘一下。


  PHP执行的过程,顺序向下执行。

1. Scanning  ,将PHP代码通过词法分析器转换为语言片段(Tokens)
2. Parsing , 将Tokens转换成简单而有意义的表达式
3. Compilation , 将表达式编译成Opocdes
4. Execution , 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。

此过程内容引用自《深入理解PHP代码的执行的过程》

有兴趣了解的朋友可以访问此站点http://www.php-internals.com/


    我们的xcache就是缓存了第三步中的opcodes,使相同的访问不必进行前三步工作,以提高效率。接下来开始安装。

  2.安装

软件包:xcache-3.1.0.tar.gz (因为我用的PHP是5.5.X的版本,所以老的xcache安装会报错。特别去下载了一个最新版的。)

  1. [root@client ~]# tar xf xcache-3.1.0.tar.gz
  2. [root@client ~]# cd xcache-3.1.0
  3. [root@client xcache-3.1.0]# /usr/local/php/bin/phpize
  4. [root@client xcache-3.1.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
  5. [root@client xcache-3.1.0]#make && make install
  6. [root@client xcache-3.1.0]# mkdir /etc/php.d
  7. [root@client xcache-3.1.0]# cp xcache.ini /etc/php.d/

    有些教程还写着自修改zend_extension=“XXX”,从3.0版开始xcache已经不使用这种机制了。到此即安装结束,重启httpd服务,查看phpinfo界面(php安装中有写),看看xcache是否加载成功。

本文出自 “心静自然通达” 博客,请务必保留此出处http://bluezombie.blog.51cto.com/1444792/1437610