Linux记录-4.27 PHP的编译安装、卸载、配置文件、启动文件

目录

编译安装通常步骤:

1。configure         配置编译参数

2。 make   把源码通过gcc工具变成二进制包。

3。make install   安装

关于  卸载:

关于  配置文件:(LNMP环境)

一、php-fpm.conf 配置文件

二、php.ini 配置文件

三、服务的启动文件

四、www.conf  池文件

五、配置PHP使用的用户和组


PHP的官网

https://www.php.net/

stable稳定版,          current最新版,          release预览版

找到  .tar.bz2  格式的文件下载  

复制下下载链接到 /usr/local/src  目录下 wget 下载

各种格式的解压缩

解压 .tar.gz    ——  tar   zxvf     xxx.tar.gz           z是  .gz    文件格式的压缩。        

解压 .tar.bz2  ——  tar   jxvf     xxx.tar.bz2          j是   .bz2  文件格式的压缩。        

解压  .tar.xz   ——  tar   Jxvf     xxx.tar.xz           J是   .xz    文件格式的压缩。 

提示错误 bzip2: Cannot exec: No such file or directory      意思 bzip2 文件不存在。

原因是没有安装bz2的解压缩,系统无法识别,yum安装一下再解压。

Documentation 文档项。

这个是官方安装文档,可以选语言。不知道装的步骤可以看看。

编译安装通常步骤:

1。configure         配置编译参数

make                编译(源码文件 ——> 二进制文件)源码文件我们可以编写,但是计算机只能识别转为二进制文件的

 make install     安装

configure   编译参数:

prefix  指定安装路径

with-config-file-path   配置文件路径

enable-fpm    开启fpm 因为用的nginx所以必须开启

with-fpm-user    指定用户     with-fpm-group    指定组

with-mysql     关联mysql的路径(老版本)        with-mysqli     关联mysql的路径(新版本)  

with-pdo-mysql    和mysql通信的一种连接方式

with-mysql-sock    指定和mysql的socket

 在PHP的文件夹下进行编译命令:

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-exif --enable-mbstring --with-pear --with-curl --with-openssl

报错一:

编译时候可能报错:缺少cc  gcc ,这个是编译器。

yum install -y gcc  可解决

报错二:

No package 'libxml-2.0' found

缺少 libxml 

yum list   可以查看符合名字的安装包都有哪些

devel 类型的是开发包。

                             编译时候都是需要用      devel   版本的                       

yum install -y libxml2-devel.x86_64  安装一下

报错三:

No package 'openssl' found

缺少 openssl 

yum list |grep -i  openssl

-i 作用是忽略大小写,因为直接搜索OpenSSL可能出的结果不是我们想要的。

yum install -y openssl-devel.x86_64    选择devel版本安装

报错四:

No package 'sqlite3' found

yum list|grep -i sqlite

可能yum list|grep -i sqlite3搜不到,就不要加数字

 yum install -y sqlite-devel.x86_64

报错五:

No package 'libcurl' found

 yum list |grep -i libcurl

 yum install -y libcurl-devel.x86_64

报错六:

No package 'oniguruma' found

oniguruma是一个处理正则表达式的库,在编译安装php时,如果使用  --enable-mbstring  参数, 开启mbstring扩展,则会出现这个错误。

yum list 显示没找到

去网上找了个链接,但是内核版本号错了。

uname -r 可以看系统内核版本,就是系统发行的版本号,比如linux 7就是 el7

再试试解决yum list 没有搜到对应包问题。

可以用第三方扩展包 epel-release 

EPEL的全称叫 Extra Packages for Enterprise Linux 
属于红帽提供的扩展包,yum list普通找不到的可以试试装上这个,相当于一个第三方源。

安装完后就能yum list出来了。

yum install -y oniguruma-devel 

编译成功了 。

但有一些 unrecognized 未识别的 ,可能是因为老版本需要,新版本不再需要这些参数了。编译时候可以去掉,当然写了也不会出错,只是会提醒而已。

