centos6编译安装lamp

author author     2022-10-16     458

关键词:

Centos 6 系统上编译安装lamp
所有操作都是关闭防火墙和selinex的前下提先进行的
httpd和php的组合方式:
Modules:把php编译成httpd的DSO对象;
Prefork:需要libphp5的支持
Event、worker:需要libphp5-zts的支持。
所以如果pmp之间需要切换工作方式的化需要有相应的库支持。
Cgi:很少使用
Fmp(fastcgi):php作为独立的模块服务

我们做httpd+php用两种方法组合:
1、将php编程成httpd的模块
2、将php作为独立的模块运行

我们用的是httpd2.4的版本:需要apr-1.4、apr-util-1.4以上的版本支持
安装顺序为 httpd 、 mariadb 、php
注意php需要最后安装原因如下:
1、编译安装如果是把php编译进httpd的模块需要知道httpd的位置。
2、php编译连接mariadb的驱动需要知道mariadb的位置

准备好安装包:
apr-1.5.0.tar.bz2
apr-util-1.5.3.tar.bz2
httpd-2.4.6.tar.bz2
mariadb-5.5.59-linux-x86_64.tar.gz
php-5.4.26.tar.bz2
phpMyAdmin-4.0.10.20-all-languages.zip
xcache-3.1.0.tar.bz2

一、开始编译安装
1、tar xf apr-1.5.0.tar.bz2
Cd arp-1.5.0
./configure --prefix=/usr/local/apr
Make && make install

Tar xf apr-util-1.5.3.tar.bz2
Cd apr-util-1.5.3
./configure --prefix=/usr/loca/apr --with-apr=/usr/local/apr
Make && make install 

2、安装httpd是需要依赖pcre-devel包所以先安装
yum install pcre-devel
Tar xf httpd-2.4.6.tar.bz2
cd httpd-2.4.6
./configure --prefix=/usr/local/apache --sysconf=/etc/httpd2.4 --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
Make && make install

3、给编译安装的httpd2.4提供一个服务脚本。因为我的centos6系统上有httpd的服务脚本所以我就直接复制一个拿出来更改成httpd2.4的服务脚本
Cp /etc/rc.d/init.d/httpd/etc/rc.d/init.d/httpd2.4
技术分享图片
更改vim /etc/rc.d/init.d/httpd2.4
技术分享图片
上图中的
将httpd2.4添加到服务列表中去:chkconfig --add httpd2.4
检查下httpd 2.4 开机是否会自动启动 chkconfig --list httpd2.4
添加开机自动启动在345模式下:chkconfig --level 345 httpd2.4 on
技术分享图片
清除缓存:Hash -r
注意:因为本机安装的centos6系统自带了httpd2.2 所以现在如果启动httpd还是httpd2.2的版本,并不是我们安装的httpd2.4。所以我们需要修改环境变量:让httpd2.4的先运行。
方法为:vim /etc/profile.d/httpd2.4.sh
Export PATH=/usr/local/apache/bin:$PATH
技术分享图片
重读下 . /etc/profile.d/httpd2.4.sh

检查httpd语法: httpd -t
技术分享图片
我们更改下/etc/httpd2.4/conf/httpd.conf配置文件
添加ServerName localhost:80 解决下上面的AH0058问题
技术分享图片
启动服务:service httpd2.4 start
Ss -tnl 查看端口是否处于监听状态
Netstat -aux|grep httpd
技术分享图片
Httpd -M :查看已装载的模块
很到模块都没有装载,可以在/etc/httpd2.4/conf/httpd.conf中启用
技术分享图片

