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

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

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

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

10897閲覧

[cakePHP3] composer installがうまくいかない

k499778

総合スコア599

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

1グッド

0クリップ

投稿2016/03/07 15:02

編集2016/03/08 13:30

現在cakePHP3の環境設定をしていて必要なライブラリ類をプロジェクトにインストールしようとしています。
参考サイト:http://libro.tuyano.com/index3?id=4536004&page=3

ちなみに前回の続きになります。
https://teratail.com/questions/29119

無事パスの通った場所にcomposerのバイナリファイルをコピーすることでどこからでもcomposerコマンドは実行できるようになったのですが、新たな問題が発生しました。

「プロジェクト名」直下の「composer.json」のあるディレクトリで
「composer install」を実行したのですが、次のようなエラーが発生してしまいました。

Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Your requirements could not be resolved to an installable set of packages. Problem 1 - cakephp/cakephp 3.2.3 requires ext-intl * -> the requested PHP extension intl is missing from your system. - cakephp/cakephp 3.2.3 requires ext-intl * -> the requested PHP extension intl is missing from your system. - Installation request for cakephp/cakephp 3.2.3 -> satisfiable by cakephp/cakephp[3.2.3].

これのエラーを解決するためhttp://hiroki-tkg.com/?p=1539も参考にし、「PHP extension intl」をインストールしようとしたのですがうまくいきません。

具体的に言うと
「sudo port install php55-intl」
までできたのです。ほぼ最後までできたのですが、
「プロジェクト名」直下の「composer.json」のあるディレクトリで
「composer install」を実行すると、上記のようなエラーが発生してしまいます。

どなたかわかる方がいらっしゃればアドバイスいただきたいです。

ikuwow👍を押しています

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

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

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

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

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

shi_ue

2016/03/08 04:48

『「PHP extension intl」をインストールしようとしたのですがうまくいきません』具体的に何をして、どうなったかがわからなければ、回答のしようがありません。
k499778

2016/03/08 08:19 編集

少々お待ちください
guest

回答1

0

ベストアンサー

php55-intlは入ったのであれば、可能性は二つ。

  • php.iniのphp_intl extensionが無効になっている

→ コメントを外してみてください。

  • php_intlのファイルがどこかに行ってしまっている。

→ 提示してくださったページによると、intl.soらしいので、探して該当するフォルダに格納する。

これを調べてみる&行ってみてください。

投稿2016/03/09 00:49

shi_ue

総合スコア4437

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

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

k499778

2016/03/10 15:23 編集

shi_ueさん 回答ありがとうございます。 忙しくて返答が遅くなってしまいました。 ちなみに申し上げていませんでしたが、 macのXAMPP環境にcakePHP3をインストールしています。 1点目に関しては、 php.iniのphp_intl extensionに関してはコメントを外していましたがうまくいきませんでした。/XAMPP/xamppfiles/etc/php.iniです。「extension=php_intl.so」も追加しています。 ---------------------------------------- ;extension=php_gettext.dll ;extension=php_gmp.dll extension=php_intl.dll extension=php_intl.so ;extension=php_imap.dll ---------------------------------------- 2点目に関しては、 検索すると以下が合致しました。 -------------------------------------------------------------------------------------------------- /opt/local/lib/php55/extensions/no-debug-non-zts-20121212/intl.so /opt/local/lib/php54/extensions/no-debug-non-zts-20100525/intl.so /opt/local/lib/php56/extensions/no-debug-non-zts-20131226/intl.so -------------------------------------------------------------------------------------------------- 一応 /opt/local/lib/php55/extensions/no-debug-non-zts-20121212/intl.soをコピーして 「プロジェクト名」直下の「composer.json」のあるディレクトリに置いてみたりしましたが、「composer install」のエラーは変わらないままでした。
shi_ue

2016/03/10 23:40

コンソールで、php -i | grep extension_dir とやって出たフォルダにコピーしてみてください。
k499778

2016/03/11 15:18

コンソールで、php -i | grep extension_dirを行い、 -------------------------------------------------------------------------------------------------------------- extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20121212 => /usr/lib/php/extensions/no-debug-non-zts-20121212 sqlite3.extension_dir => no value => no value -------------------------------------------------------------------------------------------------------------- と出たので 「/usr/lib/php/extensions/no-debug-non-zts-20121212 」 に「intl.so」を移動しましたが 「composer install」は上記のエラーのままでした。
shi_ue

2016/03/12 00:50

php -m ってやってもモジュールは出てこない感じですか? うむむ・・・mac恐るべし。 virtualboxを使って仮想環境を作ったほうが早そうな感じですね。
shi_ue

2016/03/12 00:58

そういえば、phpのバージョンがどこにも書いてないですね。 php -v で調べてみてください。 intlのモジュールはバージョンが合ってますか?
k499778

2016/03/12 01:01