2。 make   把源码通过gcc工具变成二进制包。

过程可能会持续几分钟之久.....

make完没问题会显示如下

可以用 echo $? 来确认下是否过程有出错 。  如果是0则无问题。

3。make install   安装

就是把这些二进制文件自动复制到 /usr/local/php-fpm 里面

如果出现mysql版本不符合的话,就去下对应mysql版本的二进制包,下完不用安装,只是编译时候需要用这个包里面文件而已。

解压后mysql目录改名,把下面2句原先的指向到新解压后的mysql目录位置.

 --with-mysql=/usr/local/mysql   (高版本已不需要设置)

--with-mysqli=/usr/local/mysql/bin/mysql_config

关于  卸载

只需要把目录删除掉  rm -rf /usr/local/php-fpm/ 

安装过程中yum  install 安装的包可以yum  remove移除掉,不移除也没关系。

关于  配置文件:(LNMP环境)

进入到软件目录 /usr/local/php-fpm

bin —— 可执行程序

etc —— 配置文件

lib —— 库文件

sbin —— 可执行程序,php-fpm服务需要用到的脚本

var —— 有日志

一、php-fpm.conf 配置文件

etc 配置文件目录下:

php-fpm.conf.default 是默认存在的配置文件,但需要拷贝一份改名  php-fpm.conf   配置文件,不然php服务缺少有效的配置文件,无法启动

 cp php-fpm.conf.default php-fpm.conf

二、php.ini 配置文件

在官网的documentation 文档项中也有描述:

不论是阿帕奇Apache的LAMP 还是 nginx 的LNMP 环境都需要此步。

在一开始的安装编译目录下可见  php.ini-development  和  php.ini-production

development 是  用作开发 的后缀

production  是  用作生产 的后缀

diff  ——  比较文件内容中的差异

diff   php.ini-development    php.ini-production

86c86 就是86行同86行不同内容做出的对比

 在 .ini 这个配置文件里的  ; 就相当于 # 表注释  的作用,所以 ;开头的都不需要注意。

对比可见development 和 production 的错误日志级别配置是不一样的

把 php-development.ini 复制到 /usr/local/php-fpm/etc/php.ini  下面

三、服务的启动文件

在编译目录下 /usr/local/src/php-8.1.8/sapi/fpm/php-fpm.service

php-fpm.service 是关于centos 7  system.d的

init.d.php-fpm 是关于centos 6 的

要先把文件放入/etc/init.d/ 下才能加入到服务列表,并且文件要有755权限。

centos 6的配法:

先放入服务的目录

cp   /usr/local/src/php-8.1.8/sapi/fpm/init.d.php-fpm   /etc/init.d/php-fpm

chkconfig --add php-fpm      在添加入服务列表

chkconfig --list     打印服务列表

需要注意给服务文件赋权755

chmod  755  php-fpm

启动服务

service  php-fpm  start

但是启动出错了。看看提示的配置文件的143行。

vim  /usr/local/php-fpm/etc/php-fpm.conf

在vi的一般模式,直接 数字n + G 就可以让光标去到第n行。 显示行号是 :set  nu

这一行是include了一个文件夹内的.conf配置文件。

四、www.conf  池文件

可看到这里面当前只有一个默认的文件,这个同样需要 拷贝+改名 去掉.default

这个www.conf  池文件 决定了监听的端口port 和 socket文件,用户名和组 等。

五、配置PHP使用的用户和组

这个在编译时候其实是指定了用户名和组名的。但是当前还没有实际创建。

在没有创建指定的用户情况下start启动,会报错如下。

useradd创建用户 php-fpm  (创建用户同时会自动创建组 php-fpm)  

再次启动,ps 检查服务,已成功启用。 

netstat  -lnp  查看监听端口

lnp 查看所有的监听通信端口,包括udp、tcp、socket

lntp  则是查看tcp的端口。  

9000就是PHP服务的TCP端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值