任务目标:

编译安装LAMP

要求(1) 安装一个模块化的PHP

要求(2) 安装一个FPM的PHP

注意PHP需要最后一个安装,因为需要前两者的支持.

所以这里的安装次序为

1.httpd

2.MariaDB

3.PHP

一、安装包组

# yum groupinstall "Development Tools" "Server Platform Development" –y

二、解决依赖关系

1.安装pcre

# yum install pcre-devel –y

2.安装apr

# tar xf apr-1.5.2.tar.bz2

# cd apr-1.5.2

# ./configure --prefix=/usr/local/apr

# make && make install

3.安装apr-util

# tar xf apr-util-1.5.4.tar.bz2

# cd apr-util-1.5.4

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install

三、编译安装httpd 2.4

1.编译安装

# tar xf httpd-2.4.23.tar.bz2

# cd httpd-2.4.23

# ./configure --prefix=/usr/local/apache --sysconf=/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

# make && make install

各个参数解释:

--prefix=/usr/local/apache 设定安装目录为/usr/local/apache

--sysconf=/etc/httpd24 服务配置文件存放目录

--enable-so 支持DSO机制,开启模块化

--enable-ssl 支持ssl功能

--enable-cgi 支持CGI功能

--enable-rewrite 支持url重写

--with-zlib 支持传输压缩

--with-pcre 支持pcre正则表达式

--with-apr=/usr/local/apr 指明apr安装位置

--with-apr-util=/usr/local/apr-util/ 指明apr-util安装位置

--enable-modules=most 启用模块级别:most大多数

--enable-mpms-shared=all 编译所有支持的模式

--with-mpm=event 指明mpm模块为event模式

2.给新httpd提供一个脚本

# cd /etc/rc.d/init.d/

# cp httpd httpd24

# vim httpd24

大概42行

apachectl=/usr/local/apache/bin/apachectl

httpd=${HTTPD-/usr/local/apache/bin/httpd}

pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

保存退出

3.加入到服务列表

# chkconfig --add httpd24

4.移除hash缓存

# hash –r

5.将新的httpd添加到环境变量

# vim /etc/profile.d/httpd.sh

内容:

export PATH=/usr/local/apache/bin:$PATH

6.重读一下刚刚修改的环境变量

# . /etc/profile.d/httpd.sh

7.检查一下

# hash

8.检测配置文件语法

# httpd –t

9.先关掉2.2版本的httpd

# service httpd stop

10.启动2.4版本的httpd

# service httpd24 start

11.检查80端口

# ss -tnl

# ps aux | grep httpd

12.查看是否加载了event模块(mpm_event_module (shared))

# httpd –M

四、安装MariaDB

1.把安装包解压到/usr/local/下

# tar xf mariadb-5.5.53-linux-x86_64.tar.gz -C /usr/local

2.创建数据存放目录

# mkdir -pv /mydata/data

3.创建一个mysql用户

# useradd -r mysql

4.附加权限到数据存放目录

# chown -R mysql.mysql /mydata/data/

5.创建软连接到mysql

# cd /usr/local

# ln -sv mariadb-5.5.53-linux-x86_64/ mysql

6.更新所有文件的属主属组

# cd mysql/

# chown -R root.mysql ./*

7.初始化数据库

# scripts/mysql_install_db --datadir=/mydata/data/ --user=mysql

8.提供配置文件

# mkdir /etc/mysql

# cp support-files/my-large.cnf /etc/mysql/my.cnf

9.修改配置文件

# vim /etc/mysql/my.cnf

大概42行附近空白行添加

datadir = /mydata/data

innodb_file_per_table =on

skip_name_resolve = on

10.保存退出

11.创建服务

# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

# chkconfig --add mysqld

12.启动mysql

# service mysqld start

13.检查3306

# ss –tnl

14.连接mysql测试

# /usr/local/mysql/bin/mysql

15.运行安全初始化脚本,包含root用户的密码创建

