本文同步发表于个人博客 https://wz.anoms.top/2025/01/18/Compile-and-install-php7.4/
周六做服务器数据迁移时踩的坑。浅浅记录一下踩坑过程,以防未来再度踩坑。
事情是这样的。
先前的云服务器快到期了,由于续费很贵,于是我换了一家服务商,最近在断断续续利用闲暇时间做数据迁移。
在这个服务器上我有一个dokuwiki的页面,平时用来存放一些笔记和日记的内容,但是迁移到新机器以后,我发现dokuwiki的页面显示出了些问题,所有页面元素渲染全部不正确。查看控制台日志发现在进行 GET http://125.122.22.249/doku/dokuwiki/lib/exe/css.php?t=dokuwiki&tseed=f690c2922e3bb08ba4733d36a34533de 时收到了500 Internal Server Error错误。进一步排查日志,怀疑是php的问题。
原先那台机器上的php版本为7.4,新机器的系统是Ubuntu 22.04.5,能够用apt安装到的只有php8以上的版本,而dokuwiki的框架是以php7的语法编写的,因此存在一些兼容性的问题(例如, PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /var/www/html/doku/dokuwiki/vendor/marcusschwarz/lesserphp/lessc.inc.php on line 761 )。
要解决这个问题,有两种策略:①升级dokuwiki到支持php8的版本;②降级php到php7的版本。
经过一些并不严谨的搜索,我以为dokuwiki依然没有提供php8支持(但后来发现,好像只要升级到最新版就能支持php8),于是采取了第二种策略,降级php到php7。以下是详细步骤:
一、准备工作
使用apt移除已有的php版本
sudo apt autoremove php
然后下载php-7的源代码包,将其解压至 /opt 目录,并进入这一目录。
cd /opt
sudo wget https://www.php.net/distributions/php-7.4.33.tar.gz
sudo tar -zxvf php-7.4.33.tar.gz
cd php-7.4.33
二、编译、测试与运行
编译前,需要安装下面几个工具库。(这一块的内容可能有所不同,取决于 ./configure 阶段会发生什么样的报错。简单来说,./configure 阶段说缺乏哪个工具,就安装那个工具)
sudo apt install pkg-config
sudo apt <


4865

被折叠的 条评论
为什么被折叠?



