写点什么

centos 系统下 php 完全离线安装

作者:乌龟哥哥
  • 2022 年 6 月 03 日
  • 本文字数:2012 字

    阅读完需:约 7 分钟

centos系统下php完全离线安装

本文中的操作系统版本:CentOS Linux release 7.9.2009 (Core)


所安装的具体 php 版本:php7.4.27

前言

有时候 我们需要在一些要求安全或者保密要求比较严格的服务器上安装搭建 php 环境,但是服务器不能联网,只能在内网环境下使用,众所周知 这种情况下安装个 php 是非常麻烦的,因为安装过程中 大概率会提示你缺少这个依赖,缺少那个依赖,还不容易把缺少的依赖安装好了,又可能会发现因为安装的依赖版本问题,导致该依赖理论上还是无法使用的,也就是安装失败的。。。这个过程中是非常痛苦且麻烦的。。顺利的话,几小时安装搞定。。不顺利的话。。几天都不一定能安装好。。。


终于!!!今天我把 php 所需要的所有依赖库、动态链接库等都给下载且好了,只需要输入几个命令进行安装即可!现在这种安装 php 的方式是用 rpm 包的方式进行安装 php 的。


由于安装包比较大,我把安装包放在了百度网盘里面:https://pan.baidu.com/s/1HEnRslO1sZxdxXOl_SPlpg 提取码:plrg

安装

# 将安装包从百度云下载下来,并上传到服务器的任意目录下(本文这里上传到了/root目录下)` `#开始执行安装操作` `#进入root目录``cd` `/root` `#解压 压缩文件``unzip php7.4.27-\(rpm\).zip` `#进入到安装包目录中``cd` `cd` `php7.4.27-\(rpm\)/` `#将该目录中的所有以.rpm格式的文件全部进行安装,--nodeps表示安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了--nodeps你就能装上了。--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用--force进行强制安装``rpm -Uvh *.rpm --nodeps --force` `#下面这行命令其实没有什么卵用(手动调皮^_^)``find` `/ -name php` `#下面这行命令其实也没有什么卵用(再次手动调皮^_^ ^_^)``cd` `/usr/lib/systemd/system` `#启动php``systemctl start php74-php-fpm ` `#查看是否有php-fpm进程,如果能看到php-fpm进程,则表示安装已经成功``ps` `aux | ``grep` `php-fpm
复制代码


也可以使用 php74 -v 查看下版本,如果能显示版本 也代表安装成功,示例如下:



虽然有很多 xml 警告,但是 php 大部分功能基本是可以用的了,如果嫌弃这些警告,可以临时将/etc/opt/remi/php74/php.d/30-xmlreader.ini 文件进行删除,或者 在安装之前 将安装目录中的 php74-php-xml-7.4.27-1.el7.remi.x86_64.rpm 及 php74-php-xmlrpc-7.4.27-1.el7.remi.x86_64.rpm 文件进行删除,或者根据报错提示 再进行针对性解决。


PS:图上报错意思是 在 libxml2.so.2 文件中没有定义 xmlOutputBufferGetSize 函数,用 nm -D libxml2.so.2 | grep xmlOutputBufferGetSize 命令 发现 libxml2.so.2 这个动态库文件里面 确实没有定义 xmlOutputBufferGetSize 函数,目测应该是 libxml2 的版本问题(在安装这个环境之前,我之前手动安装过 libxml2.。。),因为我这里环境暂时用不上 php 内置的 xml 相关函数,这里就先不解决了。。如果是全新安装的 centos 系统,并且没有手动安装过 libxml2 相关的软件。。那应该不会出现这个报错的哈

安装后的基本配置文件路径

php 的配置文件路径可以使用 php74 --ini 命令进行查看,或在网页使用 phpinfo()进行查看


phpize 程序 所在的路径为:/opt/remi/php74/root/usr/bin/phpize


php-config 程序 所在的路径为:/opt/remi/php74/root/usr/bin/php-config


php 所有的.so 扩展文件路径:/opt/remi/php74/root/usr/lib64/php/modules/


.so 扩展文件对应的 ini 配置文件路径:/etc/opt/remi/php74/php.d/


后续如果需要使用源码编译某个 php 扩展文件的时候,将生成的文件.so 文件移动到 /opt/remi/php74/root/usr/lib64/php/modules/ 路径中,然后 参考 /etc/opt/remi/php74/php.d/ 目中的其中任意一个文件,复制粘贴(文件名字最好改为扩展的名字,方便统一查看),然后编辑修改复制出来的新文件,将里面的 extension=你的 so 文件 之后保存退出,可以使用 php74 -m 查看 php 在命令行模式下是否已经加载该扩展文件。 没问题的话,并且网页要用的话,就重启下 php-fpm 进程即可

各种 linux 版本软件所需的依赖库下载官方地址

https://pkgs.org/


打开该网站,右上角输入框可以搜索,输入一些依赖库关键字,会自动出现你可能想要的依赖库软件,比如我现在需要下载 libcurl-devel 库,则可以按照下图形式进行搜索,示例图如下:



然后点击搜索,选择自己所需要的系统版本及 libcurl-devel 对应的版本进行下载即可(PS:下载按钮在点击 search 按钮之后 打开的页面中,选择依赖库对应的版本之后,再次打开的页面中,将滚动条往下拉,有个 Download 按钮),有二进制包和源码包,复制对应的连接下载即可。


下载页面示例图如下:



当然了,咋们本篇文章中,如果需要以 rpm 包的方式安装 php 的其中一些扩展的话,在这里也可以搜索的,比如我要下载 php7.4 版本的 bamath 扩展包,则可以这样搜索,如下图所示:



其实只要右上角的输入框一输入 php 关键字,就会出现很多包来供你选择,无非就是在 php 后面加上对应版本号可以细化到具体的 php 版本号即可,示例图如下:



结束

发布于: 刚刚阅读数: 3
用户头像

乌龟哥哥

关注

正在努力寻找offer的大四小菜鸟 2021.03.16 加入

擅长 Hbuilder、VS Code、MyEclipse、AppServ、PS 等软件的安装与卸载 精通 Html、CSS、JavaScript、jQuery、Java 等单词的拼写 熟悉 Windows、Linux、 等系统的开关机 看–时间过得多快,不说了,去搬砖了

评论

发布
暂无评论
centos系统下php完全离线安装_6月月更_乌龟哥哥_InfoQ写作社区