Google Cloud Platform に Google Compute Engine を構築して、Wordpressを動かすまで(その3 - wordpressらしきものが動いた!)
前回: Google Cloud Platform に Google Compute Engine を構築して、Wordpressを動かすまで(その2 - LAMP環境の構築) - susumuis Info
GCE上に構築したDebian LAMP環境にwordpressをインストール
さて、前回までで、wordpressをインストールする前の役者は揃ったわけですが、 wordpress自体を次のどちらから取ってくるかという問題があります。
- Debianのpackage
- wordpressのサイトから最新
よく、後者でインストールしている記事をよく見かけますし、その方が最新も手に入るし簡単と聞きますが、 セキュリティのパッチとかが出たら常に追いかけなければなりません。その点、package版なら、 aptでupgradeするだけで、セキュリティパッチが当たりますので、とりあえず、 今回は最新を追いかけないでセキュリティはdebianに任せる方法を採用してみます。
susumuis@instance-1:~/public_html$ sudo aptitude install wordpress 以下の新規パッケージがインストールされます: fontconfig-config{a} javascript-common{a} libfontconfig1{a} libgd2-xpm{ab} libjs-cropper{a} libjs-prototype{a} libjs-scriptaculous{a} libphp-phpmailer{a} libphp-snoopy{a} libx11-6{a} libx11-data{a} libxau6{a} libxcb1{a} libxdmcp6{a} libxpm4{a} php5-gd{a} tinymce{a} ttf-dejavu-core{a} wordpress wordpress-l10n{a} wwwconfig-common{a} 更新: 0 個、新規インストール: 21 個、削除: 0 個、保留: 3 個。 11.0 M バイトのアーカイブを取得する必要があります。展開後に 53.1 M バイトのディスク領域が新たに消費されます。 以下のパッケージには満たされていない依存関係があります: libgd2-xpm : 競合: libgd2[仮想パッケージです] 競合: libgd2-noxpm [2.0.36~rc1~dfsg-6.1 が既にインストール済みです] libgd2-noxpm : 競合: libgd2[仮想パッケージです] 競合: libgd2-xpm [2.0.36~rc1~dfsg-6.1 がインストール予定となっています] 以下のアクションでこれらの依存関係の問題は解決されます: 以下のパッケージを削除する: 1) libgd2-noxpm この解決方法を受け入れますか? [Y/n/q/?]Y 以下の新規パッケージがインストールされます: fontconfig-config{a} javascript-common{a} libfontconfig1{a} libgd2-xpm{a} libjs-cropper{a} libjs-prototype{a} libjs-scriptaculous{a} libphp-phpmailer{a} libphp-snoopy{a} libx11-6{a} libx11-data{a} libxau6{a} libxcb1{a} libxdmcp6{a} libxpm4{a} php5-gd{a} tinymce{a} ttf-dejavu-core{a} wordpress wordpress-l10n{a} wwwconfig-common{a} 以下のパッケージが削除されます: libgd2-noxpm{a} 更新: 0 個、新規インストール: 21 個、削除: 1 個、保留: 3 個。 11.0 M バイトのアーカイブを取得する必要があります。展開後に 52.5 M バイトのディスク領域が新たに消費されます。 先に進みますか? [Y/n/?] Y
なんか入りました。ただ、これだけではまだwordpressは動きません。結構ここで挫折する人がいるとか。。。
まず、以下の場所にドキュメントがあるので読んでみます。
susumuis@instance-1:~/public_html$ cd /usr/share/doc/wordpress susumuis@instance-1:/usr/share/doc/wordpress$ ls NEWS.Debian.gz README.Debian TODO.Debian changelog.Debian.gz copyright examples
susumuis@instance-1:/usr/share/doc/wordpress$ cat README.Debian
うん、英語。。。僕による超要約によると
- apacheのルートを
usr/share/wordpress
に向けろ (examples/apache.confを見よ!) examples/setup-mysql
を使えば database と filesystem のセットアップが終わるぜ。/srv/wwwにあるファイルがインストールされることに注意- Wordpress 設定ファイルについて
wp-config.php
は実体として/etc/wordpress/config-$HOST.php
または/etc/wordpress/config-$DOMAIN.php
を読み込むよ!- もしそれらが存在しない場合は 404 を返す
- 複数ブログをやるときは ... (今回は読んでない)
- もっと知りたければ
/usr/share/wordpress/wp-config-sample.php
かhttp://codex.wordpress.org/Editing_wp-config.php
を見てね! - プラグインとかテーマーとかの管理について
以降色々書いてあるけど、とりあえず動かすにはとにかく設定ファイルを作ってしまえば良さそう。なのでやってみます!
susumuis@instance-1:/usr/share/doc/wordpress$ cd examples susumuis@instance-1:/usr/share/doc/wordpress/examples$ sudo gunzip setup-mysql.gz susumuis@instance-1:/usr/share/doc/wordpress/examples$ ls -la 合計 20 drwxr-xr-x 2 root root 4096 4月 25 11:36 . drwxr-xr-x 3 root root 4096 4月 25 11:34 .. -rw-r--r-- 1 root root 2076 9月 13 2013 apache.conf -rw-r--r-- 1 root root 5015 9月 13 2013 setup-mysql susumuis@instance-1:/usr/share/doc/wordpress/examples$ sudo bash setup-mysql -n wordpress localhost PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.029 ms --- localhost ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.029/0.029/0.029/0.000 ms /etc/wordpress/config-localhost.php written Trying to create wp-content directory: /srv/www/wp-content/localhost Setting up permissions Goto http://localhost to setup Wordpress
こんな感じでしょうか?ここまで来るのに相当エラーでまくったので、もう、当てずっぽうで、やっとコマンドが通った状態です。 いずれ本番環境作るときはこうではいけないです。
examples/apache.confを見よというので見てみます。
susumuis@instance-1:/usr/share/doc/wordpress/examples$ cat apache.conf There are several ways to setup Wordpress & Apache in Debian. However the maintainer's recommended way with the helper script `setup-mysql` uses: 以下続く
うわあ。また英語!!><
とりあえず、setup-mysql
スクリプトは使ったので、一番簡単そうな、
## Virtual host VirtualDocumentRoot
以下の設定を参考にしてみます。
ガイドに従ってrewrite
, vhost_alias
もし有効にしてみます。
susumuis@instance-1:/etc/apache2/sites-enabled$ sudo a2enmod rewrite susumuis@instance-1:/etc/apache2/sites-enabled$ sudo a2enmod vhost_alias susumuis@instance-1:/etc/apache2/sites-enabled$ sudo /etc/init.d/apache2 restart
ハマりどころとして、ワンライナーの a2enmod rewrite && a2enmod vhost_alias && /etc/init.d/apache2 restart
をそのまま貼り付けてもダメです。それぞれsudoをつけるか、suでルートになって置かなければなりません。
そして、こんな感じにしました。
susumuis@instance-1:~$ cd /etc/apache2/sites-available susumuis@instance-1:/etc/apache2/sites-available$ sudo vi localhost
<VirtualHost *:80> UseCanonicalName Off ServerName 107.***.***.*** VirtualDocumentRoot /usr/share/wordpress Options All # wp-content in /srv/www/wp-content/$0 RewriteEngine On RewriteRule ^/wp-content/(.*)$ /srv/www/wp-content/%{HTTP_HOST}/$1 </VirtualHost>
ServerNameのところを本当はドメインと紐付けたりしたほうがよいでしょう。 とりあえず、今は手っ取り早くIPに紐付けちゃいました。..***のところは本物のIPを入れてます。
susumuis@instance-1:/etc/apache2/sites-available$ sudo a2ensite localhost Enabling site localhost. To activate the new configuration, you need to run: service apache2 reload susumuis@instance-1:/etc/apache2/sites-available$ sudo service apache2 reload [FAIL] Reloading web server config: apache2 failed!
あれ、リロードできなくなっちまった。ならばログをみませう。
susumuis@instance-1:/etc/apache2/sites-enabled$ vi /var/log/apache2/error.log
そしたら
PHP Warning: require_once(/etc/wordpress/config-107.***.***.php): failed to open stream: Permission denied in /usr/share/wordpress/wp-config.php on line 22
とか
PHP Fatal error: require_once(): Failed opening required '/etc/wordpress/config-***.***.***.php' (include_path='.:/usr/share/php:/usr/share/pear') in /usr/share/wordpress/wp-config.php on line 22
とか書いてある!それなら、(このあたりから大分適当になってきています。すみません)
susumuis@instance-1:/etc/apache2/sites-available$ cd /etc/wordpress/ susumuis@instance-1:/etc/wordpress$ sudo cp config-localhost.php config-***.***.***.php susumuis@instance-1:/etc/wordpress$ sudo chown www-data config-***.***.***.php susumuis@instance-1:/etc/wordpress$ cd /usr/share/wordpress/ susumuis@instance-1:/usr/share/wordpress$ sudo chown www-data . -R
これでどやー!!
なんか動きました。うわースタイルシートとかあたってなくて全然ガタガタですね。でもこれは確かにwordpressです!
ログがここで切れてるので、ここでおしまいです。 ということで、えらいはまりながらも、なんとかGCE上にwordpressを動かすことが出来ました。手順がわかったので今度はもう少しちゃんとやり直して見たく思います。
ここまで長い間お付き合いいただき有難うございました。
蛇足、このエントリはAtomで書きました
このエントリの原稿はベータテスト中のAtomエディタでmarkdown記法を使って書いてみました。 Atomエディタはmarkdownをリアルタイムプレビューしながら記述できて便利です。 まだ日本語の扱いなど難点がありますが、エディタとしては結構使い物になるように思います。これからも使ってみようと思います。