工作目录:
mkdir -p ~/software/php
cd ~/software/php
【编译安装m4-1.4.20】
wget https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.gz --no-check-certificate
tar xf m4-1.4.20.tar.gz
cd m4-1.4.20
./configure
make
make install
ldconfig
cd ..
【编译安装autoconf-2.72】
wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.gz --no-check-certificate
tar xf autoconf-2.72.tar.gz
cd autoconf-2.72
./configure
make
make install
ldconfig
cd ..
【编译安装libtool-2.5.4】
wget https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.gz --no-check-certificate
tar xf libtool-2.5.4.tar.gz
cd libtool-2.5.4
./configure
make
make install
ldconfig
cd ..
【编译安装automake-1.18】
wget https://ftp.gnu.org/gnu/automake/automake-1.18.tar.gz --no-check-certificate
tar xf automake-1.18.tar.gz
cd automake-1.18
./configure
make
make install
ldconfig
cd ..
【编译安装pkg-config-0.29.2】
wget https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz --no-check-certificate
tar xf pkg-config-0.29.2.tar.gz
cd pkg-config-0.29.2
./configure --with-internal-glib
make
make install
ldconfig
cd ..
【编译安装Python-3.13.5.tar.xz】
特别注意:一定要加--enable-shared选项,把so库编译出来。python和其他软件包不同,enable-shared选项的默认值是no。
wget https://www.python.org/ftp/python/3.13.5/Python-3.13.5.tar.xz --no-check-certificate
tar xf Python-3.13.5.tar.xz
cd Python-3.13.5
./configure --enable-shared
make
make install
ldconfig
cd ..
【编译安装libxml2-2.14.4】
wget https://github.com/GNOME/libxml2/archive/refs/tags/v2.14.4.tar.gz --no-check-certificate
mv v2.14.4.tar.gz libxml2-2.14.4.tar.gz
tar xf libxml2-2.14.4.tar.gz
cd libxml2-2.14.4
./autogen.sh
make
make install
ldconfig
cd ..
【编译安装sqlite-3.50.1】
wget https://sqlite.org/2025/sqlite-src-3500100.zip --no-check-certificate
unzip sqlite-src-3500100.zip
cd sqlite-src-3500100
./configure
make
make install
ldconfig
cd ..
sqlite3.c文件很大,有8.84MB,编译大概需要500MB内存,RV1106G3芯片片内的256MB内存不够用。
编译前必须开启swap虚拟内存:swapon /root/swapfile
不然内存会耗尽,提示gcc: fatal error: Killed signal terminated program cc1
编译完成后可以关闭swap虚拟内存:swapoff /root/swapfile
编译生成的sqlite3.o大小为5.19MB,sqlite3程序的大小为5.91MB。
[root@luckfox-rv1106 ~/bluetooth]# free -h
total used free shared buff/cache available
Mem: 215.4M 206.6M 2.8M 108.0K 6.0M 3.0M
Swap: 2.0G 310.0M 1.7G
【编译安装bzip2-1.0.8】
wget https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz --no-check-certificate
tar xf bzip2-1.0.8.tar.gz
cd bzip2-1.0.8
修改Makefile文件,CFLAGS=末尾加上-fPIC选项。
make
make install
ldconfig
cd ..
【编译安装libpsl-0.21.5】
wget https://github.com/rockdaboot/libpsl/releases/download/0.21.5/libpsl-0.21.5.tar.gz --no-check-certificate
tar xf libpsl-0.21.5.tar.gz
cd libpsl-0.21.5
./configure
make
make install
ldconfig
cd ..
【编译安装curl-8.14.1】
wget https://curl.se/download/curl-8.14.1.tar.gz --no-check-certificate
tar xf curl-8.14.1.tar.gz
cd curl-8.14.1
./configure --with-openssl
make
make install
ldconfig
cd ..
【编译安装libpng-1.6.49】
wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.49.tar.gz
tar xf libpng-1.6.49.tar.gz
cd libpng-1.6.49
./configure
make
make install
ldconfig
cd ..
【编译安装cmake-4.0.3】
wget https://github.com/Kitware/CMake/releases/download/v4.0.3/cmake-4.0.3.tar.gz --no-check-certificate
tar xf cmake-4.0.3.tar.gz
cd cmake-4.0.3
swapon /root/swapfile
./configure
make
make install
swapoff /root/swapfile
ldconfig
cd ..
【编译安装libjpeg-turbo-3.1.1】
(本软件包的默认安装目录是/opt/libjpeg-turbo)
wget https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/3.1.1/libjpeg-turbo-3.1.1.tar.gz --no-check-certificate
tar xf libjpeg-turbo-3.1.1.tar.gz
cd libjpeg-turbo-3.1.1
cmake .
make
make install
cd ..
【编译安装freetype-2.13.3】
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.13.3.tar.gz --no-check-certificate
tar xf freetype-2.13.3.tar.gz
cd freetype-2.13.3
./configure
make
make install
ldconfig
cd ..
【编译安装oniguruma-6.9.10】
wget https://github.com/kkos/oniguruma/releases/download/v6.9.10/onig-6.9.10.tar.gz --no-check-certificate
tar xf onig-6.9.10.tar.gz
cd onig-6.9.10
./configure
make
make install
ldconfig
cd ..
【编译安装postgresql-17.5】
https://zh.purasbar.com/post.php?t=32880
【编译安装tidy-5.8.0】
wget https://github.com/htacg/tidy-html5/archive/refs/tags/5.8.0.tar.gz --no-check-certificate
mv 5.8.0.tar.gz tidy-html5-5.8.0.tar.gz
tar xf tidy-html5-5.8.0.tar.gz
cd tidy-html5-5.8.0/build/cmake
cmake ../.. -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5
make
make install
cd ../../..
【编译安装php-8.4.8】
wget https://www.php.net/distributions/php-8.4.8.tar.gz --no-check-certificate
tar xf php-8.4.8.tar.gz
cd php-8.4.8
./configure --prefix=/opt/php-8.4.8 --with-apxs2=/opt/httpd-2.4.63/bin/apxs --enable-bcmath --enable-mbstring --with-bz2 --with-curl --with-gettext --with-mysqli --with-pdo-mysql --with-pgsql --with-pdo-pgsql --enable-gd --with-freetype --with-jpeg --with-openssl --with-tidy --with-zlib JPEG_CFLAGS="-I/opt/libjpeg-turbo/include" JPEG_LIBS="-L/opt/libjpeg-turbo/lib32 -ljpeg"
swapon /root/swapfile
make
make install
swapoff /root/swapfile
cd ..
本人编译Zend/zend_execute.c这个文件花了43分钟,而且至少用了280MB的内存。
一开始没开swap虚拟内存,编译到一半才开的。
【配置httpd-2.4.63和php-8.4.8】
vi /opt/httpd-2.4.63/conf/httpd.conf
找到DirectoryIndex index.html,加上index.php。
在文件末尾添加:
AddType application/x-httpd-php .php
vi /opt/httpd-2.4.63/htdocs/info.php
内容:
<?php phpinfo() ?>
测试配置:/opt/httpd-2.4.63/bin/httpd -t
重启apache服务器:/opt/httpd-2.4.63/bin/apachectl restart
(如果无法访问网页,那就多重启几次)
访问:https://板子IP/info.php
可以看到phpinfo的界面,里面显示Loaded Configuration File为(none),即没有加载php.ini文件。
从源码目录里面复制过去:cp ~/software/php/php-8.4.8/php.ini-development /opt/php-8.4.8/lib/php.ini
重启apache服务器:/opt/httpd-2.4.63/bin/apachectl restart
查看phpinfo里面Loaded Configuration File一栏,就可以看到成功加载了/opt/php-8.4.8/lib/php.ini文件。
