WordPressを利用してアプリケーションやサービス、ウェブサイトを作成している時にローカル環境を作成します。その時にWordPressでMySQLが起動できず、phpmyadminが確認できない問題が発生しており、mac環境での解決策を探していました。ただ、いくつか記事を見ていてわかりにくかったので問題と、解決策をご紹介します。
WordPressをmampで起動するための方法
そもそもですが、WordPressをmampで起動するための方法で間違いないがないか確認する必要があります。特に他に設定をしていない限りは、バズ部さんの記事である程度の導入ができるかと思います。
ローカルでphpmyadminの設定をする
バズ部さんの記事にも書かれていますが、WordPressを導入すると初期画面の方で、wp-adminの画面にリダイレクトされます。そこでろーかるのDB環境の設定をします。特に複雑なこともないので、順番通りに作業していただければ問題ないはずです。
MAMPでMySQLが起動できない問題
最終的にこちらの記事で、my.cnfを新規でmampの構成フォルダの中にあるconfの中に作成します。
やることは基本的に2つあります。
- 最初にmysqlの起動のプロセスを確認する
- my.cnfを新規で作成する
こちらが、my.cnfの内容を追加します。これで基本的に解決するかと思います。ログも下記のサイトのようにデバッグすることができれば解決できます。
[mysqld] default-storage-engine = InnoDB innodb innodb_force_recovery = 1
ローカル環境と本番環境の設定に注意
ローカルのDBと本番環境の設定はwp-config.phpで記述を出し分ける必要があります。筆者はロリポップを利用していたので、ロリポップのサーバーの設定が書かれていましたが、ローカル環境に同一のコードを持ってくるとエラーになります。
ローカル環境からロリポップのサーバーに繋がらない
ローカルのWordPress環境だと、ロリポップで稼働しているサーバーにアクセスできないという問題がありました。表示上は、「データベース接続エラー」となっています。WordPressのデータベースが接続できていないために表示されるエラーのことですね。
ローカル環境とリモート環境の同期
ローカル環境とリモート環境を同期する方法もあるかと思いますが、ローカル環境は別でphpmyadminでデータベース(DB)を作成して、コードを含めて出し分けるのが一番良いかと思います。
ローカル環境とリモート環境を出し分ける場合は下記のようにコードを変更するのが良いかと思います。それ以外にもステージング環境などを作成している場合もありますが、ステージング環境は本番環境と同一のDBを利用している場合は問題なく起動できます。
if ($_SERVER["SERVER_NAME"] !== 'localhost') { // 本番設定 } else { // ローカル設定 }