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

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

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

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

1604閲覧

Zip Archiveがインストールできない。

chokochokochok

総合スコア46

PHP

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/08/10 13:21

編集2018/08/12 15:28

▼やりたいこと
phpでZipArchiveを使用できるようにしたい

▼環境
php7.1.20
laravel5.5
dockerで環境構築
OS mac

▼困っていること
zipArchiveを使用しzipファイルの解凍を実装したいのですが、
うまくzipArchiveがインストールされておらず
「Your PHP version is not compiled with zip support」とエラーが出ております。
インストールの際に行ったこと以下の内容となります。

・pecl install zipを実行

phpinfoを確認すると、
Zip:Pierre-Alain Joye, Remi Collet」と記載があります。
また、「php -m」と打つと、「zip」があるのも確認できました。

ここからどのようにしたら良いのかわからないので、
どなたかご教授いただければと思います。
どうぞ宜しくお願いします。

【追記】
docker内のphpと開発で使用していたphpが異なっていることがわかったので、
docler内に入り、pecl install zipを実行。
しかし、php --iniで
以下の内容が出ましてcdで移動しましたがphp.iniが見つかりませんでした。。findでも見つかりませんでした。
こちらは、phpのインストールがうまくいっていないのでしょうか?

Configuration File (php.ini) Path: /usr/local/etc/php Loaded Configuration File: (none) Scan for additional .ini files in: /usr/local/etc/php/conf.d Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini

やりたいことは
php.iniを見つけたいです。
何度も質問をしてしまい申し訳ありませんが
どうぞ宜しくお願いします。

【追記②】
①docker内に入る docker exec -it image名 /bin/bash
②sudo find / -name php.ini、sudo find / -name php.ini.default共に実行をしたが、何もヒットしない
③本来/usr/local/etc/php/配下にphp.iniがあれば良いかと思い、コピペで作成しました。
④php --iniを実行
⑤エラー変わらず以下の内容が表示

Configuration File (php.ini) Path: /usr/local/etc/php Loaded Configuration File: (none) Scan for additional .ini files in: /usr/local/etc/php/conf.d Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini

【追記③】
作成したphp.iniの場所が間違えておりました。
/usr/local/etc/php/「7.1」というディレクトリまで作成ししまっていたので、php配下に持ってきました。
その後、php --iniを実行すると
以下のエラーが発生しました。記されているファイルがないというエラーかと思ったので、ディレクトリまで移動して確認しましたが、ファイルは存在していました。
また、権限も以下のようになっていました。
【権限:oci8.so】

-rw-r--r-- 1 root staff 513800 Jul 2 08:17 oci8.so

【php --iniの結果】

PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php/php7.1.12/lib/php/extensions/no-debug-non-zts-20160303/oci8.so' - /Applications/MAMP/bin/php/php7.1.12/lib/php/extensions/no-debug-non-zts-20160303/oci8.so : cannot open shared object file: No such file or directory in Unknown on line 0 Configuration File (php.ini) Path: /usr/local/etc/php Loaded Configuration File: /usr/local/etc/php/php.ini Scan for additional .ini files in: /usr/local/etc/php/conf.d Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/08/10 13:26

OS情報を追記してください。
退会済みユーザー

退会済みユーザー

2018/08/10 13:59

php 自体はどのようにインストールしましたか?
chokochokochok

2018/08/10 14:15

半年前くらいにphpリファレンスからダウンロードしました。5.4とかだったと思います。最近になってdockerでの開発があったので、dockerで環境を構築し、その際にコマンドで7.1.20にバージョンアップしました。
退会済みユーザー

退会済みユーザー

2018/08/10 14:18

php -v で表示されるバージョンと、phpinfo() で確認できるPHPのバージョンを比較してください。
chokochokochok

2018/08/10 14:26

php -v→7.1.20 phpinfo→7.1.15となっております。
退会済みユーザー

退会済みユーザー

2018/08/10 14:30

ということは、PHPが二つ入っていて、コマンドラインから実行されるPHPとWEBサーバーで実行しているPHPが異なっているということです。
chokochokochok

2018/08/10 14:32

ということは片方にバージョンを合わせないといけないということですね!
退会済みユーザー

退会済みユーザー

2018/08/10 14:33

違います。WEBから利用されるPHPにArchiveZIPをインストールしなければならないということです。
chokochokochok

2018/08/10 14:35

webサーバーで実行されているphpをいじるにはどこから実行可能なのでしょうか。。?
退会済みユーザー

退会済みユーザー

2018/08/10 14:41

docker コンテナにSSHでログインして、コマンドで編集します。
chokochokochok

2018/08/11 01:45

コンテナ内にログインし、pecl install zipを実行しました。その後にphp.iniの編集が必要かと思うのですがphpoinfoに記載のあるパスに移動してもphp.iniがなく、findしてもありませんでした。。これはうまく環境が作れていないのでしょうか?
退会済みユーザー

退会済みユーザー

2018/08/11 03:46

php --ini で探してください。
chokochokochok

2018/08/11 04:07

探した結果、以下の内容が出ましてcdで移動しましたがphp.iniが見つかりませんでした。。Configuration File (php.ini) Path: /usr/local/etc/php Loaded Configuration File: (none) Scan for additional .ini files in: /usr/local/etc/php/conf.d Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini
退会済みユーザー

退会済みユーザー

2018/08/11 04:23

ここは「質問への追記修正の依頼」です。質問文に情報を追記してください。私には通知が来るので気づけますが、他の回答者の目につくようにしましょう。
chokochokochok

2018/08/11 04:26

了解しました!色々とありがとうございます。
退会済みユーザー

退会済みユーザー

2018/08/11 04:34 編集

出力された通り、改行して見やすくする工夫をお願いします。
guest

