質問: php 5.3 debian stretch(9)へのインストール] 私は非常に古いサーバー(debian etch)をdebian stretchに移行していますが、開発されたすべてのアプリにphpの問題があります。一部は修正できますが、一部は修正できません(いくつかのdrupal 6サイトとして)。将来的には、単一のアプリがphp7.0で提供される予定ですが、その日までにphp5.3で提供する必要があります。debianストレッチが共同インストール可能なphpバージョンに対して何らかの「ネイティブ」サポートを備えていることを知っていますが、私が見つけたすべての例はphp5.6(jessieのバージョン)を使用しています: https:// pehapkari .cz/blog/2017/03/27/multiple-php-versions-the-easy-way / また、debian jessieやwheezyなどでphp5.3とphp5.4またはphp5.6が連携している例をいくつか見つけましたが、debian stretch(php7.0)には対応していません。 https://superuser.com/questions/913792/php-5-3-10-on-debian-jessie したがって、まず、debian stretchのapache2でphp7.0とphp5.3を一緒に使用できるかどうかを知る必要があります。次に、私はこれをどのように行うことができるかを理解する必要があります。私はシステム管理者ではないので、私のdebian知識はゼロから日々成長しています。ありがとうございました。
回答: 私は同様の問題に遭遇し、それをうまく機能させることができました。私はdebian 9/nginx/php5.4でサーバーをインストールする必要があったので、それはあなたの前提条件と完全には一致しませんが、解決策は同様であると思います。私がそれを解決するために行った手順をリストします。基本的に、ソースからphpをインストールする必要があり、opensslサポート(--with-openssl)が必要な場合、これは問題を引き起こします。古いバージョンのphp(<7.0)はサポートしていないためです。 openssl> = 1.1.0、これはdebian 9のデフォルトです。したがって、古いopensslバージョンをビルドする必要があります(私は1.0.1uを使用しました)。しかし、最初にいくつかの依存関係をインストールしましょう。apt install build-essential checkinstall zip autoconf apt install libfcgi-dev libfcgi0ldbl libmcrypt-dev libssl-dev libc-client2007e-dev libkrb5-dev libcurl4-openssl-dev apt install libxml2-dev libcurl4-openssl-dev libpcre3-dev libbz2-dev libjpeg-dev libpng-dev libfreetype6-dev libmcrypt-dev libmhash-dev freetds-dev libmariadbclient-dev-compat unixodbc-dev libxslt1-dev 次に、opensslをビルドします。cd /opt/ wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1u.tar.gz tar xzf openssl-1.0.1u.tar.gz cd openssl-1.0.1u ./config shared --openssldir=/usr/local/openssl/ enable-ec_nistp_64_gcc_128 make depend make make install ln -s /usr/local/openssl/lib /usr/local/openssl/lib/x86_64-linux-gnu 連鎖反応として、新しくビルドしたopensslを使用してlibcurlおよびlibc-client(imapサポート用)をビルドする必要があります。 libcurlから始めます。cd /opt/ wget https://curl.haxx.se/download/curl-7.26.0.tar.gz tar xzf curl-7.26.0.tar.gz cd curl-7.26.0 env pkg_config_path=/usr/local/openssl/lib/pkgconfig ldflags=-wl,-rpath=/usr/local/openssl/lib ./configure --with-ssl=/usr/local/openssl --with-zlib --prefix=/usr/local/curl make make install 次に、libc-client。いくつかのパッチが含まれているため、実際にはdebian 8のソースを使用しました。ビルド自体は失敗しましたが、それでもc-client.aが生成されました。cd /tmp/ wget http://http.debian.net/debian/pool/main/u/uw-imap/uw-imap_2007f\~dfsg-2.dsc wget http://http.debian.net/debian/pool/main/u/uw-imap/uw-imap_2007f\~dfsg.orig.tar.gz wget http://http.debian.net/debian/pool/main/u/uw-imap/uw-imap_2007f\~dfsg-2.debian.tar.gz dpkg-source -x uw-imap_2007f\~dfsg-2.dsc imap-2007f mv imap-2007f /usr/local/ cd /usr/local/imap-2007f/ touch {ipv6,lnxok} make slx sslinclude=/usr/local/openssl/include/ ssllib=/usr/local/openssl/lib extraauthenticators=gss mkdir lib include cp c-client/*.c lib/ cp c-client/*.h include/ cp c-client/c-client.a lib/libc-client.a ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a これで、php5.4をビルドするために必要なすべてが揃いました。コンパイル時にpostgresqlバインディングについて警告があったことに注意してください(ローカルとシステムのopensslバージョンが一致していないため)。使用する場合は、独自のlibpqをビルドする必要があると思います。cd /opt/ php_ver=5.4.45 wget http://museum.php.net/php5/php-${php_ver}.tar.gz tar xzf php-${php_ver}.tar.gz cd php-${php_ver} ldflags="-wl,-rpath=/usr/local/openssl/lib,-rpath=/usr/local/curl/lib" './configure' --prefix=/usr/local/php-${php_ver} '--with-zlib-dir' '--with-freetype-dir' '--enable-fpm' '--enable-mbstring' '--with-libxml-dir=/usr' '--enable-soap' '--enable-calendar' '--with-curl=/usr/local/curl' '--with-mcrypt' '--with-zlib' '--with-gd' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-zlib' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-mbregex' '--with-mhash' '--enable-zip' '--with-pcre-regex' '--with-mysql' '--with-pdo-mysql' '--with-mysqli' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--enable-cgi' '--with-pear' '--enable-memcache' '--with-openssl=/usr/local/openssl' '--with-imap=/usr/local/imap-2007f' '--with-kerberos' '--with-imap-ssl' '--with-libdir=lib/x86_64-linux-gnu' ldflags="-wl,-rpath=/usr/local/openssl/lib,-rpath=/usr/local/curl/lib" make make install 残っているのは、php.iniとphp-fpm.confファイルの作成です。これらは、どちらも取るに足らない、php-fpmソケットの構成とinitscriptの作成です(オンラインで十分な例があり、完全なファイルを投稿することはできません)ここ)、およびwebサーバーの構成(ソケット上のfastcgi)。