Linux记录-4.27-4.28-4.29 PHP的编译安装(旧)

前面MariaDB用的是二进制包安装,  PHP的编译安装有所不同

首先去 www.php.net 下载这个包

最先版本:

复制下载链接 进到 linux里用wget 来下载,所有的链接尽量下到一个位置保存,方便管理,

即 /usr/local/src/

用 tar jxvf 解压报错bzip2没有这个文件或目录, 是因为bzip2没有安装

用yum安装一下

安装成功以后再解压,解压完以后就要编译安装了

编译就是把源码的文件编译成二进制的文件,比如 ls,rm,都是二进制的文件,由源码编译过来。源码文件可以去读可以去写,但是计算机呢不识别,要让计算机识别需要编译成计算机识别的文件。

我们可以先看看下载完php以后它本身的安装目录

先用vi访问安装文件说明,可以先不用vim

可以看到一个链接,复制下来去打开,选到我们用的版本:UNIX的Nginx

点进去可以看到一个大概的安装步骤

编译安装流程:

1~编译安装首先要配置 编译参数:

prefix =  指定安装路径

with config file path = 配置文件路径

enable-fpm  开启fpm功能,因为用的是nginx

with fpm user = 指定它的用户 (没有的用户需要去创建, php-fpm)

with fpm group = 指定它的组 (没有的组需要去创建,  php-fpm)

with mysql = 用于连接mysql的路径(兼容老版本php安装)

with mysqli = 用于连接mysql的路径(新版本php安装)

with pdo mysql = 用于php连接mysql的通信

with mysql sock = 指定mysql的sock

后面的with 都是php的一些模块了,让他可以支持一些什么功能。

直接编译安装会出错误1,因为gcc 和cc编译器都没有装

用yum装一下gcc

装好之后再重新配置编译参数

有新的错误2

一般来说 安装提示 not found 时候说明系统缺少某个软件包。

可以 yum list | grep    先搜索下这个软件包

一般来说开发包都是  XXX-devel ,安装一下

新的错误3

yum list | grep   先搜索下这个软件包

有时候会有一个软件大小写问题:

小写时搜出来时这样:

大写时是这样:

但是小写的结果才是我们想要的!

这时候就需要我们用  -i  忽略大小写

错误4

错误5

错误6

其实是可以连续grep  2 次的,这样大大缩小了结果的范围!

  -y 也可以放到后面去

错误7:

错误8:

错误的mysql版本

解决方案:

下一个低版本的mysql的 二进制安装包,让它编译时候待用,需要的时候就用一下

解压下载的低版本mysql二进制包

这里用的是zxf而不是zxvf,没加v,就没有可视化进度显示。

回到php目录下

改编译参数:

--with-mysql  --with-mysqli  --with-pdo-mysql  中的mysql都改为mysql5.6

安装完以后会有一个warning ,意思是说这个几个东西不识别了。

因为这是安装的新版本的PHP,不识别的都是旧版本需要的东西,为了兼容加上的,实际上新版本已经不用了。

2~~改编译参数完了以后,就该make了

make  就是把源码包处理成二进制包

如果不确定有没有执行成功,运行下 echo  $? ,返回值是0就是成功的

最后  make  install 安装这个二进制包,这些二进制文件会被到/usr/local/php-fpm/ 目录下。

看一下安装的目录都有啥

bin —— 可执行文件    etc ——配置文件      include ——包含文件  

lib —— 库文件    

sbin —— 服务需要用的可执行文件

var —— 日志

现在还需要2个配置文件: 服务本身的配置文件 +  PHP 的配置文件

进入到etc配置文件看一下

php-fpm.conf.default  这是一个服务本身的模板配置文件,你的服务配置文件php-fpm.conf 还没有生成。

拷贝一下

还缺少一个PHP的配置文件

LAMP和现在讲的LNMP设置会不一样,但是都需要一个 php.ini 的配置文件.

php.ini – development 开发用的 (可作为测试用的)

php.ini – production  生产用的

俩个文件拷其中之一就可以了。

diff —— 比较俩个文件的差异

php.ini 文件里面 相当于vi编辑模式中的 #  —— “注释”的意思~

error_reporting 表示错误日志的级别,生产和开发的错误日志级别不一致

现在把缺少的PHP配置文件cp到etc配置目录下

现在需要配置一个启动脚本,在目录sapi/fpm/php-fpm.service下

这个php-fpm.service 文件是针对CentOS7的配置方法

推荐配置CentOS6的 init.d.php-fpm 相对容易。

把配置文件考到 /etc/init.d/php-fpm 下面去

拷贝完以后,vi看一下这个启动脚本,并没有什么要改

加入到服务列表里 chkconfig  –add  

查看一下已有服务的列表 chkconfig  --list

开启服务  chkconfig  XXXX  on

启动服务 

权限不够是因为没给执行权限,chmod 设定下权限

再次启动服务,出错,提示错误来源于 143行

:set nu  —— vi里面 显示行号,  行号+G 定位到行号位置

打开路径发现没有.conf文件

需要通过cp把www.conf.default 改成 www.conf  文件

这个文件是一个php-fpm的池子,必须要配置的,用于监听端口和sevice文件

再次启动还有错,缺少用户

增加一个用户就行了

启动服务,这次成功了

ps  aux |grep  php-fpm 检查是否有PHP服务。

netstart  -lnp  查看监听的所有端口,包括TCP,UDP,UNIX的

加上一个t,netstart  -lntp  就只看监听 TCP协议 的端口

127.0.0.1:9000 就是php-fpm的端口

如果是卸载PHP的话,就很麻烦了~

可以先history一下,看一下前面安装了些什么,但其实yum  install装的不用都卸载掉,

只需要把二进制包释放所在的目录( /usr/local/php-fpm/ )卸载掉就算是卸载了。

总结:

vi编辑模式里面(如果是INSERT状态需要按一个ESC),

一般模式下按 dd 可以 剪切,按 yy 可以 复制,

在光标位置按 p 粘贴。

如果是写 5dd 就是当前光标开始剪切5行。

如果是写 5yy 就是当前光标开始复制5行。

想要撤销操作,按 u  。

想要反向再撤销,按 CTRL  r  。

一般模式下按 gg 可以把光标定到首行。

按G可以把光标定到末行。

在vi里,你想定到某一行就用 行号+G ,如第5行就按 5G

   :set nu   显示行号(vi中的一般模式,需要冒号)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值