質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1081閲覧

phpインストール時のmakeで"[Makefile:518: ext/openssl/openssl.lo] エラー 1"が出力される

faki

総合スコア2

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2024/04/30 11:19

実現したいこと

RockyLinux9.2環境に以下を導入する。
・php バージョン :5.4.16

上記を行い、元々RHEL7.4環境で動いていた資材を同等環境で使用できるようにする。

発生している問題・分からないこと

"# make install"を行った際に、最後に以下メッセージが出力されてインストールに失敗する。
[Makefile:518: ext/openssl/openssl.lo] エラー 1

直前までの作業手順としては、資材のパスに移動したうえで以下を実施。
※configure実施時のパッケージ不足といったエラーは全て解消している状態。

./buildconf --force

./configure --prefix=/usr/local/php --with-apxs2=/usr/bin/apxs --enable-mbstring --with-curl --with-openssl --with-xmlrpc --enable-soap --enable-zip --with-gd --with-jpeg-dir --with-png-dir --with-mysqli --with-pgsql --enable-embedded-mysqli --with-freetype-dir --with-ldap --enable-intl --with-xsl --with-zlib./configure --prefix=/usr/local/php --with-apxs2=/usr/bin/apxs --enable-mbstring --with-curl --with-openssl --with-xmlrpc --enable-soap --enable-zip --with-gd --with-jpeg-dir --with-png-dir --with-mysqli --with-pgsql --enable-embedded-mysqli --with-freetype-dir --with-ldap --enable-intl --with-xsl --with-zlib

make

make install

エラーメッセージ

error

1make install実施時に「エラー」と記載のある行を、重複内容削除で抜粋した内容となります。 2Fileパスについては投稿用の文字数削減の都合で、(前略)とさせて頂きました。 3 4[root@zab01 php-5.4.16]# make install 5(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:1094:58: エラー: ‘RSA_SSLV23_PADDING’ undeclared (first use in this function); did you mean ‘RSA_NO_PADDING’? 6(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:1427:17: エラー: invalid use of incomplete typedef ‘X509’ {aka ‘struct x509_st’} 7(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:2903:21: エラー: invalid use of incomplete typedef ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’} 8(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:2957:30: エラー: invalid use of incomplete typedef ‘RSA’ {aka ‘struct rsa_st’} 9(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:2957:30: エラー: invalid use of incomplete typedef ‘DH’ {aka ‘struct dh_st’} 10(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:4062:20: エラー: ‘md_ctx ’ の記憶域サイズが不明です 11(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:4120:24: エラー: ‘md_ctx ’ の記憶域サイズが不明です 12(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:4181:24: エラー: ‘ctx’ の記憶域サイズが不明です 13(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:4301:24: エラー: ‘ctx’ の記憶域サイズが不明です 14(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:4656:20: エラー: ‘md_ctx ’ の記憶域サイズが不明です 15(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:4735:24: エラー: ‘cipher_ctx’ の記憶域サイズが不明です 16(前略)/100_PhpInstall/php-5.4.16/ext/openssl/openssl.c:4814:24: エラー: ‘cipher_ctx’ の記憶域サイズが不明です 17make: *** [Makefile:518: ext/openssl/openssl.lo] エラー 1 18[root@zab01 php-5.4.16]# 19

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

末尾の「ext/openssl/openssl.lo」をキーワードとしてGoogleで検索を掛けるも、解決に至ると判断できる情報は見つけられなかった。

補足

opensslについてはRocky9.2で導入可能な以下バージョンにてインストール済み。

[root@zab01 php-5.4.16]# rpm -qa | grep openssl | sort
apr-util-openssl-1.6.1-23.el9.x86_64
openssl-3.0.7-25.el9_3.x86_64
openssl-devel-3.0.7-25.el9_3.x86_64
openssl-libs-3.0.7-25.el9_3.x86_64
[root@zab01 php-5.4.16]#

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Eggpan

2024/04/30 12:06

PHPが古過ぎるので、opensslは1.x系でないとインストールできないかと思います。 何らかの理由で古いPHPが必要だとしてもdockerなどの環境を利用した方が良いかとおもいますが、ソースコードからインストールしなければいけない理由があるのでしょうか?
otn

2024/04/30 14:28

こういうの難しいです。自力でどうすればいいか見当が付かない場合は、 PHP5.x を RHEL9系でビルドした例をググって探して(あるかどうか分からない物を探すのは大変ですが)、もし見つかれば、そこに多分パッチがあるので、ソースにパッチを当てるとかくらいでしょうか。 無ければRHEL8系の例も探してみる。 別のアプローチを考えた方がいい気がします。
tezcello

2024/04/30 14:51

Dockerの PHP公式イメージにv5.4.39があります。 RockyLinux9.2環境ではありませんが... FPMも Apacheもありますから、お好きなモノを組み合わせてお使いください。 そもそもRockyLinuxがそんな古いものではないですから、新しい環境で(とんでもなく)過去のモノのビルドは無理がありませんか? 絶対にRockyLinux9.2が譲れないのだとした...頑張ってください。
symfo

2024/05/01 08:06

>php バージョン :5.4.16 リリース:2013年5月 10年前のPHP、動けば奇跡では?
faki

2024/05/01 08:33

