Skip to content
fortkle edited this page Mar 3, 2019 · 4 revisions

環境構築編

Q. docker-compose up -d をしても環境が立ち上がりません

① エラーは出ていませんか?

環境が立ち上がらない場合はエラーメッセージから原因を特定してください。内容がわからない場合はエラーメッセージで検索することで参考になる情報を見つけられるかもしれません。
また、コンテナのログにもエラーメッセージが書かれている場合があるので確認してみましょう。

// ログを確認する
$ docker-compose logs -f

② docker-compose.ymlやDockerfileの記述は正しいですか?

このリポジトリのコードと比較してみましょう。コードは章ごとに確認できるようになっています。 https://github.com/php-book/php-qa-plaza/wiki

また、このリポジトリのコードをgit cloneして使うことで問題が「コードにあるのか」「それ以外にあるのか」の問題を切り分けられるので試してみるのもおすすめです。

③ コンテナを再起動・再ビルドしてみましょう

ごく稀にコンテナが謎のエラーで立ち上がらなかったり上手く動作しない場合があります。エラーメッセージに何も出ていないのにそのような状態に陥った場合は、コンテナを再起動・再ビルドすることで解決することがあります。

// コンテナを再ビルドする (--no-cache でキャッシュを使わずにビルドできる)
$ docker-compose build --no-cache
$ docker-compose up -d
// コンテナを再起動する(イメージも削除する)
$ docker-compose down --rmi all
$ docker-compose up -d

Q. docker exec -it [コンテナ名] bash でコンテナに入れません

コンテナが起動しているか確認してみましょう。

// コンテナが起動しているか確認
$ docker container ls
(または docker-compose ps)

※ WindowsでGit Bashなどを使っている場合は winptyを使うなどの対応が必要です。

Q. mysqlコマンドが使えません (command not found: mysql と表示される)

MySQLをインストールしましょう。

macOSを使っている場合はHomebrewを使ってインストールするのが簡単です。
下記の例では、MySQLでは本編で使用するバージョンに合わせて5.7をインストールします。

// MySQLのインストール
$ brew install mysql@5.7
// PATHを通す(以下はzshでbrew installした場合のPATHの通し方)
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc

windowsを使っている場合はChocolateyを使ってインストールするのが簡単です。
下記の例では、MySQLでは本編で使用するバージョンに合わせて5.7をインストールします。

// MySQLのインストール
$ choco install mysql

Q. questions, answersテーブルにデータがありません

アプリケーションの実装前にレコードを追加したい場合は以下のSQLを実行してください。

INSERT INTO questions (user_id, body, created, modified)
VALUES
  (1, '普段PHPのフレームワークって何使ってますか?', now(), now()),
  (1, 'PHPにあったらいいなと思う機能ってありますか?', now(), now()),
  (1, 'みなさんはいつからPHPを書いてますか?', now(), now());

INSERT INTO answers (question_id, user_id, body, created, modified)
VALUES
  (3, 1, '私はLaravelです!あとたまにYiiを使っています!', now(), now()),
  (3, 1, '僕はCakePHP!', now(), now());

mysqlコマンドやmysqlのクライアント(Sequel Pro, MySQL Workbenchなど)で実行する方法の他に、 initialize.sql に追加してコンテナの初回起動時に実行する方法があります。

テスト編

Q. phpunitが実行できません

① phpunitのインストールは完了していますか?

第1刷では本編の記述に誤りがあり、phpunitをComposerでインストールする必要があります。
composer.jsonを開き、このようにphpunitがインストールされているか確認してください。

詳細は正誤表を確認して下さい。

Q. phpunitを実行するとエラーになります

phpunitを実行してもエラーが出る場合は以下を確認してください。