当前位置: 首页 > news >正文

ubuntu24.04 编译安装PHP7.4

ubuntu24.04 编译安装PHP7.4

先安装依赖包(原本是centos上安装依赖,让chatgpt转换了下对应的ubutnu下包名,如果编译过程有缺失,按报错提示再安装下)

apt install zlib1g zlib1g-dev libpcre3 libpcre3-dev libfreetype6 \
libfreetype6-dev libssl-dev libcurl4-openssl-dev libxslt1-dev libgd-dev libc6-dev \
libglib2.0-0 libglib2.0-dev libmcrypt-dev libmhash-dev libicu-dev libncurses5-dev \
libjpeg-dev libpng-dev libxml2-dev libbz2-dev libsqlite3-dev libonig-dev \
imagemagick libmagickwand-dev unixodbc unixodbc-dev

安装liviconv 1.17(ubuntu24.04可略过)

wget https://jinchuang.org/novel/php/libiconv-1.17.tar.gz
tar xf libiconv-1.17.tar.gz
cd libiconv-1.17/
./configure --prefix=/usr/lcoal/libiconv && make && make install
echo "/usr/local/libiconv/lib" >>/etc/ld.so.conf
ldconfig

安装openss(系统自带的3.0不行,安装3.3里面包含1.1的库)

wget https://github.com/openssl/openssl/releases/download/openssl-3.3.1/openssl-3.3.1.tar.gz
tar -xvf openssl-3.3.1.tar.gz
cd openssl-3.3.1/
./Configure --prefix=/opt/openssl --openssldir=/opt/openssl -fPIC -shared linux-x86_64
make -j4 && make install

设置pkgconfig,为默认openssl.cnf设置ENV

echo 'export PKG_CONFIG_PATH=/opt/openssl/lib/pkgconfig' >>/etc/profile
echo 'export OPENSSL_CONF=/usr/lib/ssl/openssl.cnf' >>/etc/profile
source /etc/profile

php安装

wget https://www.php.net/distributions/php-7.4.33.tar.bz2

解压进入php-7.4.33目录

./configure --prefix=/usr/local/php --enable-fpm --enable-gd --with-webp --with-jpeg --with-freetype --enable-intl  --enable-pcntl  --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd  --with-curl --enable-soap --with-openssl-dir=/opt/openssl  --with-zip --enable-ftp --enable-xml --with-zlib --enable-sockets  --enable-mbstring --with-fpm-user=www --with-fpm-group=web

配置文件

cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
cp php.ini-production /usr/local/php74/etc/php.ini
cd /usr/local/php74/etc/
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d/
cp www.conf.default www.conf

增加启动服务

systemctl enable php-fpm

启停命令

systemctl start php-fpm
systemctl stop php-fpm
systemctl status php-fpm

修改启动器设置

nano /usr/lib/systemd/system/php-fpm.service


ProtectSystem=full
改成
ProtectSystem=false

然后重新加载服务

systemctl daemon-reload
systemctl stop php-fpm
systemctl start php-fpm
systemctl status php-fpm

补充

如果安装完成后openssl扩展不能正常启用,说明php编译安装时调用的openssl-3.3.1也没能正常编译成功
请看:ubuntu24.04 php7.4.33编译安装openssl(动态扩展)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JS(三)——更改html内数据
  • 使用百度文心智能体创建AI旅游助手
  • 2024新型数字政府综合解决方案(九)
  • HanLP分词的使用与注意事项
  • 代码随想录算法训练营 | 动态规划 part02
  • 通过Fiddler抓包保存网页上的视频(包括Bilibili、B站和其他视频站)亲测可用
  • 学习node.js 二 path模块,os模块,process
  • 增材制造正在加速赋能模具产业转型升级
  • 探究 Element Plus Menu 横向多层级展开组件的 Bug 及解决方案
  • JUC3-共享模型之管程
  • [Linux CMD] 目录与文件相关的命令
  • 6数字基石:掌握计算机语言、多媒体与系统工程
  • C++ | Leetcode C++题解之第341题扁平化嵌套列表迭代器
  • python日志、异常和装饰器的结合
  • LeetCode.676.实现一个魔法字典
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 4个实用的微服务测试策略
  • 78. Subsets
  • JavaScript创建对象的四种方式
  • Javascript基础之Array数组API
  • jdbc就是这么简单
  • JDK 6和JDK 7中的substring()方法
  • node和express搭建代理服务器(源码)
  • Python 基础起步 (十) 什么叫函数?
  • QQ浏览器x5内核的兼容性问题
  • 阿里云购买磁盘后挂载
  • 产品三维模型在线预览
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 技术:超级实用的电脑小技巧
  • 检测对象或数组
  • 优秀架构师必须掌握的架构思维
  • 责任链模式的两种实现
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.ajax中的eval及dataType
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (10)ATF MMU转换表
  • (33)STM32——485实验笔记
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (四)stm32之通信协议
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转载)(官方)UE4--图像编程----着色器开发
  • .net core + vue 搭建前后端分离的框架
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能