4、编译mariadb-5.5.59-linux-x86_64.tar.gz
Tar xf mariadb-5.5.59-linux-x86_64.tar.gz -C /usr/local
创建mysql用户:useradd -r mysql
创建 数据库的存储目录:mkdir -pv /mydata/data
更改目录属主属组:chown mysql.mysql /mydata/data
Cd /usr/local
建立软链接:
技术分享图片
更改mysql目录下的属组为mysql
技术分享图片
执行scripts目录下的mysql_install_db初始化数据库
技术分享图片
提供配置文件:
Mkdir /etc/mysql
Cp support-files/my-large.cnf /etc/mysql/my.cnf
技术分享图片
更改配置文件Vim /etc/mysql/my.cnf
添加三行:datadir = /mydata/data #指明数据库存储位置
Innodb_file_per_table = on #每个innnodb表都使用单个文件
Skip_name_resolve = on #跳过主机名解析
技术分享图片
为mariadb提供启动服务的脚本:
技术分享图片
Service mysqld start 启动服务
Ss -tnl查看3306端口是否处于监听状态
技术分享图片
添加个环境变量:/etc/profile.d/mysqld.sh
技术分享图片
重读下 . /etc/profile.d/mysqld.sh
技术分享图片
安装成功

5、安装 php-5.4.26.tar.bz2
解决依赖关系:
请配置好yum源(系统安装源及epel源)后执行如下命令:
yum -y install bzip2-devel libmcrypt-devel
yum install libxml2-devel
Cd 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
说明:
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

 make
 make test
 make intall

为php提供配置文件:
 cp php.ini-production /etc/php.ini

3、 编辑apache配置文件httpd.conf,以apache支持php

vim /etc/httpd/httpd.conf
1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

2、定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html

而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

测试页面index.php示例如下:

   <?php
      $link = mysql_connect(‘127.0.0.1‘,‘root‘,‘‘);
      if ($link)
        echo "Success...";
      else
        echo "Failure...";

      mysql_close();
    ?>

通过客户端访问
技术分享图片

此时编译安装lamp完成

7、下面安装phpMyAdmin-4.0.10.20-all-languages
Unzip phpMyAdmin-4.0.10.20-all-languages
mv phpMyAdmin-4.0.10.20-all-languages /usr/local/apache/htdocs/pma
cp config.sample.inc.php config.inc.php
现在没有密码不能登入:所以要给mysql的root用户设置密码
技术分享图片
默认的数据库有两个匿名用户是不安全的现在我们将其删除:
drop user ‘‘@‘localhost‘;
drop user ‘‘@‘localhost.localdomain‘;
然后service mysqld reload就可以登入了
技术分享图片

8、压力测试:ab -c 10 -n 100 http://192.168.2.106/pma/index.php

技术分享图片
技术分享图片
9、编译安装xcache给php加速 安装版本为xcache-3.1.0.tar.bz2
Tar xf # tar xf xcache-3.0.3.tar.gz
cd xcache-3.0.3
/usr/local/php/bin/phpize (这个是为了使./configure生效)
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install
技术分享图片
编辑php.ini,整合php和xcache:

首先将xcache提供的样例配置导入php.ini
 mkdir /etc/php.d
 cp xcache.ini /etc/php.d

说明:xcache.ini文件在xcache的源码目录中。

接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:
zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

技术分享图片

注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在第一位。
重启服务 service httpd2.4 restart 生效
技术分享图片
在访问下测试页 可以看到我们安装的xcache信息
10、下面我们再次进行压力测试:看看
技术分享图片
整个过程完毕!!!

三、下面将php作为独立的模块安装方法
1、在上面的基础上重新编译php,首先删除刚才解压的rm php-5.4.26 -rf
2、重新解压 Tar xf rm php-5.4.26.tar.bz2
3、Cd php-5.4.26
4、./configure --prefix=/usr/local/php5 --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 --enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php5.d --with-bz2
5、Make && make install
6、Service httpd2.4 stop
7、重新修改httpd.conf的配置文件
8、Mkdir /etc/php5{,.d}
9、Cp php.ini-production /etc/php5/php.ini
10、添加php-fpm 的服务脚本 : cp sapo/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
Chmod +x /etc/rc.d/init.d/php-fpm
Chkconfig --add php-fpm
Chkconfig --level 345 php-fpm on
技术分享图片
11、fpm-php的主配置文件为/usr/local/php5/etc/php-fpm.conf
12、cp php-fpm.conf.default php-fpm.conf
修改pid路径
技术分享图片
13、然后启动service fpm-php start
技术分享图片
启动成功

