У меня есть старое приложение, написанное на PHP 5.3, которое не подлежит обновлению и не работает с php56 и выше. Я бы хотел установить PHP 5.3 с большинством расширений на FreeBSD 11.2. И затем я хотел бы создать пакет (ы), который я мог бы использовать на другой машине.
К сожалению, PHP 5.3 больше не используется в портах. У меня есть более старая версия портов, состоящая из PHP 5.3. Возникла проблема с компиляцией этого порта, много ошибок, и она не может быть успешной.
Может кто-нибудь указать путь для компиляции php 5.3 в качестве порта во FreeBSD 11.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 и т. Д. И т. Д.