Vagrant、最終的にはEC2にAnsibleでWordPressを構築を試みる2
・botoが使えないってエラーになる。
→次のURLで解決 https://groups.google.com/forum/#!topic/ansible-project/ftlmfIC1DHk
つまり、ansibleがなぜか現在動いているバージョンのライブラリを参照出来ないっぽいのでこれまたなぜか
hostsにどこのpythonを使っているのか書いてあげる必要があったということ。なぜansible.cfgではないのか
・契約アカウント?で試してたらCredentialエラーが出てて、試しにIAMアカウント作成してそのIAMアカウントを
使ったら成功した。なんで?
・ApacheのVHOSTのRootディレクトリが700だったので403エラーで表示されなかった。755に変更して解決。
・VirtualHostの設定を行う場合、どこかに「NameVirtualHost」の記述が必要。
というより、NameVirtualHostの記述内容とその後のVirtualHostディレクティブの内容に整合性がないといけない。
なので「NameVirtuakHost *:80」の記述があれば、その後<virtualhost *:80>VirtualHostディレクティブが
ないといけない。
もしも<virtualhost {{hostname}}:80>みたいな記述をしていた場合、NameVirtualHost {{hostname}}:80の宣言もないといけない。
整合性が撮れてないと、宣言が足りないとかそんなVirtualHostディレクティブはないとか警告が出る。
・Ubuntuに入ってるApache2のVirtualHostの有効化無効化
sites-availableディレクトリにVirtualHost設定書く
a2ensite {{vhost_filename}} で有効化、a2dissite {{vhost_filename}} で無効化
・Hostの指定が足りない!?
Could not reliably determine the server’s fully qualified domain name, using for ServerName
こんなエラーが出る。hostsファイルに127.0.1.1 にhogehoge.localを追記してあげたら直った
つまり、hostsファイルにhostnameが127.0.1.1で定義されている場合、Apacheが名前解決のエラー出すので、
そこに{{hostname}}.localを追記する処理追加
・Ansible用MySQLの設定追加
Ansibleでmysql_userモジュールを使ってユーザーを追加する際に、MySQLが外部サーバーの場合は(Webサーバーから接続用ユーザーの作成の場合は)
host=%,host=localhostの記述が必要、同時に作れるのか試してない。自分は別のtaskとしてそれぞれ実行(同じユーザー名で別hostのユーザーを2回作成)
リモートユーザーにあたる側(今回はWebサーバー側)にはmysql_clientのインストールが必要
・netstat -ant で現在使ってるポートとか観れる
(適当な解釈、後で意味をちゃんと調べる…かも)
・MySQLが外部からつながらぬ
webとdbをVagrantで分けて作ったら、mysqlコマンドではwebサーバーから接続できるのに、PHPからだと駄目っぽい。
my.cnfの[mysqld]のところに「skip-name-resolve」を追加した。
これは、名前の解決をしないという設定。Vagrantでプライベートネットワークでやっているので、IP直接指定で行っているのでこれでいいや。
・ApacheのRewriteの設定漏れ
UbuntuのApache2.2でRewriteをa2enmodで使えるようにしたはずなのに、動かないな〜って思ってたら、confの設定漏れてた。
AllowOverride をAllにしなかった。。。
ということで?今のところ、Vagrantで作成したVMにMySQLやApacheの設定、それからWordPressの設置は出来るように
なりました。
それとEC2インスタンスを作成することもできた。合わせ技は…別々に動かせばよくね?という事で今回のテーマはここまで。