14、启用httpd的相关模块
在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为 mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都 要加载
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

定位至DirectoryIndex index.html 
修改为:DirectoryIndex  index.php  index.html

技术分享图片

15、ProxyRequests Off:关闭正向代理
ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需 要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参 数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

配置虚拟主机支持使用fcgi
在相应的虚拟主机中添加类似如下两行。
     ProxyRequests Off
     ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1
例如:
<VirtualHost *:80>
        DocumentRoot "/www/pingan.com"
            ServerName pingan.com
            ServerAlias www.pingan.com

            ProxyRequests Off
            ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/www/pingan.com/$1

             <Directory "/www/pingan.com">
                    Options none
                    AllowOverride none
                    Require all granted
            </Directory>
</VirtualHost>

16、现在进行压力测试:ab -c 10 -n 100 http://192.168.2.106/pma/index.php
技术分享图片

17、我们安装xcache然后在进行压力测试。
由于我们已经安装过了所以现在先删除root家目录下的rm -rf xcache-3.1.0
tar xf xcache-3.1.0.tar.bz2
cd xcache-3.1.0
/usr/local/php5/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php5/bin/php-config
make && make install
技术分享图片
安装结束时,会出现类似如下行:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

18、编辑php.ini,整合php和xcache:
首先将xcache提供的样例配置导入php.ini
cp xcache.ini /etc/php5.d
说明:xcache.ini文件在xcache的源码目录中。

接下来编辑/etc/php5.d/xcache.ini,找到zend_extension开头的行,修改为如下行:
zend_extension =    /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在  第一位。

18、接下来重启service php-fpm restart
19、做压力测试:ab -c 10 -n 100 http://192.168.2.106/pma/index.php
发现效果明显提升了2倍以上
技术分享图片
20、整个测试完毕

centos6.5编译安装lamp

...iApache安装目录:/usr/local/nginx二、准备工作1、最小化安装Centos6.5建立一个 查看详情

centos6编译lamp基于fpm模式的应用wordpress

CentOS6编译LAMP基于FPM模式的应用wordpress引言:其实我们可以直接使用yum安装LAMP(Linux+Apache[httpd]+Mysql+PHP),比手动编译安装LAMP要简单的多,但在实际的生产环境中都会手动编译LAMP,这是为什么呢?是因为在centos6系统中yum安装的httpd... 查看详情

centos6.5编译安装lamp开发环境

...tp://pan.baidu.com/s/1jIjqinc  密码:ghc2  说明:由于centos6.5是分卷压缩的,且压缩为三个压缩包,所以请下载三个压缩包,并放于同一文件夹中,解压CentOS-6.5-x86_64-bin-DVD.zip即可。     lamp安装包文件夹中有19个安装包... 查看详情

lamp之自动化编译安装

1概述LAMP目前在CentOS6不支持php-fpm的安装,安装高版本的数据库在centos6上也需要通过编译安装完成,本文介绍了Modules模式和FastCGI模式快速部署LAMP的包和相关操作,同时附上了一键安装的编译脚本。2 快速部署LAMP在CentOS6和7中... 查看详情

centos6.9编译安装lamp+xcache(代码片段)

Centos6.9编译安装LAMPapache2.4+Mysql5.7+php5.6.34+Fast-cgi+xcache实验环境:VMwareWorkstationPro14(试用版)系统平台:CentOSrelease6.9(Final)内核2.6.32-696.el6.x86_64Apache/2.4.29(Unix)PHP5.6.34(cli)xcache3.2.01.编译安装apache 查看详情

centos6lamp搭建,编译安装

搭建准备工作:CentOS6.6服务器IP:192.168.230.202软件包位置/tmp/httpdwget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.25.tar.gz ##httpd2.4.25wget https://www.openssl.org/source/openssl-1.0.1u.tar.g 查看详情

