源码编译安装php7
现在新启的项目都是采用php7了,无奈很多Linux发行版中还是php5
第三方php7源在自己本机上用用到无所谓,放到正式环境上还是有点不放心
其实编译安装也就几分钟,麻烦的是各种依赖
先删除老版本的 php 和 php-fpm
sudo dnf remove php php-fpm
首先从官方下载最新的php ( http://php.net/downloads.php )
php-7.2.6.tar.xz
步骤
tar -xvf php-7.2.6.tar.xz
cd php-7.2.6
./configure --prefix=/usr/local/php7/ --enable-mbstring --with-curl --with-gd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-fpm --with-openssl --enable-opcache --
enable-zip --with-zlib
--with-freetype-dir=/usr/include/freetype2/freetype
重点提示,虽然添加了 --with-gd ,安装完成后通过 phpinfo发现,gd只支持png,gif等 不支持 jpeg,原因不详,所以要添加 --with-jpeg-dir=/usr/local/jpeg/ 。
添加这句话之前要先安装libjpeg,官方下载最新版本 (http://www.ijg.org/files/jpegsrc.v9c.tar.gz),
还是老三样 ./configure --prefix=/usr/local/jpeg --enable-shared && make && sudo make install
所以最后./configure因该这样
./configure --prefix=/usr/local/php7/ --enable-mbstring --with-curl --with-gd --enable-mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --enable-fpm --with-openssl --enable-opcache --
--with-jpeg-dir=/usr/local/jpeg/enable-zip --with-zlib --with-freetype-dir=/usr/include/freetype2/freetype
可以通过 ./configure --help 查看所有可用的模块,根据自己的需要添加
(这里插一句,为什么有的是-enable-** 有的是 --width-**,简单理解就是 enable的属于php自带的扩展,但是默认不开启的,--enable开头的表示这个扩展不依赖第三方的库,典型的如 --enable-opcache , --with开头的表示这个扩展依赖第三方的库,像--with-curl就依赖第三方的libcurl库,系统需要 安装这个库的开发包(头文件,共享库so文件,静态库a文件)才能通过configure配置)
configure 这一步报了错,告诉我 找不到 png.h
解决:sudo dnf install libpng libpng-devel 一般情况下缺少某个头文件,多半是没有安装 **-devel 开发包,这里可以不安装 libpng 但是需要 libpng-devel
重新configure,告诉我 cURL 没有找到或者版本低于7.15
通过 rpm -qa | grep curl 发现我安装了 curl,并且是7.43,所以问题其实就上面说道的,缺少 curl-devel
解决:sudo dnf install curl-devel
由于我本地机用了一段时间了,环境还是很给力,就没有在报依赖问题了
然后 make && sudo make install
几分钟就安装成功了
所有程序包括配置文件都安装到了我指定的目录下面
/usr/local/php7/
然后替换掉低版本的php
sudo cp /usr/bin/php /usr/bin/php5
sudo ln -s /usr/local/php7/bin/php /usr/bin/php
sudo ln -s /usr/local/php7/sbin/php-fpm /usr/bin/php-fpm
安装后默认的配置文件在 /usr/local/php7/etc/ 下面 ,配置文件加了.example后缀,去掉就可以了
(插一句,有些时候很诡异,安装好后没有配置文件,不要害怕,在下载的php源代码里面可以拷贝一个 .example配置文件过来)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
2016-06-16 php use memcached in ubuntu 14.04