Как я могу установить PHP 5.3 на FreeBSD 11.2

У меня есть старое приложение, написанное на PHP 5.3, которое не подлежит обновлению и не работает с php56 и выше. Я хотел бы установить PHP 5.3 с большинством расширений на коробке FreeBSD 11.2. А потом я хотел бы создать пакет (ы), которые я могу использовать на другой машине.

К сожалению, PHP 5.3 больше не находится в портах. Я получил более старую версию портов, которая состоит из PHP 5.3. Существует проблема с компиляцией этого порта, много ошибок и не может быть успешным.

Может кто-нибудь показать путь для компиляции php 5.3 в качестве порта в FreeBSD 11.2?

Заранее спасибо.

2 ответа

Решение

Мне не удалось установить PHP 5.3 из портов, даже если я проверил более старую версию портов через svn.

Мне удалось скомпилировать его из исходного кода и запустить с помощью nginx с огромной помощью по https://shami.blog/2018/02/running-older-php-versions-on-freebsd-11/

Короче говоря, нужно скомпилировать PHP 5.3 с FPM. Не все параметры компиляции работают. У меня работает следующий конфиг:

# 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 до ревизии непосредственно перед этим. После этого у вас возникнут все необходимые проблемы, связанные с выяснением, можно ли загружать исходные архивы, совместимы ли поддерживаемые библиотеки и другие API, присутствующие во FreeBSD 11.2, с тем, что ожидает устаревшая версия PHP, и т. Д. И т. Д. И т. Д.

Другие вопросы по тегам