在centos6.5上编译安装lamp

LAMP组合的编译安装基于centos6.5实现httpd+phpmodules把php编译成httpd的DSO对象prefork:libphp5event,worker:libphp5-ztscgifastcgifpm:php作为独立的服务httpd对fastcgi协议的支持httpd-2.2需要额外安装fcgi模块httpd-2.4自带fcgi模块 安装次序httpdMariadbp 查看详情

lamp编译实现

...验环境为:   php-fpm和msyql编译为同一台主机(CentOS6.9)   httpd单独一台主机(CentOS6.9)一、简述LAMP:clienthttp(请求index. 查看详情

lamp编译安装

lamp编译安装================================================================================编译安装amp 1.编译前环境准备及相关介绍★系统环境:CentOS6,7CentOS6:apr,apr-util的版本为1.3.9,不适用于httpd-2.4的编译安装;CentOS7:apr,apr-util的 查看详情

lamp安装脚本(编译方式)

#!/bin/bash##**********************************************************#*filename:   lamp_install.sh  *#*discription:  lampinstall  *#*version:   centos6.7a 查看详情

centos6.8安装cacti

    cacti环境基于LAMP,本实验LAMP环境已编译安装成功。若直接yum安装cacti环境会把httpd,mysql,php也yum安装,与我们编译安装的LAMP环境造成冲突,所以本次实验只安装cacti,rrdtool,net-snmp.    安装rrdtoolyum&nb... 查看详情

centos6编译安装lamp(fpm模块方式)加速的wordpress应用

准备软件版本:apr-1.5.2.tar.bz2  apr-util-1.5.4.tar.bz2     httpd-2.4.27.tar.bz2 mariadb-5.5.57-linux-x86_64.tar.gz (二进制)php-5.6.31.tar.bz2     查看详情

centos6编译安装lamp(fpm模块方式)加速的wordpress应用

准备软件版本:apr-1.5.2.tar.bz2  apr-util-1.5.4.tar.bz2     httpd-2.4.27.tar.bz2 mariadb-5.5.57-linux-x86_64.tar.gz (二进制)php-5.6.31.tar.bz2     查看详情

centos6基于源码编译安装lamp实现wordpress功能和xcache功能

前言:APR(ApacheportableRun-timelibraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。php的加速器xcache:基于PHP的特殊扩展机制如opcode缓存扩展也可以将opc... 查看详情

lamp编译安装(代码片段)

lamp编译安装CentOS6:PHP-5.3.2之前:默认不支持fpm机制;需要自行打补丁并编译安装httpd-2.2:默认不支持fcgi协议,需要自行编译此模块解决方案:编译安装httpd-2.4,php-5.3.3+CentOS7:httpd-2.4:rpm包默认编译支持fcgi模块php-fpm包:专用于... 查看详情

lamp编译安装(未完待续)

顺序安装:linuxapachemysqlphpLinux这个就不多说明了...CentOS6.5镜像虚拟机安装一次性安装开发工具:#yumgroupinstall"Developmenttools"or:#yum-ygroupinstall"Developmenttools"查看已安装的:#yumgrouplist|more#yumgrouplist|grepDevelpment#yumgrou 查看详情

lamp编译安装系列

主要还是centos6.9和centos7上相应软件包的安装及编译安装。所用版本均为当前最新版。生产环境中不建议这么干,毕竟生成以稳定为主。LAMP里php是最后安装,php依赖于服务器和数据库,所以这里单独编译系列就只有httpd和mariadb了... 查看详情

centos6.9基于fpm模式编译安装实现lamp应用wordpress(代码片段)

**准备工作:1LinuxCentos6.92php-7.2.1.tar.bz23apr-1.6.3.tar.bz24apr-util-1.6.1.tar.bz25httpd-2.4.29.tar.bz26phpMyAdmin-4.0.10.20-all-languages.zip7wordpress-4.9.1-zh_CN.tar.gz8xcache-3.2.0.tar.bz29mariadb- 查看详情