Linux记录10-4.27-4.28-4.29

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

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

最先版本:

Linux记录10-4.27-4.28-4.29_第1张图片

Linux记录10-4.27-4.28-4.29_第2张图片

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

即 /usr/local/src/

Linux记录10-4.27-4.28-4.29_第3张图片

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

Linux记录10-4.27-4.28-4.29_第4张图片

用yum安装一下

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

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

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

Linux记录10-4.27-4.28-4.29_第5张图片

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

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

Linux记录10-4.27-4.28-4.29_第6张图片

 

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

Linux记录10-4.27-4.28-4.29_第7张图片

 

编译安装流程:

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编译器都没有装

Linux记录10-4.27-4.28-4.29_第8张图片

用yum装一下gcc

 

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

有新的错误2

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

 

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

Linux记录10-4.27-4.28-4.29_第9张图片

 

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

 

 

新的错误3

 

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

 

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

小写时搜出来时这样:

Linux记录10-4.27-4.28-4.29_第10张图片

大写时是这样:

Linux记录10-4.27-4.28-4.29_第11张图片

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

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

Linux记录10-4.27-4.28-4.29_第12张图片

 

错误4

 

Linux记录10-4.27-4.28-4.29_第13张图片

 

 

错误5

Linux记录10-4.27-4.28-4.29_第14张图片

 

错误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/ 目录下。

Linux记录10-4.27-4.28-4.29_第15张图片

 

 

看一下安装的目录都有啥

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  生产用的

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

Linux记录10-4.27-4.28-4.29_第16张图片

 

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

 

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

Linux记录10-4.27-4.28-4.29_第17张图片

 

 

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

 

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

 

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

Linux记录10-4.27-4.28-4.29_第18张图片

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

Linux记录10-4.27-4.28-4.29_第19张图片

 

 

 

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

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

 

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

 

加入到服务列表里 chkconfig  –add  

 

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

Linux记录10-4.27-4.28-4.29_第20张图片

 

开启服务  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的

Linux记录10-4.27-4.28-4.29_第21张图片

 

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

Linux记录10-4.27-4.28-4.29_第22张图片

 

127.0.0.1:9000 就是php-fpm的端口

 

 

 

 

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

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

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

 

 

 

总结:

Linux记录10-4.27-4.28-4.29_第23张图片

Linux记录10-4.27-4.28-4.29_第24张图片

 

 

 

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

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

在光标位置按 p 粘贴。

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

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

 

想要撤销操作,按 u  。

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

 

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

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

 

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

 

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

你可能感兴趣的:(Linux记录)