皆様コメント頂きありがとうございます。 >Eggpan様 Webで調べた限りopensslの1.x系を~との話は確かにありました。 ただel9系で導入できそうなものも見つからず、断念しておりました。 背景としては、動かしたい資材の構築当時のものと同等でない場合、対応に追加の時間・コストが掛かるということがあり、資材を動かすための環境は可能な限り維持するというものがあった次第です。 確かにかなり古いもので、そもそも仕様をまともに把握しているメンバーも極僅かだったりします。  ※当時の構築ログや設計思想といったものもまともに残っていないくらいです。。。 別のアプローチ、、、 時間の問題はありますが、コストはもうあきらめてもらい各現行のVerで動かす方向も再検討/調整するようにします。 引き続きアドバイスについては募集させて頂きますので、 何か良策ございましたらコメント頂ければと思います。
Eggpan

2024/05/01 08:37

先にOSをアップデートするという選択が誤りに思えますね・・。 サポート切れてるPHP使うならサポート切れてるOSになっても致し方ないかと。 どうしてもOSを新しくしなければいけないのでしたら、docker上で動かすのが一番現実的かとは思います。OSに直接インストールするやりかただと、PHP5.6, PHP7.x ... とアップデートする際にまた困ることになります
faki

2024/05/01 10:31

旧環境が保守切れバージョンのRHELだったので、OSについては変えざるを得なかったんですよね。 もう少し調べてどうしようもなければ、 コストや時間の面はさておき現行の最新Ver環境で使う前提で再調整を進めようかと思います。
Eggpan

2024/05/01 10:35

RHEL7利用していて、これを変えないといけないのならCentOS7にすればよいのではないでしょうか? OSだけアップデートしてもPHPがそのままであれば何の意味もないし、ソースからインストールしていることによる別の問題が発生する可能性もでるかと思います
guest

回答1

0

ベストアンサー

どうしてもソースコードからのインストールが必要であれば、opensslもソースコードから持ってくる必要があります。
openssl 1.0 系はサポートを終了しており、新しいOSでは対応バージョンのパッケージが存在しないためです。
他の拡張機能についても同様である可能性もあります。

以下はopensslを含めた、最小限の拡張機能をインストールする例です。
(PHP5.4がインストールできるというだけで、内部利用されているライブラリのバージョンはRHELのものと異なる可能性があります)

bash

1# コンパイルに必要なパッケージをインストール 2dnf install -y autoconf gcc-c++ libxml2-devel 3 4 5# OpenSSL 1.0.2u を/usr/local/openssl-1.0.2u にインストール 6cd /usr/local/src/ 7curl -O https://www.openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz 8tar xf openssl-1.0.2u.tar.gz && rm -f openssl-1.0.2u.tar.gz 9 10cd /usr/local/src/openssl-1.0.2u/ 11./config --prefix=/usr/local/openssl-1.0.2u 12make && make install 13 14 15# ICU60を /usr/local/icu-60にインストール 16cd /usr/local/src/ 17curl -LO https://github.com/unicode-org/icu/archive/release-60-3.tar.gz 18tar xf release-60-3.tar.gz && rm -f release-60-3.tar.gz 19 20cd /usr/local/src/icu-release-60-3/icu4c/source/ 21./configure --prefix /usr/local/icu-60 22make && make install 23 24 25# PHPをインストール 26cd /usr/local/src/ 27curl -LO http://museum.php.net/php5/php-5.4.16.tar.gz 28tar xf php-5.4.16.tar.gz && rm -f php-5.4.16.tar.gz 29 30cd /usr/local/src/php-5.4.16/ 31./configure --prefix=/usr/local/php5.4 \ 32--enable-embedded-mysqli \ 33--enable-intl \ 34--enable-mbstring \ 35--enable-soap \ 36--enable-zip \ 37--with-icu-dir=/usr/local/icu-60 \ 38--with-openssl=/usr/local/openssl-1.0.2u 39make && make install

動作確認

/usr/local/php5.4/bin/php -v PHP 5.4.16 (cli) (built: May 1 2024 11:23:20) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies /usr/local/php5.4/bin/php -m [PHP Modules] Core ctype date dom ereg fileinfo filter hash iconv intl json libxml mbstring openssl pcre PDO pdo_sqlite Phar posix Reflection session SimpleXML soap SPL sqlite3 standard tokenizer xml xmlreader xmlwriter zip [Zend Modules]

投稿2024/05/01 11:33

Eggpan

総合スコア3257

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

faki

2024/05/02 07:26

細部まで考慮頂いた内容をコメント頂きありがとうございます。 おかげさまで無事にインストールが出来ました。 またご記載頂きました動作確認と同じ内容の出力も確認出来ております。 現行の環境には他にもモジュールの追加がされているようなので、 そちらについてはまた自身で調べつつ対応を頑張ってみます。
Eggpan

2024/05/02 07:54

コメントにも少し書きましたが、インストールが極めて大変なのでおすすめできる方法ではありません。 単にRHEL7利用が駄目なのであれば、パッケージがほぼ同じであるCentOS7にして、サイバートラストなどの延長サポートを利用するほうが移行にかかる時間は格段にへらせるとは思います。 ローカルでの開発環境構築で結局困ることはでてくるでしょうし、私であればDockerで環境を作り直します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問