回答1

0

ベストアンサー

bash

1$ php --ini 2Configuration File (php.ini) Path: /usr/local/etc/php 3Loaded Configuration File: (none) 4Scan for additional .ini files in: /usr/local/etc/php/conf.d 5Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini

これは、/usr/local/etc/php にあるはずの php.ini が存在していないことを示しています。
php.ini がない場合、初期値が使われるので、動作には問題がありませんが、設定を変更するときに困ります。
この場合、php.ini.default というファイルを探します。

bash

1$ sudo find / -name php.ini.default 2 3/usr/local/etc/php/7.2/php.ini.default 4/usr/local/etc/php/7.1/php.ini.default 5/usr/local/etc/php/7.0/php.ini.default

こんな感じで見つかると思います。

複数見つかることもあれば、一つだけ見つかることがありますが、バージョンを合わせて、これを/usr/local/etc/phpにコピーします。

bash

1$ sudo cp /usr/local/etc/php/7.1/php.ini.default /usr/local/etc/php/php.ini

bash

1$ php --ini

を実行して、

bash

1Configuration File (php.ini) Path: /usr/local/etc/php 2Loaded Configuration File: /usr/local/etc/php/php.ini 3Scan for additional .ini files in: /usr/local/etc/php/conf.d 4Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini

となれば、OKです。


追記

Docker は普段使わないので…参考までに。

docker php.ini missing で検索すると、

From where is my php.ini being loaded? が見つかります。

読んでみると、状況は同じようです。

投稿2018/08/11 04:44

編集2018/08/11 07:22
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

chokochokochok

2018/08/11 07:13

いつも回答ありがとうございます。 sudo find / -name php.ini.defaultを実行しましたが、php.iniは見つかりませんでした。
退会済みユーザー

退会済みユーザー

2018/08/11 07:14

見つかるのはphp.ini.defaultです
chokochokochok

2018/08/11 07:50

失礼しました。sudo find / -name php.ini.defaultを実行すると何も引っかかりませんでした。そのため、php.ini.defaultが見つかりませんでした。
退会済みユーザー

退会済みユーザー

2018/08/11 08:38 編集

sudo find / -name php.ini をやって見て、何か出てきませんか?
chokochokochok

2018/08/12 14:29

docker内で実行するであっていますでしょうか? docker内で行いましたが、何もヒットしませんでした。ちなみに、ローカル環境のphp.iniの内容をコピーして、docker内に新しくphp.iniを作成してみましたが、phpは読み込んでくれませんでした。 ここまで質問に対して回答ありがとうございます。
退会済みユーザー

退会済みユーザー

2018/08/12 14:43 編集

> docker内に新しくphp.iniを作成してみましたが、phpは読み込んでくれませんでした。 どのように確認しようとして、どうなったから、そう判断したのかが伝わるように記述してください。 > ここまで質問に対して回答ありがとうございます。 諦めたと解釈すればいいですか?
chokochokochok

2018/08/12 14:57

①docker内に入る docker exec -it image名 /bin/bash ②sudo find / -name php.ini、sudo find / -name php.ini.default共に実行をしたが、何もヒットしない ③本来/usr/local/etc/php/配下にphp.iniがあれば良いかと思い、コピペで作成しました。 ④php --iniを実行 ⑤エラー変わらず以下の内容が表示 Configuration File (php.ini) Path: /usr/local/etc/php Loaded Configuration File: (none) Scan for additional .ini files in: /usr/local/etc/php/conf.d Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini >諦めたと解釈すればいいですか? 諦めるとかではなく、やらなければならないので、ここまでお付き合いいただいた感謝を述べた次第です。 諦めてません。
退会済みユーザー

退会済みユーザー

2018/08/12 15:00

③で/usr/local/etc/php/に作ったとあるのに、 ⑤Loaded Configuration File: (none) となるはずがありません。 からのファイルがあるだけでも表示はされるはずです。 「コピペで作成しました。」と書かれているが、できていない。またはapacheに権限がないために読み込みされていない可能性のうちどちらかです。
chokochokochok

2018/08/12 15:26

作成したphp.iniの場所が間違えておりました。/usr/local/etc/php/「7.1」というディレクトリまで作成ししまっていたので、php配下に持ってきました。 その後、php --iniを実行すると 以下のエラーが発生しました。記されているファイルがないというエラーかと思ったので、ディレクトリまで移動して確認しましたが、ファイルは存在していました。 また、権限も以下のようになっていました。 【権限:oci8.so】 -rw-r--r-- 1 root staff 513800 Jul 2 08:17 oci8.so 【php --iniの結果】 PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php/php7.1.12/lib/php/extensions/no-debug-non-zts-20160303/oci8.so' - /Applications/MAMP/bin/php/php7.1.12/lib/php/extensions/no-debug-non-zts-20160303/oci8.so: cannot open shared object file: No such file or directory in Unknown on line 0 Configuration File (php.ini) Path: /usr/local/etc/php Loaded Configuration File: /usr/local/etc/php/php.ini Scan for additional .ini files in: /usr/local/etc/php/conf.d Additional .ini files parsed: /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini, /usr/local/etc/php/conf.d/oci8.ini, /usr/local/etc/php/conf.d/xdebug.ini
退会済みユーザー

退会済みユーザー

2018/08/12 15:29

作成した php.ini に書かれている記述内容が影響していますね。というか、エラー読めばわかると思いますけど。 /Applications/MAMP/bin/php/php7.1.12 とかDocker 内に存在していないパスなんだから、環境に合わせて書き直しましょうってことですわ。
chokochokochok

2018/08/16 02:08

`php zip extension` 同梱版の設定を行ったところ、zipArchiveを使用することができました。 色々と教えていただき、とても勉強になりました。誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問