LNMP架构的搭建——源码编译(PHP,nginx,Mysql)

本文详细介绍了如何通过源码编译的方式搭建LNMP(Linux, Nginx, MySQL, PHP)架构。首先,讨论了源码编译与yum安装的优缺点。接着,逐步讲解了PHP的编译步骤,包括解决依赖性问题和配置。然后,介绍了nginx的编译和配置过程,以及启动和测试。最后,详述了MySQL的源码编译,特别强调了使用cmake的重要性,以及编译过程中遇到的问题和解决方法。整个过程涵盖了从编译环境准备到服务启动的完整流程。" 51728125,1396345,ECharts入门指南:打造商业级数据图表,"['前端开发', 'JavaScript', 'ECharts', '数据可视化', '图表库']
摘要由CSDN通过智能技术生成

一.源码编译

在企业中,我们常常是需要什么模块才会添加什么模块,而源码编译就可以让我们按需安装。

yum安装的优缺点:

  • yum安装的优点:安装东西,方便快捷,特别是不用考虑包依赖。
  • yum安装的缺点:安装过程,人为无法干预,不能按需安装。源里面有什么就安装什么,安装的版本也比较低。

源码安装的优缺点

  • 源码安装的优点,编译安装过程,可以设定参数,按照需求,进行安装,并且安装的版本,可以自己选择,灵活性比较大。
  • 源码安装的缺点,由于安装包过新或者是其他问题,导致依赖的包没有,或者版本过低。这个时候就要解决包的依赖问题,linux系统中有的包,一个依赖一个,可能装一个小东西,就要解决一堆包的依赖问题,花很多时间解决包的依赖问题,得不尝失。源码安装的多了,不敢升级系统,升级系统,可能会导致以前手动装的东西,不能用。

二.源码编译PHP

第一步:编译三部曲

物理机里:将所需要的安装包发送给hang1

[root@foundation11 Desktop]# scp -r libmcrypt-2.5.8-9.el6.x86_64.rpm   libmcrypt-devel-2.5.8-9.el6.x86_64.rpm   php-5.6.35.tar.bz2  root@172.25.11.1:/mnt

在这里插入图片描述

在hang1将得到的php源码包进行解压(#加强系统对支持字符编码转换的功能)

root@hang1 ~]# cd /mnt
[root@hang1 mnt]# ls
[root@hang1 mnt]# tar jxf  php-5.6.35.tar.bz2
[root@hang1 mnt]# ls
[root@hang1 ~]# mkdir /usr/local/lnmp       
[root@hang1 mnt]# cd php-5.6.35
[root@hang1 php-5.6.35]# yum install gcc -y

没图,记得创建文件夹哟……
在这里插入图片描述
在这里插入图片描述

./configure --prefix=/usr/local/lnmp/php   \  #安装的位置
 --with-config-file-path=/usr/local/lnmp/php/etc \   #php配置文件的位置
 --with-openssl   \   #支持openssl加密 
 --with-snmp  \
 --with-gd  \
 --with-zlib  \
 --with-curl   \
 --with-libxml-dir\    
 --with-png-dir    \     #php处理图片的格式
 --with-jpeg-dir  \
 --with-freetype-dir   \    
 --with-gmp      \
 --with-gettext      \
 --with-pear     \
 --enable-mysqlnd         \           #支持mysql数据库之间建立联系
 --with-mysql=mysqlnd     \  
 --with-mysqli=mysqlnd     \        
 --with-pdo-mysql=mysqlnd      \
 --enable-inline-optimization      \
 --enable-soap --enable-ftp          \
 --enable-sockets          \
 --enable-mbstring        \
 --enable-fpm       \       #开启fpm模式(nginx等服务用的)
 --with-fpm-user=nginx   \      #对php服务的限制通过nginx用户来实现)
 --with-fpm-group=nginx    \   #php以nginx用户组身份运行
 --with-mcrypt   \      #提供了对多种块算法的支持,主要用来实现加密等算法
 --with-mhash           #加密算法

在这里插入图片描述

会发现要解决依赖性(很多,这里我就只举个例子):

在这里插入图片描述

在这里插入图片描述

去解决依赖性,然后继续预编译,一般是解决一个依赖性,在去试着预编译,直到不出错。

所要解决的依赖性安装包如下:

73  yum install xml2-config-devel -y
75  yum install openssl-devel -y
77  yum install libcurl-devel -y
79  yum whatprovides */jpeglib.h
80  yum install libjpeg-turbo-devel-1.2.1-1.el6.x86_64  -y
82  yum whatprovides */png.h
83  yum install -y libpng-devel-1.2.49-1.el6_2.x86_64
86  yum install freetype-devel -y
88  yum whatprovides */gmp.h
89  yum install gmp-devel-4.3.1-7.el6_2.2.x86_64  -y
91  cd /mnt      
93  yum install libmcrypt-*      #因为这个我传过来的包在/mnt下
95  cd -
96  yum install net-snmp-devel -y

成功预编译完成的界面如下:
在这里插入图片描述

在这里教大家一个小窍门,在源码编译的时候,遇到以.h结尾的依赖性,可以用yum whatprovides去寻找这个文件属于那个包,然后安装符合自己版本的安装包。如果不是以.h结尾,我们可以在这个依赖性名称后面加上-devel,然后去安装这个包。比如现在告诉你你的依赖性是fre

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值