-
Notifications
You must be signed in to change notification settings - Fork 17
FAQ
環境が立ち上がらない場合はエラーメッセージから原因を特定してください。内容がわからない場合はエラーメッセージで検索することで参考になる情報を見つけられるかもしれません。
また、コンテナのログにもエラーメッセージが書かれている場合があるので確認してみましょう。
// ログを確認する
$ docker-compose logs -f
このリポジトリのコードと比較してみましょう。コードは章ごとに確認できるようになっています。 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
コンテナが起動しているか確認してみましょう。
// コンテナが起動しているか確認
$ docker container ls
(または docker-compose ps)
※ WindowsでGit Bashなどを使っている場合は winptyを使うなどの対応が必要です。
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
アプリケーションの実装前にレコードを追加したい場合は以下の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 に追加してコンテナの初回起動時に実行する方法があります。
第1刷では本編の記述に誤りがあり、phpunitをComposerでインストールする必要があります。
composer.jsonを開き、このようにphpunitがインストールされているか確認してください。
詳細は正誤表を確認して下さい。
phpunitを実行してもエラーが出る場合は以下を確認してください。
- テスト用のDBである
testデータベースは作成されていますか?-
CREATE DATABASE test;で作成できます。
-
- app.phpにテスト用のDB情報は設定していますか?