php -mを実行するとモジュールが出てきました。 [PHP Modules] bcmath bz2 calendar Core ctype curl date dba dom ereg exif fileinfo filter ftp gd hash iconv json ldap libxml mbstring mysql mysqli mysqlnd openssl pcre PDO pdo_mysql pdo_sqlite Phar posix readline Reflection session shmop SimpleXML snmp soap sockets SPL sqlite3 standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zip zlib [Zend Modules] そうなんですかね。
k499778

2016/03/12 01:02

php -vの結果は以下です。 PHP 5.5.29 (cli) (built: Sep 6 2015 20:20:34) Copyright (c) 1997-2015 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
shi_ue

2016/03/12 01:04

ググってたら、 extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.so とフルパスで書けっていうのがありましたが、それはどうですか?
k499778

2016/03/12 01:06 編集

php.iniにでしょうか? 試してみます!
k499778

2016/03/12 01:10

php.iniを以下のように書き換えましたがエラーは変わらずでした。 -------------------------------------------------------- ;extension=php_gd2.dll ;extension=php_gettext.dll ;extension=php_gmp.dll extension=php_intl.dll extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.so ;extension=php_imap.dll ;extension=php_interbase.dll --------------------------------------------------------
shi_ue

2016/03/12 01:11

あと、 php -i | grep Configuration とやって、php.iniの場所を見てみてください。ほかのphp.iniを直している可能性もあります。
k499778

2016/03/12 01:25 編集

php -i | grep Configurationを実行すると以下が出ました。 -------------------------------------------------------- Configuration File (php.ini) Path => /etc Loaded Configuration File => (none) Configuration -------------------------------------------------------- これだ!と思い、/etc/php.ini.defaultを -------------------------------------------------------- ;extension=php_gettext.dll ;extension=php_gmp.dll extension=php_intl.dll extension=php_intl.so extension=php_intl.so/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.so ;extension=php_imap.dll -------------------------------------------------------- のように変更し、一応sudo apachectl restartとかもしてみたのですが composer install のエラーは変わらずでした。( ;∀;)
shi_ue

2016/03/12 01:27

もう一歩ですね。 extension=intl.so でいいんじゃないでしょうか?
shi_ue

2016/03/12 01:33

/etc/php.ini.default を /etc/php.ini にリネームしてください。
k499778

2016/03/12 01:38

/etc/php.ini.defaultを以下のように変更しました。 -------------------------------------------------------- ;extension=php_gettext.dll ;extension=php_gmp.dll extension=intl.dll extension=intl.so extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.so ;extension=php_imap.dll ;extension=php_interbase.dll -------------------------------------------------------- それでもやっぱりできないですね。
shi_ue

2016/03/12 01:42

> /etc/php.ini.default を /etc/php.ini にリネームしてください。 それと、フルパスのものは削除してくださいね。 あと、dllもいらないです。
k499778

2016/03/12 01:48

/etc/php.iniにリネームするとできました!!!!!! composer installを実行すると以下に変わりました。 -------------------------------------------------------- PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.dll' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.dll, 9): image not found in Unknown on line 0 PHP Warning: Module 'intl' already loaded in Unknown on line 0 Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Nothing to install or update Generating autoload files > Cake\Composer\Installer\PluginInstaller::postAutoloadDump > App\Console\Installer::postInstall Set Folder Permissions ? (Default to Y) [Y,n]? No Security.salt placeholder to replace. -------------------------------------------------------- まだすべての意味を把握しきれておらず、 「必要なライブラリ類をプロジェクトにインストールできている」かどうかわかっていない状態ではありますが、 無事 「composer installのエラーを解決する」事ができました。 shi_ueさん、長い間親身に付き合っていただき感謝しています!ありがとうございました!
shi_ue

2016/03/12 01:52

> それと、フルパスのものは削除してくださいね。 > あと、dllもいらないです まさにこれです。これを消せば警告も出ないはずです。 やっと進めますね!頑張ってください!
k499778

2016/03/12 02:04 編集

解決策まとめ 1. 「php -i | grep Configuration」で参照している「php.ini」の場所を確認 2. その場所の「php.ini.default」を「php.ini」にリネーム 3. その「php.ini」に以下を追加  ・extension=intl.so(これだけでいけたことを確認済み) これでcomposer.jsonのある階層で「composer install」を実行することができます。 composer install実行結果 -------------------------------------------------------- Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Nothing to install or update Generating autoload files > Cake\Composer\Installer\PluginInstaller::postAutoloadDump > App\Console\Installer::postInstall Set Folder Permissions ? (Default to Y) [Y,n]? No Security.salt placeholder to replace. --------------------------------------------------------
k499778

2016/03/12 02:06

>shi_ueさん ありがとうございます!ググっても解決できなかったことがshi_ueさんのアドバイスのおかげで解決できました。がんばります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問