LAMP基于编译安装方式实现(httpd与php以fastcgi方式结合)3

概述

    在某些现有rpm包不能满足需求的时候,可能需要编译安装LAMP环境,本篇就介绍下php与httpd结合方式为fastcgi方式结合时的编译安装,同时,由于httpd与php以module方式结合时,仅是编译选项有所差别,故也会简单说明下编译选项的差异

环境

    CentOS7系统,IP为10.1.32.72

    httpd:编译安装,httpd-2.4

    php5:编译安装,php-5.4

    mariadb:通用二进制格式安装,mariadb-5.5

第一章    通用二进制格式安装mariadb-5.5

    1、下载通用二进制格式的mariadb软件包,解压到/usr/local目录,并将解压出来的目录以软链接方式连接到mysql目录,方便管理

    blob.png    

    2、查看解压出来的目录中,关于安装指南的说明,其中INSTALL-BINARY有详细的安装的步骤

    1.png

    3、添加系统用户mysql,作为mariadb运行时的用户身份,修改mysql目录的属主属组为mysql用户,让该mariadb程序对目录有写权限

    blob.png

    4、创建mariadb数据存放目录,修改目录属主属组为mysql

    blob.png

    5、为mariadb提供配置文件,修改配置文件中的数据目录指向我们准备的数据目录

    blob.png    

    blob.png

    6、通用二进制格式安装时,需要执行数据库初始化脚本

    blob.png

    7、导出PATH环境变量,库文件,头文件

    blob.png

    blob.png    

    blob.png

    8、提供服务脚本,利用service命令启动数据库服务

    blob.png

    9、执行第一次启动数据库时的安全初始化命令,增强其安全性,测试数据库是否工作正常

    blob.png

    blob.png

第二章    编译安装httpd-2.4

    1、准备编译安装的环境,安装Development Tools和Server Platform Development

    blob.png

    2、安装httpd程序依赖的程序包

    3.png    

    3、下载httpd-2.4源码包,解压,执行编译安装

    blob.png

    4.png

    编译选项说明:

--prefix 指明程序安装目录
--sysconfdir  指明配置文件存放目录
--enable-so  表示启用模块的动态装卸载功能
--enable-ssl  表示启用ssl功能,此项可能需要先安装openssl-devel包
--enable-cgi  表示启用支持cgi机制的功能
--enable-rewrite  表示支持url重写功能
--enable-modules=most  表示启用的http模块有哪些,most表示启动大多数
--enable-mpms-shared=all  表示以共享方式启用哪些MPM模块(prefork、worker、event),
    all表示所有的,此项为httpd2.4独有的选项,因为只有2.4才支持MPM的动态装卸载,2.2的MPM为静态的,只有编译进去,才能使用
--with-pmp=prefork  表示默认启动的MPM是哪种
--with-zlib  表示依赖zlib,用于支持压缩功能
	没用=等号指明zlib的路径,则系统会自动到被依赖的文件的默认的路径去寻找,
	如果被依赖的文件不是rpm安装,或不放在默认路径下,则需要手动利用=等号指明路径
--with-pcre  表示依赖的pcre,用于支持url重写时支持正则表达式
--with-apr  依赖的apr
--with-apr-util   依赖的apr-util

    blob.png

    4、导出PATH环境变量,头文件,man手册所在路径

    blob.png

    blob.png    

    blob.png

    5、启动,测试httpd服务是否正常

    blob.png

第三章    编译安装php-5.4

    php基于module方式和基于fastcgi方式与httpd结合时的区别主要在编译安装php时所启用的选项的不同,本处以php-fpm的方式(fastcgi)方式为主,介绍其编译安装过程,对module方式,也会有相应的说明

    1、安装php依赖的软件包

    11.png

    2、下载php源码包,解压,编译安装

    blob.png

    1.png

    编译选项说明:

--prefix  指明安装路径
--with-mysql  指明依赖的mysql的路径
--with-openssl  指明依赖的openssl,用于支持ssl通信
--with-mysqli  指明依赖的mysqli,mysqli是mysql的另外一个访问接口
--with-freetype-dir  用于支持显示的字体,可能会要安装freetype-devel
--with-png-dir  用于显示支持png格式的图片
--with-jpeg-dir  用于显示支持jpeg格式的图片
--enable-mbstring  用于让mysql支持中文
--with-zlib  用于支持压缩功能
--with-libxml  用于分析xml格式
--enable-xml  表示支持xml
--enable-sockets  表示支持以sockets方式进行通信
--with-apxs2  指明apxs文件的路径,apxs文件作用是第三方模块可以借助该文件与httpd建立关联关系
相当于一个衔接器的作用
--with-mcrypt  表示支持加密库
--with-config-file-path=/etc  表示配置文件的存放路径
--with-config-file-scan-dir=/etc/php.d  表示还要扫描哪个目录下的.ini结尾的文件作为配置文件的组成部分
--with-bz2 表示支持bz2压缩