# /usr/local/mysql/bin/mysql_secure_installation

五、以模块方式编译安装php

1.解压缩安装包

# tar xf php-5.5.38.tar.bz2

2.安装依赖软件包bzip2-devel和epel源的libmcrypt-devel和libxml2-devel包

# yum install bzip2-devel libmcrypt-devel libxml2-devel –y

3.安装

# cd php-5.5.38

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

各参数解释:

--prefix=/usr/local/php 默认安装路径

--with-mysql=/usr/local/mysql 指明mysql安装路径,如果有特定路径就使用等号"="后面跟上路径,没有则省略等号"="

--with-openssl 使用OpenSSL

--with-mysqli=/usr/local/mysql/bin/mysql_config 定义mysqli接口

--enable-mbstring 支持多字节字符串支持

--with-freetype-dir 支持各种字体

--with-jpeg-dir 支持处理jpeg格式图片

--with-png-dir 支持处理png格式图片

--with-zlib 支持压缩库

--with-libxml-dir=/usr 支持处理xml文档

--enable-xml 支持xml

--enable-sockets 使php支持以sockets方式通信

--with-apxs2=/usr/local/apache/bin/apxs (关键)表示把php编译成Apache的模块

--with-mcrypt 支持加密解密库

--with-config-file-path=/etc 定义php配置文件(php.ini)放置路径

--with-config-file-scan-dir=/etc/php.d 其他配置文件查找路径

--with-bz2 支持bz2格式加密

--enable-maintainer-zts 仅针对mpm为event和worker的情况,编译成zts模块,如果是prefork则不需要

# make && make install

4.把php的配置文件复制到/etc下

# cp php.ini-production /etc/php.ini

5.编辑httpd配置文件

# cd /etc/httpd24/

先备份

# cp httpd.conf{,.bak}

# vim httpd.conf

确保有这样一行(证明php5模块已加载):

LoadModule php5_module modules/libphp5.so

添加两行,用于支持php格式文档

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

设置默认文档页

修改 DirectoryIndex index.html

为 DirectoryIndex index.php index.html

6.已经设置完毕,下面测试一下:

6.1 重启httpd24

# service httpd24 restart

6.2 检查一下80端口

# ss -tnlp

6.3 看看是否已经有了php5_module

# httpd -M

6.4 修改一下默认页面为php格式,进行测试

# cd /usr/local/apache/htdocs/

# mv index.html index.php

# vim index.php

<?php

$conn=mysql_connect('127.0.0.1','root','');

if ($conn)

echo "Connect OK!";

else

echo "Failure.";

mysql_close();

?>

上面的数据库连接用户名和密码按照自己设置填写.

6.5 浏览器访问测试一下

OK已成功.

六、以fpm方式再安装PHP

1. 先清理掉之前解压的php目录

# rm -rf php-5.5.38

2. 重新解压

# tar xf php-5.5.38.tar.bz2

3. 编译安装

# cd php-5.5.38

# ./configure --prefix=/usr/local/php-f --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/php-f --with-config-file-scan-dir=/etc/php-f.d --with-bz2

这次与上一次配置的php最大不同就在于这个参数

--enable-fpm 表示是以fpm方式编译

所以就不能下面这个参数

--with-apxs2=/usr/local/apache/bin/apxs (表示把php编译成Apache的模块)

另外要把相关路径改一下名字,不要与刚刚安装的php目录重名,这里我们改为php-f

--prefix=/usr/local/php-f

--with-config-file-path=/etc/php-f

--with-config-file-scan-dir=/etc/php-f.d

# make -j 2 && make install

4.修改httpd配置

4.1 先停掉httpd

# service httpd24 stop

4.2我们需要一个默认的httpd.conf,先备份旧的,然后恢复到默认状态

# cd /etc/httpd24

# mv httpd.conf httpd.conf.mod_php

# cp httpd.conf.bak httpd.conf

