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

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

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

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

Q&A

解決済

2回答

1755閲覧

PHPのエクステンションを追加

osamuya

総合スコア241

PHP

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

1グッド

1クリップ

投稿2018/10/31 08:29

PHPをコンパイルしてインストールしたPHP7に後からエクステンションを追加しようと思っています。
マニュアル通りの手順で行っておりますがなかなかうまくいきません。デバック方法などおしえていただければと思っています。
CentOS7の環境で、例えばcurlのインストールの場合ですが、

bash

1cd /usr/local/src/php-7.2.11/ext 2cd curl 3phpize 4./configure --with-curl 5make 6make test 7make install

ここまでで特にエラーなどはありません。正常に見えます。
エクステンションのディレクトリは、/usr/local/lib/php/extensions/no-debug-zts-20170718/で、
curl.soが作成されました。
php.iniの設定で、

php.ini

1extension_dir = /usr/local/lib/php/extensions/no-debug-zts-20170718 2extension=curl

ここまでで、Apacheの再起動をしてphpinfoで確認してもcurlが入ってこないです。
php -mの結果も

# php -m [PHP Modules] Core ctype date dom fileinfo filter hash iconv json libxml mbstring mysqlnd pcntl pcre PDO pdo_sqlite Phar posix Reflection session SimpleXML sockets SPL sqlite3 standard tokenizer xml xmlreader xmlwriter

といった感じでPHPに組み込まれませんでした。
curl自体はきちんと動いていて、

curl -L localhost

などでレスポンスがあります。
その他のエクステンションでやってみたりサーバーの再起動、make cleanなどいろいろやりましたが、なかなかうまくいなかないようです。
よろしくお願いします。

phpのバージョンは、

$ php -v PHP 7.2.11 (cli) (built: Nov 1 2018 00:16:28) ( ZTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

となります。

DrqYuto👍を押しています

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

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

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

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

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

guest

回答2

0

修正されているphp.iniは確かに読まれているものですか?

php --infoの出力をextension_dirで検索して、目的のディレクトリになっていますか?

extension_dirを/usr/lib64/php/modulesなど、すでに他のextentionが入っているディレクトリに
設定し、そこにcurl.soをコピーしても同じですか?
↑ 私はこの方法でしかやったことがなく、それでできました。
extension_dirは複数指定できないみたいです。(PHP5でしたが。)

投稿2018/10/31 09:35

編集2018/10/31 09:39
taka-saan

総合スコア665

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

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

osamuya

2018/10/31 09:43

下記にも書き込みましがが、php.iniの設定がなにかしらおかしい感じがしてます。 extension_dirのパスはphpinfo()の内容からすると、間違いはありませんでした。。
taka-saan

2018/10/31 09:46

(念のため)webで使おうとしている場合はecho phpinfo()を設置、コマンドラインから使おうとしている場合はphp --infoを参照してくださいね。
osamuya

2018/10/31 09:59

あ、大丈夫です。どちらも同じ結果になっております。 /usr/local/lib/php/extensions/no-debug-zts-20170718
guest

0

ベストアンサー

php.iniの記述 extension=curl.so のような気がします。

投稿2018/10/31 09:27

colling

総合スコア798

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

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

osamuya

2018/10/31 09:31

ありがとうございます。 現在、以下のような設定になっています。 extension_dir = /usr/local/lib/php/extensions/no-debug-zts-20170718 ;extension=bz2 extension=curl ;extension=fileinfo ....(省略)...... ;extension=pdo_pgsql ;extension=pdo_sqlite ;extension=pgsql 他のものは.soがなかったので、つけないでおいたのですが、おっしゃるように.soをつけて再起動してみても駄目でした。
osamuya

2018/10/31 09:33

ちょっと今変な事象を発見したのですが、php.iniを削除しても問題なくPHPが動いているのですが、これ変ですよね。。
osamuya

2018/10/31 09:35

php.iniの設定が反映されていないということになりますでしょうか。。
colling

2018/10/31 09:36

あ、じゃぁ、編集しているphp.iniが違うかもですね。 ヴァーチャルホスト用のphp.iniとかphp.iniは複数あるので、phpinfo()を設置してみて、動作時のphp.iniのパスをみてください。
osamuya

2018/10/31 09:42

Configuration File (php.ini) Path /usr/local/lib という結果でしたが、該当のphp.iniはありませんでした。。 findで全文検索してみましたが、現在のOSの中にはphp.iniが無い状態になっています。(が、phpは動いています。)
colling

2018/10/31 09:47

# php -i | grep php.ini してみてください
osamuya

2018/10/31 10:00

ありがとうございます。# php -i | grep php.iniの結果は、なしになりました。なんか変です。。
colling

2018/10/31 10:03

Configuration File (php.ini) Path と Loaded Configuration File の2つあると思うのですがLoaded Configuration File のパスはどうなっていますか?
osamuya

2018/10/31 10:05

Loaded Configuration File (none) になっています。
colling

2018/10/31 10:10

ちなみに。質問のところで編集していた php.iniのパスはどこですか?
osamuya

2018/10/31 10:14

あ、すみません。 /etc/php.ini になります。 経緯から申し上げればよかったと思うのですが、yumでインストールしたPHPをいったん削除してPHPをコンパイルしてインストールしました。
colling

2018/10/31 10:26

あとからエクステンションを追加する方法はこちらが参考になるかと思いますが、 http://hlis-toproad.com/blog/2015/02/24/338/ それより先に、web側から見て動いているphpがどこにあるのか確認した方が良さげですね、、。
osamuya

2018/10/31 10:45

ありがとうございます。ちょっといろいろパラメータ確認してもう一度やってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問