lamp之编译安装

author author     2022-08-22     182

关键词:

在linux中由于存在yum这种包管理方式,使得安装部署软件变得十分简单易用,但在某些特定情况下,由于有特殊需求,需要基于编译这种方式来定制化安装所需要的软件,以能特供自己所需的功能,此处我们来基于编译实现LAMP环境,来揭开编译安装这种听起来高大上的安装方式。


首先来交代一下实验环境

系统:CentOS 7.2

IP地址::172.16.38.100

httpd版本:httpd-2.4.10

php版本:php-5.4.40

mysql版本:mysql-5.5.33


一、编译安装httpd:


1、首先准备编译安装所需要的开发包组:

yum -y groupinstall "Development Tools"
yum install pcre-devel

httpd2.4依赖于apr和apr-util,apr全称为apache portable runtime(apache可移植运行库),这是一个可以使apache跨平台运行的底层库文件。


2、安装apr-1.5.0.tar.bz2

tar xf apr-1.5.0.tar.bz2

技术分享


执行configure脚本开始编译:

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


结束后,如没有error之类的错误提示,则执行

make && make install


3、安装apr-util-1.5.3:

tar xf apr-util-1.5.3.tar.bz2

技术分享


执行configure脚本开始编译:

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


结束后,如没有error之类的错误提示,则执行

make && make install


准备工作就绪,下面开始正式编译httpd2.4


4、解压httpd源码包:

tar xf httpd-2.4.10.tar.bz2

技术分享

执行configure脚本开始编译:

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


此处做一些简单说明:

--prefix=/usr/local/apache 安装路径
--sysconfdir=/etc/httpd24 配置文件路径
--enable-so 允许运行时加载DSO模块
--enable-ssl 如果不加载将无法使用使用https
--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 启用大多数常用的模块
--enable-mpms-shared=all 启用MPM所有支持的模式
--with-mpm=event 默认使用enevt模式


结束后,如没有error之类的错误提示,则执行

make && make install


因为编译过程中,没有明确的成功提示,可在每一步操作完成之后使用命令:

echo $?


来查看此前一步命令的执行结果返回值,返回1即为成功;


5、安装后所需配置:


a)导出头文件:

ln -sv /usr/local/apache24/include/ /usr/include/httpd
"/usr/include/httpd" -> "/usr/local/apache24/include/"


b)更新环境变量:

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

技术分享

而后执行:

. /etc/profile.d/httpd24.sh

使环境变量生效


c)导出man手册文件

vim /etc/man_db.conf

技术分享


d)启动httpd服务:

技术分享

至此,httpd安装完成。


二、基于通用二进制格式安装mariadb-5.5.46:


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

技术分享


2、查看解压出来的目录中,关于安装的说明文件:

less INSTALL-BINARY

技术分享


3、添加系统用户:mysql,作为mariadb运行时的用户,修改mysql目录的属组属主为mysql,是的mariadb对该目录具有相应的权限:

技术分享

技术分享


4、指定数据库存放目录,且目录的属主属组为mysql:

技术分享


5、修改mariadb配置文件,修改其中的数据目录为上述目录:

技术分享

vim /etc/my.cnf

技术分享


6、执行数据库初始化脚本:

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

技术分享


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

PATH环境变量:

vim /etc/profile.d/mysql.sh

技术分享


读取文件使之生效:

. /etc/profile.d/mysql.sh


库文件:

vim /etc/ld.so.conf.d/mysql.conf

技术分享


头文件:

ln -sv /usr/local/mysql/include/mysql/ /usr/include/mysql

技术分享


8、提供服务脚本,使得可以使用systemctl来管理数据库服务:

cp mysql.server /etc/rc.d/init.d/mysqld

技术分享


9、执行数据库安全初始化命令,以增加其安全性:

mysql_secure_installation

技术分享


10、启动mysql:

mysql

技术分享

此时可见,mysql启动成功,二进制安装mariadb到此结束;


三、编译安装php-5.4.40:

php与httpd结合的方式有两种:基于module方式和基于fastcgi方式,具体哪种方式需要在编译安装php时启用对应的选项即可,此处以fastcgi(php-fpm)的方式为主。


1、安装php编译中所依赖的程序包:

yum install libxml2-devel libmcrypt-devel bzip2-devel freetype-devel

技术分享

简单说明:
libxml:使php支持xml格式的文件输出
libcrypt:使php支持加密功能
bzip2:使php支持以压缩方式传输数据
freetype:使php支持多字体

注:实际中,需要根据需求来安装所需的包,以使php实现不同的功能


2、解压php-5.4.40.tar.bz2:

tar xf php-5.4.40.tar.bz2

技术分享



3、编译安装:

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-xml --with-gd --enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php.ini --with-config-file-scan-dir=/etc/php.d --with-bz2
简要说明:
--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选项


编译过程中可能会出现错误:如下

技术分享

安装对应包即可:

yum -y install libjpeg-devel

又是错误:

技术分享

yum install libpng-devel


全程无错误后执行:

make && make install


4、拷贝配置文件:

pwd
/usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf


修改配置文件:

vim php-fpm.conf