4.3 为php提供配置文件

# mkdir /etc/php-f{,.d}

# cd

# cp php-5.5.38/php.ini-production /etc/php-f/php.ini

4.4 添加服务脚本

# cp php-5.5.38/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

4.5 添加执行权限

# chmod +x /etc/rc.d/init.d/php-fpm

# chkconfig --add php-fpm

4.6 修改配置文件

# cd /usr/local/php-f/etc

来一份默认配置文件

# cp php-fpm.conf.default php-fpm.conf

# vim php-fpm.conf

监听端口改为所有

listen = 0.0.0.0:9000

最大进程数

pm.max_children = 50

刚启动时进程数

pm.start_servers = 5

最少空闲进程数

pm.min_spare_servers = 2

最大空闲进程数

pm.max_spare_servers = 5

pid路径

pid = /usr/local/php-f/var/run/php-fpm.pid

5.启动php-fpm

# service php-fpm start

6.检查一下进程

# ps aux | grep fpm

看到已经有5个空闲进程

七.再次配置httpd2.4

1.编辑httpd24的配置文件

# cd /etc/httpd24

# vim httpd.conf

启用这两个模块

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

取消这一行的注释,启用虚拟主机配置文件

#Include /etc/httpd24/extra/httpd-vhosts.conf

2.配置虚拟主机

2.1 创建两个网站文件夹

# mkdir -p /web/vhosts/{pma,wp}

2.2 编辑配置文件,添加虚拟主机

# vim /etc/httpd24/extra/httpd-vhosts.conf

内容修改如下

<VirtualHost *:80>

ServerAdmin admin@buybybuy.com

DocumentRoot /web/vhosts/pma

ServerName www1.buybybuy.com

ErrorLog logs/pma.err

CustomLog logs/pma.access combined

DirectoryIndex index.html index.php

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/vhosts/pma/$1

<Directory "/web/vhosts/pma">

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerAdmin admin@buybybuy.com

DocumentRoot /web/vhosts/wp

ServerName www2.buybybuy.com

ErrorLog logs/wp.err

CustomLog logs/wp.access combined

DirectoryIndex index.html index.php

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/vhosts/wp/$1

<Directory "/web/vhosts/wp">

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

</Directory>

</VirtualHost>

相关解释

ProxyRequests Off:关闭正向代理

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

八、安装phpMyadmin

1.把解压phpMyadmin后文件夹中的所有文档以及文件夹复制到/web/vhosts/pma/下

# cd

# cp -rf /phpMyAdmin-4.4.15.8-all-languages/* /web/vhosts/pma/

2.编辑phpMyadmin的配置文件

# cd /web/vhosts/pma

3.备份原始配置文件并编辑新的配置文件

# cp config.sample.inc.php config.inc.php

# vim config.inc.php

填入32位随机字码

$cfg['blowfish_secret'] = 'e2d8e1132dc737b3dc1f05cd44c0cc9e'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

4.测试

4.1重启httpd和php-fpm

# service httpd24 restart

# service php-fpm restart

4.2浏览器测试结果

5.这里可以用mysql的默认用户root直接登录测试.root账号的设置已经在前面第四节的第15部分设置.

6.另一个虚拟主机wp安装方式同理

