私は Vagrant と Codception を使用していますが、アプリケーションのローカル性をテストしたい場合は、LAMP (またはそのようなもの) サーバーで実行する必要があります。Vagrant でデータベースを使用するにはどうすればよいですか?
1 に答える
必要なのは、ホストからゲスト マシン (vagrant ボックス) で実行される mysql サーバーへのアクセスをセットアップし、codeception.yml 構成で適切なデータベース DNS を設定することだけです。
一般的な手順は次のとおりです。
1) vagrant の mysql サーバーがボックスへのすべてのインターフェイス ssh をリッスンできるようにするには、mysql の my.cnf 構成で「bind-address」オプションを設定し、その値を 0.0.0.0 に変更します。
2) ホストからデータベースへの接続に使用される適切な権限を mysql ユーザーに付与します。これは、mysql クライアントを使用して次の SQL コマンドを実行することで実行できます。
USE mysql;
GRANT ALL ON *.* to root@'192.168.0.1' IDENTIFIED BY 'mypass';
FLUSH PRIVILEGES;
rootとmypass - codeceptionからデータベースに接続するために使用されるデータベース ユーザーとそのパスワード、および192.168.0.1 - ホストの IP (Gest のホストの IP を取得する方法については、こちらを参照してください)
3) vagrant の mysql サーバーを再起動します。
4) ホスト実行から vagrant の mysql への接続をテストするには
mysql -h 192.168.33.10 -P 3306 -u root -p
(ここでは192.168.33.10 - 実行中の vagrant ボックスの IP)
5) codeception.yml ファイルで DNS を設定します。
modules:
config:
Db:
dsn: 'mysql:host=192.168.33.10;dbname=MyDB'
user: 'root'
password: 'mypass'