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

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

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

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

Q&A

解決済

2回答

4423閲覧

phpの拡張(openssl)モジュールのインストール手順について

A.S9999

総合スコア16

PHP

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

0グッド

0クリップ

投稿2019/04/19 06:10

編集2019/04/19 06:49

linux環境のPHPのシステムでhttps でアクセスするAPIを導入する予定があり、
現行環境にopensslをいれるか検証しているところです。
※当方は保守を引き継いだため、システム構築当時の状況が分からない状態です。

現行の環境では、php -m で確認したところ、opensslがインストールされていませんでした。
phpinfo()の画面では、opensslの項目(欄)自体が存在しません。
ただ、openssl version で確認すると、バージョンは表示されるため、
opensslは入ってると思われます。

この状態の場合、phpの拡張モジュールインストール手順(phpのext/openssl/配下でmake、make installコマンド実施後、php.iniのextensionの記述を修正)して、有効化する手順が正しいか、ご教示ください。

気になっているのが、既にopensslはインストールされている場合も、拡張モジュールのインストール手順が正しいのか、というところです。
phpinfo()の画面でopensslの項目(欄)がないことも気になります。

検証環境もあるのですが、検証環境では複数apacheがインストールされており、上記手順でうまく動きませんでした。

環境は、古いシステムで、
Red Hat Enterprise Linux Server release 6.6 (64-bit)
Apache2.2.29
PHP 5.6.10
opnessl version で表示されるのは、OpenSSL 1.0.1e-fips 11 Feb 2013
になります。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/04/19 06:25 編集

linuxもいろいろあるので、環境情報正確に質問文内にお願いします。そのうえで、質問にディストリビューションの名前でタグを追加すれば、より的確な助言が得られるかと。
A.S9999

2019/04/19 06:26

ご指摘ありがとうございます。 環境について、追記します。
ockeghem

2019/04/19 06:36

PHPはどうやって導入したものでしょうか?
A.S9999

2019/04/19 07:01

環境構築時の資料では、モジュールから以下のmakeコマンドで導入しているようです。 ------------------------------------------------- # cd /usr/local/src # tar -xzvf php-5.6.10.tar.gz # cd php-5.6.10 # ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --with-zlib --without-iconv --with-mysql --with-libdir=lib64 --enable-pdo --with-pdo-mysql # make # make test # make install
guest

回答2

0

漠然とまとめると、

・phpがopenssl使える状態のコンパイル・ビルドがなされたものであるかどうか、
・phpに対応するopenssl拡張モジュールが入っているかどうか、
・対応するopensslが入っているかどうか、
・php.iniで使えるように設定済みかどうか

という点のチェックが必要で、
phpインストール時期とopensslインストール時期がずれていると、まれに
phpのopenssl拡張モジュールが対応するバージョンとopensslのバージョンが違う恐れがあるので、
ここのすり合わせが必要だった気がします。

投稿2019/04/19 06:28

編集2019/04/19 06:30
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

A.S9999

2019/04/22 12:04

試してみたら、通常の拡張インストール(make makeinstall )の手順で有効にできました。 ありがとうございます。 今後は、本番と同等の環境を用意しようと思います。
guest

0

ベストアンサー

そもそも、HTTPSでPHPのウェブAPIを動かす場合でも、openssl自体は必須(Apacheから利用するため)ですが、PHPからopensslを呼び出す必要はない場合が多いように思います。
今までHTTPで動いていたものを単にHTTPSにするだけであれば、PHPのopensslモジュールを組み込む必要はないと思いますが、どうでしょうか?


PHPのビルド方法の追記ありがとうございます。
これですと、素のPHP5.6.10ということになり、特にパッチもあたっていないと思います。PHP5.6は既にサポート終了しているので、PHPのバージョンアップを急ぐべきかと思います。とくに理由がなければ、最新のPHP7.3を検討すべきです。

投稿2019/04/19 06:57

編集2019/04/19 08:05
ockeghem

総合スコア11701

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

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

A.S9999

2019/04/19 08:11

回答ありがとうございます。 PHPのバージョンについては、顧客と調整し、夏ごろに実施予定でありまして、 まずは現行の5.6.10 でAPI機能を追加したいという状況にあります。
A.S9999

2019/04/19 08:51 編集

また、opensslの導入についてですが、 API機能の追加のソースコードで、 $sXML = simplexml_load_file($url); 結果をXMLで取得するところで、エラーが発生しており、opensslがphpでモジュールとして有効になっていないため、拡張インストールを検討しました。 $url は、httpsからはじまるURLを指定しています。
ockeghem

2019/04/19 09:29

「https でアクセスするAPIを導入する予定」のところですね。確かに必要かもしれませんね。失礼しました
A.S9999

2019/04/22 12:04

試してみたら、通常の拡張インストール(make makeinstall )の手順で有効にできました。 ありがとうございます。 今後は、本番と同等の環境を用意しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問