如果httpd使用的MPM为worker或event,则需要启用该选项
--enable-maintainer-zts  当启用的MPM为worker或event时,需要启动该选项,因为此处我们是以prefork的MPM,所以不用此项

--with  之类的选项,会到对应依赖的文件的默认安装路径下去寻找,如果程序不是安装在默认路径下,则需要用=等号指定位置,如果没有安装对应程序,则需要手动安装,一般编译时用到的程序是程序的devel包

如果httpd与php结合的方式为php-fpm,则需要将--with-apxs2=/usr/local/apache24/bin/apxs去掉,然后启用--enable-fpm选项

    3、提供php的配置文件

        在源码包解压出来的目录中,有提供php的样例配置文件,复制到/etc/php.ini即可

    blob.png

    4、提供php-fpm的配置文件,提供php-fpm的服务脚本(如果php和httpd的结合方式为module,则无需此步骤)

        在源码包解压目录下的sapi/fpm/目录下有php-fpm.conf的配置文件样例和php-fpm服务脚本样例

        centos6风格的样例为:init.d.php-fpm

        centos7风格的unit文件的样例为:php-fpm.service

        centos7也支持使用centos6风格的init脚本

    1111.png

    

    5、根据需要,修改php-fpm配置文件和服务脚本

    blob.png

    blob.png

    

第四章    修改httpd的配置文件,让其能支持反向代理php请求到php-fpm进行处理

    1、修改httpd配置文件,启动反向代理相关模块,重启服务

    blob.png

    blob.png

    2、提供测试页面,验证lamp环境是否工作正常

        在httpd的配置文件中加入如下配置,将php的资源反代给php-fpm处理

        此示例中为编辑中心主机的配置,如果是虚拟主机,则可以在httpd主配置文件中启用Include中相关虚拟主机的配置文件,然后根据实际需要编辑虚拟主机的配置文件

    blob.png

    blob.png

    blob.png

    blob.png

原创文章,作者:M20-1倪文超,如若转载,请注明出处:http://www.178linux.com/51722

(0)
M20-1倪文超M20-1倪文超
上一篇 2016-10-17 21:41
下一篇 2016-10-17 22:27

相关推荐

  • shell之变量总结

    1 什么是shell变量 按照定义来说,变量是存储设备中的一些可读写的存储单元.变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也用 于保存暂时信息。例如:一变量为EDITOR,系统中有许多编辑工具,但哪一个适用于系统呢?将此编辑器名称赋给EDITOR,这样,在使用cron或其 他需要编辑器的应用时,这就是你将一直使用的…

    Linux干货 2016-08-15
  • 用户和用户组相关的配置文件

    用户和用户组相关的配置文件 一、与用户相关的配置文件 一般来说,与用户配置相关的几个文件如下: l  /etc/passwd: 最重要的文件,存储着用户的用户名,UID,Shell等信息 l  /etc/shadow: 用户密码文件,使用sha-1算法加密存储(注意该文件的权限) l  /etc/skel/: 用户的模板文件,新…

    Linux干货 2016-10-23
  • bash 面试题

    1、设计一个shell脚本,在/userdata目录下建立10个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行 [root@node1 script]# cat mkuserdata.sh #!/bin/bash # author jin.ren # da…

    Linux干货 2015-07-03
  • 第四周小结

    这周我们主要学习了写脚本的简单语法,写了一些简单的脚本,下面就由我来简单介绍一下: 第一步使用文本编辑来创建脚本: 创建好后在里面写想要运行的脚本即可,然后按Esc—wq退出保存即可。也可以按q不保存退出;q!不保存强制退出;wq!保存强制退出。 第二步运行脚本,给予执行权限,在命令行上指定脚本的相对路径和绝对路径 对了,当在脚本里输入内容时,要Ese&#8…

    2017-08-06
  • 数组和字符串处理

    数组:存储多个元素的连续的内存空间,相当于多个变量的集合     1)定义数组:        declare -a ARRAY_NAME 定义普通数组 可省略declare -a ]#arr=(a b&nbs…

    Linux干货 2016-08-24
  • Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示

    目录与路径 相对路径与绝对路径 绝对路径:路径的写法【一定由根目录 / 写起】 /usr/share/doc 这个目录。 相对路径:路径的写法【不是由 / 写起】 由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: 【cd ../man】这就是相对路径的写法。相对路径意指相对于当前的工作目录 cd (切换目录) . &n…

    Linux干货 2016-11-06