centos6上超详细LAMP编译安装过程以及所遇到的问题

  • Post author:
  • Post category:其他




本文分为三大部分:

一、centos6编译安装Apache(httpd2.4以上版本);

二、二进制包安装mariadb;

三、centos6编译安装php并安装xcache为其加速;



一、centos6编译安装Apache(httpd2.4以上版本)

1、安装组开发环境和工具。

2、编译安装apr

3、编译安装apr-util。

4、编译安装httpd2.4

(1)解压httpd2.4,并安装httpd2.4,安装命令如下:

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event


命令的说明:

【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)导出环境变量,在/etc/profile.d/下创建httpd.sh,内容如下。httpd命令便可以使用如httpd -l、httpd -M。

(3)配置服务脚本,可将httpd2.2版本的服务脚本复制到/etc/init.d/下,修改如下图。修改httpd服务脚本的权限并将服务添加至服务列表中。

此处遇到的错误说明:

将服务脚本添加到服务列表之后使用service httpd start 启动httpd,然后出现如下错误,httpd 已死,但是subsys被锁(httpd dead but subsys locked)。这是因为服务脚本中的pidfile指向的路径不正确,将其修改为pidfile=/usr/local/apache/logs/httpd.pid即可。


通过上述的步骤即可在centos6编译安装完成httpd2.4版本。



二、二进制包安装mariadb

1、解压mariadb安装包

2、在/usr/local/下将mariadb软至链接mysql。

3、创建mysql用户名和mysql组,并修改mysql下的属主至root,属组至mysql。

4、安装mariadb,指定用户和数据存放路径。

5、复制服务脚本至/etc/init.d/下,并添加至服务列表中。

6、复制配置文件至/etc/mysql/my.cnf(mysql目录需要自己创建),并修改添加内容至配置文件,如下。

7、使用service mysqld start 启动mysql。

8、刚刚安装好的mariadb是没有密码的,直接用mysql命令可进入程序,因此需要执行下面命令进行安全初始化。

9、初始化后用密码进行登录成功。



三、centos6编译安装php

1、安装前准备,需要如下工具包,有些包是在epel的yum源中的。

2、解压php,并安装并使用make && make install 编译php。使用安装命令:

./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

对命令的说明:

【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后,可以在此前编译安装好的httpd24中的配置文件/etc/httpd24/httpd.conf中可以找到php5模块,而此时的php5模块是支持httpd2.4中的event(上面httpd2.4是编译成此模式)或者worke这两个MPM。

4、在/etc/httpd24/httpd.conf中添加如下语句,使其httpd支持与解析php文件。

5、为php应用程序配置文件,复制php.ini-production文件至/etc/php.ini中。

6、在跟目录/usr/local/apache/htdocs下创建index.php文件,内容如下,重启httpd后进行测试。在浏览器中出现与php相关的信息即是成功。

7、编译安装xcache为php应用程序进行加速。安装前提是进入解压后的文件夹中执行如下命令生成configure文件,然后再执行./configure  –enable-xcache  –with-php-config=/usr/local/php/bin/php-config

8、创建/etc/php.d文件夹,将xcache.ini配置文件复制到此文件,以便php读取加载。

9、重启httpd后,如果在浏览器页面中能够查找到关于xcache模块,就说明xcache安装成功。使用ab命令进行测试。加上-k参数是因为我在测试时候出现连接超时的现象,所以让其持久连接。


通过上述的步骤便可在centos6上编译安装LAMP了。



yum源安装LAMP:

1、centos6上httpd版本是2.2,并且yum源没有mariadb。

命令:yum install -y httpd php php-mysql mysql-server

2、centos7上httpd版本是2.4。

命令:yum install -y httpd php php-mysql mariadb-server



版权声明:本文为mingmingwei123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。