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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

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

CakePHP

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

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

Q&A

解決済

1回答

4215閲覧

composer installに失敗します[Undefined variable: baseDir]

AkikoS

総合スコア11

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

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

CakePHP

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

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

0グッド

0クリップ

投稿2017/01/27 11:19

###前提・実現したいこと
既存ソースを元に、PHP(CakePHP)の環境をLinux(Ubuntu)上に作ろうとしています。
composer.json,composer.lockファイルが存在していたため、
composer installを実行したのですが、
エラーが出てしまいます。

当方、Composerどころか、PHP、CakePHP、Linuxの知識もなく、
なかなか解決できずにいます。

当エラーの解決のヒントを頂けるとありがたいです。
どうぞ宜しくお願いいたします。

###発生している問題・エラーメッセージ

[ErrorException] Undefined variable: baseDir

###composer.json

JSON

1 "require": { 2 "php": ">=5.4.16", 3 "cakephp/cakephp": "~3.0", 4 "mobiledetect/mobiledetectlib": "2.*", 5 "cakephp/migrations": "~1.0", 6 "cakephp/plugin-installer": "*" 7 },

###試したこと

(1)composer installを実行。下記が表示されました。
(migrationsのinstallで失敗?)

Installing cakephp/migrations (1.1.1) Loading from cache [ErrorException] Undefined variable: baseDir

(2)composer install -vvvを実行。下記が表示されました。
(Exceptionの前後のみ抜粋しています)

vendor/cakephp-plugins.php exists. [ErrorException] Undefined variable: baseDir Exception trace: () at /var/www/html/myProject/vendor/cakephp-plugins.php:2 Composer\Util\ErrorHandler::handle() at /var/www/html/myProject/vendor/cakephp-plugins.php:2 include() at /var/www/html/myProject/vendor/cakephp/plugin-installer/src/Installer/PluginInstaller.php:368 Cake\Composer\Installer\PluginInstaller->updateConfig() at /var/www/html/myProject/vendor/cakephp/plugin-installer/src/Installer/PluginInstaller.php:313 Cake\Composer\Installer\PluginInstaller->install() at phar:///home/xxxxx/bin/composer/src/Composer/Installer/InstallationManager.php:173 Composer\Installer\InstallationManager->install() at phar:///home/xxxxx/bin/composer/src/Composer/Installer/InstallationManager.php:160 Composer\Installer\InstallationManager->execute() at phar:///home/xxxxx/bin/composer/src/Composer/Installer.php:584 Composer\Installer->doInstall() at phar:///home/xxxxx/bin/composer/src/Composer/Installer.php:223 Composer\Installer->run() at phar:///home/xxxxx/bin/composer/src/Composer/Command/InstallCommand.php:119 Composer\Command\InstallCommand->execute() at phar:///home/xxxxx/bin/composer/vendor/symfony/console/Command/Command.php:257 Symfony\Component\Console\Command\Command->run() at phar:///home/xxxxx/bin/composer/vendor/symfony/console/Application.php:850 Symfony\Component\Console\Application->doRunCommand() at phar:///home/xxxxx/bin/composer/vendor/symfony/console/Application.php:193 Symfony\Component\Console\Application->doRun() at phar:///home/xxxxx/bin/composer/src/Composer/Console/Application.php:227 Composer\Console\Application->doRun() at phar:///home/xxxxx/bin/composer/vendor/symfony/console/Application.php:124 Symfony\Component\Console\Application->run() at phar:///home/xxxxx/bin/composer/src/Composer/Console/Application.php:100 Composer\Console\Application->run() at phar:///home/xxxxx/bin/composer/bin/composer:52 require() at /home/xxxxx/bin/composer:24

###補足情報(言語/FW/ツール等のバージョンなど)
Linux(Ubuntu) 14.04
PHP 5.5.9-1ubuntu4.20 (cli)
CakePHP 3.0.6

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

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

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

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

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

guest

回答1

0

ベストアンサー

ざっと調べた感じだと以下の問題(バグ)に該当しているのかなぁと
Undefined variable: baseDir when installing some plugins

composer.lockがある場合、composer installはcomposer.lockに書かれたバージョンをインストールするため、バグがあるバージョンをインストールしようとしちゃっているんですかね。差し支えなければ、composer updateしてみたらどうでしょうか

投稿2017/01/27 15:43

popobot

総合スコア6586

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

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

AkikoS

2017/01/30 02:44

ご回答くださりありがとうございます! しかし残念ながらcomposer updateでも同様のErrorが出てしまいました。。 バージョンは下記の用に変わったのですが。 Installing cakephp/migrations (1.6.7) Loading from cache 他のライブラリとの兼ね合わせなのでしょうか・・。解決が難しいですね。。
popobot

2017/01/30 02:47

一旦composer.lockを削除してもだめでしょうか。 なお、自分の環境で、質問にかかれているcomposer.jsonをもとにcomposer installするとうまくいきましたよ。
AkikoS

2017/01/30 04:21

ありがとうございます!! composer.lockを削除したら、Exception発生せずに終了しました。 lockはバージョンを固定しているものという認識でして、削除してはいけないと思っていました。 (既存ソースはそのバージョンで動いていたはずなので) 削除したことで、composer.jsonに定義されている範囲内のバージョンで 妥当なものが落ちてきたということなのでしょうか。 大変助かりました。実行までしていただき、本当にありがとうございました。
popobot

2017/01/30 04:53

ご認識の通り、composer.lockはバージョンを固定するものなので、通常は削除しません...。 既存の環境ではうまく動いていたのに、他の環境で動かなかったのはよくわかりませんね。 composer.lockがおかしくなっていたのかもしれません。 composer.lockを削除したので各ライブラリのバージョンが以前と変わってしまったので、それによって問題が起きていないか確認したほうがいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問