Freebsd

如何在 FreeBSD 11.2 上安裝 PHP 5.3

  • January 22, 2019

我有一個用 PHP 5.3 編寫的舊應用程序,它不能升級並且不能與 php56 及更高版本一起使用。我想在 FreeBSD 11.2 機器上安裝 PHP 5.3 和大多數擴展。然後我想創建可以在另一台機器上使用的包。

不幸的是,PHP 5.3 不再出現在埠中。我得到了包含 PHP 5.3 的舊版本埠。編譯那個埠有問題,有很多錯誤,不能成功。

有人可以顯示將 php 5.3 編譯為 FreeBSD 11.2 中的埠的路徑嗎?

先感謝您。

即使我通過 svn 檢查了舊的埠版本,我也無法從埠​​安裝 PHP 5.3。

在https://shami.blog/2018/02/running-older-php-versions-on-freebsd-11/的大力幫助下,我成功地從原始碼編譯並使用 nginx 執行

簡而言之,需要使用 FPM 編譯 PHP 5.3。並非所有編譯選項都有效。對我來說,以下配置有效:

# pkg install -y gcc6 patch libxml2 curl jpeg png freetype2 mcrypt mariadb100-client libxslt postgresql96-client 
# mkdir -p /home/php53
# cd /home/php53
# fetch --no-verify-peer https://museum.php.net/php5/php-5.3.29.tar.gz
# tar xvzf php-5.3.29.tar.gz
# cd php-5.3.29

關注https://bugs.php.net/bug.php?id=63983

edit file sapi/fpm/fpm/fpm_sockets.c
just replace 
1)info.tcpi_sacked => info.__tcpi_sacked
2)info.tcpi_unacked => info.__tcpi_unacked

# ./configure --with-layout=GNU --with-regex=php --with-zend-vm=CALL --enable-zend-multibyte --build=FreeBSD-amd64 --prefix=/usr/local/php53 --exec-prefix=/usr/local/php53 --with-config-file-scan-dir=/usr/local/php53/etc/php --enable-cgi --with-libxml-dir=/usr/local/include/libxml2/libxml/ --enable-ftp --with-xsl=/usr/local/include/libxslt/ --enable-mbstring --with-curl --disable-short-tags --disable-ipv6 --with-curl=/usr/local/include/curl/ --enable-ftp --with-zlib-dir --with-freetype-dir --with-gettext --enable-mbstring --with-xmlrpc --enable-soap --enable-zip --enable-calendar --with-gmp --with-openssl --enable-wddx --with-pgsql=/usr/local/include/pgsql/ --enable-fpm
# make 
# make install

然後是 nginx 和 php_fpm 的一些配置

然後在 /etc/rc.conf 中啟用服務

php_fpm_enable="YES"
nginx_enable="YES"

對您文章的評論概述了這樣一個事實,即這項任務可能不僅難以嘗試且難以成功,而且即使您確實成功了,也可能不安全。

也就是說,規範的方法可能是下載埠樹的 SVN 儲存庫,確定哪個 SVN 修訂號刪除了您尋求的 PHP 5.3 支持,然後將您的 SVN 樹回滾到之前的修訂。然後,您將遇到所有必要的問題,以確定源 tarball 是否仍可下載,FreeBSD 11.2 中的支持庫和其他 API 是否與舊 PHP 版本所期望的兼容,等等。

引用自:https://serverfault.com/questions/947836