技术分享


5、启动php-fpm

/usr/local/php/sbin/php-fpm

技术分享

至此php-fpm顺利启动


四、修改httpd配置文件,使其支持代理php请求至php-fpm


1、修改httpd配置文件,启动反向代理

vim /etc/httpd24/httpd.conf

开启下列模块:

技术分享


重启httpd服务:

apachectl start

技术分享

httpd服务启动成功


2、在httpd文件中加入如下配置,将用户请求的所有以.php结尾的资源全部反代给php-fpm处理:

vim /etc/httpd24/httpd.conf

技术分享


创建测试页:

vim /usr/local/apache24/htdocs/index.html

技术分享


创建php测试目录:

mkdir /test/www/ -pv

技术分享

vim /test/www/index.php

技术分享


测试效果:

技术分享


技术分享

至此,顺利将前端php请求送至php-fpm处理,而后将处理结果返回至客户端。

本文出自 “始终上路过” 博客,请务必保留此出处http://8522726.blog.51cto.com/8512726/1898563

编译安装lamp之httpd

编译安装httpd(httpd2.4.4,相关软件包可到apache官网上下载)#hwclock-s 将软件时间同步为硬件时间,防止安装软件时出错1、解决依赖关系httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级。这里使用源码包进行升... 查看详情

编译部署lamp之httpd

1.编译安装httpd LAMP环境一般是根据自己的需求使用源码包进行编译安装,本次使用的是httpd-2.4.25.先对包进行解压缩,使用命令:650)this.width=650;"src="https://s4.51cto.com/wyfs02/M00/8F/71/wKioL1jefXujRPesAAAGRZTQ2iw605.png"title="image.png"alt="wK 查看详情

实践作业之编译安装lamp

题目1:httpd所支持的处理模型有哪些,他们的分别使用于哪些环境。(1)prefork模型:功能:多进程模型,每个进程响应一个请求工作方式:①一个主进程:负责生成子进程及回收子进程(工作进程),负责创建套接字,负责接收... 查看详情

编译安装lamp架构之discuz论坛(代码片段)

...、MySQL、PHP/Perl/PythonLAMP的优势成本低廉可定制、易于开发编译安装实验步骤第一步:通过Windows下载并共享LAMP软件包第二步:在Linux虚拟机上远程获取共享[root@lamp~]#smbclient-L//192.168.10.37/SharenameTypeComment--------------------LAMP-C7Disk[root@lamp~... 查看详情

lamp编译安装系列

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

lamp编译安装

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

lamp原理架构解析:lamp编译安装

Centos7.3编译安装LAMP目录:编译环境LAMP编译安装一.环境准备     征信数据库数据事件不一致导致数据(RAC集群)混乱,PLSQL查询时间和数据库时间不一致,严重影响业务本文出自“每天进步一点点,自律”博客... 查看详情

lamp源码编译安装

查看详情

编译安装lamp环境

LAMP环境配置:httpd-2.4.23+mysql-5.5.51+php-5.5.38编译安装过程编译前先准备系统的开发环境:# yum groupinstall "Development tools" "Server Platform Development"一、编译安装apache1、解决依赖关系httpd-2.4.23 查看详情

源码编译安装lamp

一、概述1、源码编译安装LAMP为什么要源码编译      一般来说,我们软件的安装方式有yum(rpm),和源码编译两种方式,那么为什么我们需要源码编译安装一部分软件?选择源码编译安装软件有以下几个原... 查看详情

编译安装lamp

题目:在LAMP架构中,请分别以php编译成httpd模块形式和php以fpm工作为独立守护进程的方式来支持httpd,列出详细的过程。本次实验以CentOS7为搭建环境,并且已经使用源码编译安装了httpd-2.4(默认使用prefork模块)和使用通用二进... 查看详情

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快速安装教程

ps:度娘上的LAMP安装更全,解释更加清楚,以下纯属个人思路,仅供参考lamp快速安装步骤1、允许远程登录1.1开放22端口firewall-cmd--zone=public--add-port=22/tcp--permanent1.2重启防火墙sudosystemctlrestartfirewalld.service(提示success表示成功) 2... 查看详情

lamp编译安装1

650)this.width=650;"src="https://s4.51cto.com/wyfs02/M00/8C/CC/wKioL1h4o0aQgM_GAAP_QuXLPWc712.jpg"title="LAMP编译安装1.jpg"alt="wKiom1h4oGbwtqpHAAQHoqOfbzE513.jpg"/> 查看详情

lamp安装脚本(编译方式)

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

lamp环境编译安装

MySQL编译安装#安装编译代码需要的包yum-yinstallmakegcc-c++cmakebison-devel  ncurses-devel#mysql安装wgethttp://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.32.tar.gztar-zxvfmysql-5.6.32.tar.gzcdmysql-5.6.3 查看详情

lamp编译安装(未完待续)

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

编译安装lamp

yuminstallgccgcc-c++ncurses-develperl 安装cmakewgethttp://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz  tar-xzvfcmake-2.8.10.2.tar.gz  cdcmake-2.8.10.2  ./bootstrap& 查看详情