前面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中的一般模式,需要冒号)