如题,本篇文章会教你如何编译适用于pmmp的php
看到标题后你可能会疑惑,为什么仅支持x86_64与aarch64?你别管,这两个架构就是用不了(编译好后跑PocketMine会报错),闲着没事的可以给arm和i386编译,跑不了不关我事
你需要:
可访问github
一个安装有GNU/Linux的机器或虚拟机
你问我编译适用于Windows平台的php?等我把Visual Studio安好后再出另一篇教程
(其实别人已经发了一篇教程了,但是看起来的确有些复杂......)
好了,废话不多说,不多说废话,直接开始教程
演示机器系统为Ubuntu 22.04 amd64,用户为root,安装软件包时报错请在前面加上sudo
非跨架构编译
Step 1:安装必需的工具

Step 2:下载编译脚本

Step 3:开始编译
这个时候,只需要经过漫长的等待就可以编译成功,php文件在你的编译目录下的bin/php7/bin/php
Q1:访问不了github怎么办?
如果脚本在运行在downloading...中退出了,可尝试多执行几次,如果在compiling...退出了,请查看install.log的内容进行判断错误原因
跨架构编译
有时,在aarch64架构的机器上编译会出现编译失败或过慢的情况,这时,就可以在电脑上编译给aarch64用的php二进制文件了
先执行Step 1步骤
然后执行:
这时就开始编译了,等待的时间非常漫长,根据你的设备性能决定编译的时间,通常需要几小时
然后执行Step 2步骤
然后执行以下命令:
php文件在你的编译目录下的bin/php7/bin/php
如果访问不了github请看Q1
教程结束了,如果有问题可在帖子下询问(总共写了我1633个字)
严禁转载
看到标题后你可能会疑惑,为什么仅支持x86_64与aarch64?你别管,这两个架构就是用不了(编译好后跑PocketMine会报错),闲着没事的可以给arm和i386编译,跑不了不关我事
你需要:
可访问github
一个安装有GNU/Linux的机器或虚拟机
你问我编译适用于Windows平台的php?等我把Visual Studio安好后再出另一篇教程
(其实别人已经发了一篇教程了,但是看起来的确有些复杂......)
好了,废话不多说,不多说废话,直接开始教程
演示机器系统为Ubuntu 22.04 amd64,用户为root,安装软件包时报错请在前面加上sudo
非跨架构编译
Step 1:安装必需的工具
Bash:
apt install build-essential git autoconf automake m4 bison cmake pkg-config re2c libtool-bin -y

Step 2:下载编译脚本
Bash:
mkdir php
cd php
#如果github访问困难,可以在链接前面加上[URL]https://gh.tuanzi.eu.org/[/URL]
wget [URL]https://github.com/pmmp/PHP-Binaries/raw/php/8.1/compile.sh[/URL]

Step 3:开始编译
Bash:
#命令参数解释:
# -t指定系统类型,-j指定线程数 -P指定PocketMine的内核版本(只能4或5)
bash compile.sh -t linux64 -j4 -P5
Q1:访问不了github怎么办?
Bash:
sed -i 's@https://github\.com@https://gh\.tuanzi\.eu\.org/https://github\.com@g' compile.sh
#如果无输出,则执行成功,千万不要重复执行,重复执行此命令会导致脚本不可用
跨架构编译
有时,在aarch64架构的机器上编译会出现编译失败或过慢的情况,这时,就可以在电脑上编译给aarch64用的php二进制文件了
先执行Step 1步骤
然后执行:
Bash:
git clone [URL]https://github.com/pmmp/musl-cross-make[/URL]
cd musl-cross-make
cp config.mak.dist config.mak
#编辑config.mak,可使用你喜好的编辑器,我这里使用nano
nano config.mak
#找到# OUTPUT = /usr/local,把前面的"#"去掉
#保存并退出
#按下Ctrl + X,然后按下y,再按下回车即可保存并退出
#编译编译器
make && sudo make install
#验证编译器是否能用
aarch64-linux-musl-gcc --version
然后执行Step 2步骤
然后执行以下命令:
Bash:
bash compile.sh -t android-aarch64 -x -j4 -P5
#这次多了个-x,这是为了指定此次编译是跨架构编译
如果访问不了github请看Q1
教程结束了,如果有问题可在帖子下询问(总共写了我1633个字)
严禁转载