Photo by Suzy Hazelwood on Pexels.com

「so」は「shared object(シェアード・オブジェクト)」の略です.古い環境をWEB構築する方法.

2025.03.09

Logging

おはようございます.以前の職場でPHPのソースコードをビルドしてPHPのバージョン何パターンか作っていましたが、今でもテスト環境というものはあるのでしょうか?アンサー無いでしょうね、きっと.今ではDockerという便利な物がありますから.

さて古い環境をWEB構築する手順を箇条書きに記載していきます.まず古いPHPを動かすには古いOpenSSLが必要になってきます.まずはOpenSSLのソースコードが必要になりそれをビルドします.OpenSSLがPHPで必要になってくると書きましたが、必要になるパターンはphp-opensslを使用する場合です.例えばphpのフレームワークなどを導入している環境では必ずと言って良いほど、php-opensslを使用しているので古いOpenSSLも必要になってきます.

sudo yum groupinstall -y "Development Tools"
sudo yum install -y perl gcc make
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
tar xvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config --prefix=/usr/local/openssl1.1.1 --openssldir=/usr/local/openssl1.1.1 shared
make
make install

上記のような感じでOpenSSLのソースコードをダウンロード=>解凍=>ビルドします.ここでミソなのがso(拡張子:shared object(シェアード・オブジェクト))を作って上げることです.ここで自分は躓きました.soを作らずにphp-opensslをビルドしていたのでビルド時にエラーが出力されました.

phpのビルドは下記のような感じです.他にも拡張モジュールが必要な場合はそれに合わして追記記載が必要になってきます.

sudo yum groupinstall -y "Development Tools"
sudo yum install -y autoconf bison re2c libxml2-devel sqlite-devel \
    libcurl-devel openssl-devel git gcc make
git clone https://github.com/php/php-src.git
cd php-src
git checkout PHP-7.0.0
./buildconf
./configure --prefix=/usr/local/php7.0 --with-openssl=/usr/local/openssl1.1.1
make
make install

こうするとPHPの古いフレームワークなどが使用できるようになります.尚、フレームワークなどを使用する場合は他の拡張モジュールがもう少し必要になってきますが原理原則を理解すると出来ると思います.Apacheで動かすには「–with-apxs2=/usr/sbin/apxs」の記載も必要になってきます.尚、php-fpmを使用したい場合は「–enable-fpm」を追記してFirstCGIで動かすということで良いと思います.両者ともApacheの設定は必要となります.

明日へ続く

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

アンサー, エラー, シェアード・オブジェクト, ソースコード, パターン, ビルド, ビルド時, フレームワーク, ミゾ, 両者, 原理原則, 古い, 古いフレームワーク, 手順, 拡張モジュール, 拡張子, 箇条書き, 職場, 解凍, 追記記載,