CentOS 6编译安装lamp,并分别安装event模块方式和FPM方式的PHP的更多相关文章

  1. CentOS下编译搭建LAMP环境

    搭建LAMP环境须知 搭建LAMP环境时,需要安装的所有软件都要按照一定的顺序安装,我们按照Apache->MySQL->PHP的顺序安装.但是在安装PHP之前,应先安装PHP5需要的最新 ...

  2. CentOS 7 编译部署LAMP环境

    文章目录 1.需求以及环境准备 1.1.版本需求 1.2.环境准备 1.3.安装包准备 2.编译升级Openssl 2.1.查看当前Openssl版本 2.2.备份当前版本Openssl文件 2.3. ...

  3. CentOS 6.3下源码编译安装LAMP

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  4. CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  5. CentOS 6.3 源码安装LAMP(Linux+Apache+Mysql+Php)环境

    一.简介 什么是LAMP LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而>言都是在它所 ...

  6. CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境【转载】

    本文转载自 园友David_Tang的博客,如有侵权请联系本人及时删除,原文地址: http://www.cnblogs.com/mchina/archive/2012/11/28/2778779.h ...

  7. CentOS 下源码安装LAMP环境

    一.简介 什么是LAMP    LAMP是一种Web网络应用和开发环境,是Linux, Apache, MySQL, Php/Perl的缩写,每一个字母代表了一个组件,每个组件就其本身而言都是在它所代 ...

  8. CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境

    ---恢复内容开始--- 一.系统环境 系统平台:CentOS 6.5 (Final) Apache版本:httpd-2.2.31.tar.gz(最新版本2015-07-16) Mysql 版本:my ...

  9. CentOS 6.6安装LAMP和Subversion服务器

    目标:在CentOS 6.6上安装LAMP,并安装最新版1.8.*的Subversion服务器,和Subversion权限管理前端iF.svnadmin. 安装步骤: 安装新一些版本LAMP步骤 1. ...

随机推荐

  1. Spring加载xsd引起的问题小记

    前言 最近要把之前写好的监控系统加上报警功能,就是通过rpc调用发短信发邮件的服务发送报警信息.发短信发邮件的功能是通过dubbo管理提供的.自然使用这些服务就难免用到spring.而我这又是一个st ...

  2. .net提交HTML元素到后台,遇到Request报错 解决方案

    对于.NET MVC 项目来说,在Controller中对应的Action方法上打上标签: [ValidateInput(false)] 在MSDN上:HttpRequest 类使用输入验证标志来跟踪 ...

  3. 如何在ASP.NET的web.config配置文件中添加MIME类型

    常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加.如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置.这里 ...

  4. Objective-c的@property(atomic,nonatomic,readonly,readwrite,assign,retain,copy,getter,setter) 属性特性

    assign:指定setter方法用简单的赋值,这是默认操作.你可以对标量类型(如int)使用这个属性.你可以想象一个float,它不是一个对象,所以它不能retain.copy. retain:指定 ...

  5. Hadoop多节点集群安装配置

    目录: 1.集群部署介绍 1.1 Hadoop简介 1.2 环境说明 1.3 环境配置 1.4 所需软件 2.SSH无密码验证配置 2.1 SSH基本原理和用法 2.2 配置Master无密码登录所有 ...

  6. JQuery的ajax

    JQuery-AJAX: jQuery load() 方法是简单但强大的 AJAX 方法. $(selector).load(URL,data,callback);(这三个参数可以随意设置几个) @ ...

  7. Java源代码-迭代器模式

    Java无疑是最成功的项目之一了,而在其中学习设计模式和架构设计,无疑是最好不过了. 概念: 提供一种方法访问容器中的各个元素,而又不暴露该对象的内部细节. 使用场景: 和容器经常在一起,我们定义了一 ...

  8. [ASP.NET Core] Static File Middleware

    前言 本篇文章介绍ASP.NET Core里,用来处理静态档案的Middleware,为自己留个纪录也希望能帮助到有需要的开发人员. ASP.NET Core官网 结构 一个Web站台最基本的功能,就 ...

  9. Ext.Net MVC 配置(2)

    在VS2012中使用NuGet类库管理器配置EXT.NET MVC环境在“Ext.Net MVC 配置(1)”文章已经写到,方法很简单也很方便,但就是不知道它在安装这些库时对项目做了什么很不爽. 通过 ...

  10. JavaEE中Web服务器、Web容器、Application服务器区别及联系

    在JavaEE 开发Web中,我们经常会听到Web服务器(Web Server).Web容器(Web Container).应用服务器(Application Server),等容易混淆不好理解名词. ...