RackhubでWordPressを動かしてみた
やほい!
鳥だ!飛行機だ!やっぱり鳥だった!
ここんところはRackhubっていう、最初からある程度環境が整ってるVPSで遊んでるよ!
今日はRackhubでWordPressを動かすところまでやってみたよ〜。
WordPressは世界で一番名の知れたCMSだ。
もくじ
- Rackhubとは?
- Rackhubの初期設定!
- PHP 5.4.Xの動作確認
- MySQLをインストろーるする
- WordPressをインスールする
- WordPressのためにFTPサーバーを設定してあげる
Rackhubとは?
Ruby、node.js、nginx等、最近流行りのアレとかソレが最初から準備されてるVPSなのさ♪
紹介については割愛するので、 いまからPerl/Ruby/Node.jsやるならRackhubを使わない手はない - Cside::Weblog を見てくださいまし。
半月260円という、いかにも「テストに使ってください!」という料金体系でありますっ
ボタンひとつでサーバー初期化だって、ホラ簡単!
使ってみた感じは、何かと「潰しが利かない」系のVPSとあまり変わらない感じのにほひがするのですが( ̄▽ ̄;
※本人がサーバー技術に疎いだけって話もありつつw
さてさて、今日はWordPress動かしてみようかい。
今のところこれでうまくいってるけど、変遷が早いから上手くいかなくなる可能性もあるヨ!
Rackhubの初期設定!
初期設定は以下の辺りを参考に設定しておくんなまし。慣れない人はSSHの鍵設定の辺りでまごつくカモー。
- Rackhub.netでDropboxドリブンなブログ生成環境を整えてみた! - 空繰再繰
- Rackhub用の公開鍵の登録方法 (一部Mac向け) - Gist
- 鍵交換方式によるssh接続( windowsから )
!ここから先の注意!
この記事の執筆者は、Rackhubを使って実験しているだけで、サーバー知識には疎いです。
セキュリティ面で甘々の可能性があります。
飽くまで参考程度に留めてください。
ご指摘は歓迎します。
PHP 5.4.Xの動作確認
SSHでログインするまで完了してる前提でいくよん。
以下のコマンドは、ユーザーがタイピングするところを太字にしてるよ。(一部除く)
まず最初に、色々とちょい古い状態なので"apt-get"でアップデート実行。
時間かかるよ〜!
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
ここからずっと"grub-pc"がエラー吐くんだけど、どうも最新版の"grub-pc"のバグっぽい。
ちょい調べたレベルだと原因、対処法不明。
旧サーバーの画面を確認しておこう。
とりあえず、設定画面にある、ここのURLをブラウザで表示してみんさい。
ここで「php -v」でバージョン確認できるけど、CGI的に動くものが別物な可能性があるから、
実際にはphpinfo()を表示して確かめる必要があったりするのね。
なので、phpinfo();を 実行してみよう。
公開ディレクトリは「/usr/local/httpd/htdocs/」なので、ここにPHPファイルを作る。
ターミナルに戻って以下入力。
$ cd /usr/local/httpd/htdocs
$ sudo vi phpinfo.php
すると、Linuxなエディタ"vi"が開くので、以下のように入力。
操作方法は独特、この辺を参考にしてね! vi / vim コマンド一覧(検索・置換・コピー)
<?php phpinfo();
え?閉じタグ?面倒だから書かない( ̄▽ ̄;
保存したら、Apacheを起動する。
$ sudo apachectl start
起動したら下記URLをブラウザで表示してみよう!
http://(アカウント名).rackbox.net/phpinfo.php
これでPHP 5.4.xの確認は完了!
なお、このままだと、Indexes設定されっぱでディレクトリ一覧が見えちゃったり、
Apacheのバージョン情報が表示されちゃったりするので、その辺はきちんと設定しよう!
Indexes設定の削除方法は以下のとおり。
$ sudo vi /usr/local/httpd-x.x.x/conf/conf.d/default
Options
Indexes FollowSymLinks
で、ローカルでの.htaccessファイルを有効化する
AllowOverride
None
↓
AllowOverride All
ディレクトリ指定で"index.php"や"index.cgi"が見られるようにする。
以下の行を"AllowOverride"の下辺りに追加する。
DirectoryIndex index.php index.cgi index.shtml index.html
また、入ってるPHPモジュールは、「php -m」コマンドでも確認できるよ!
ちなみに、設定を反映するにはApacheを再起動な。
$ sudo apachectl restart
MySQLをインストろーるする
はいお次はMySQLのインストール。驚くなかれ、MySQLは初期状態では入ってないw
入ってるけど、動かし方がわかんない( ̄▽ ̄;
でもご心配なく、優秀な"apt-get"執事が頑張って働いてくれる。
$ sudo apt-get install mysql-server
こんだけ。
PHP、Ruby、Pythonなんかで必要なモジュールも、勝手にインストールしてくれます。
後は画面の指示に従って、rootのパスワードを設定するだけさ〜。
終わったら、ちょっち中身を覗いてみよっか。
$ mysql -uroot -p
Enter password: (パスワードを入力)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is XX
Server version: 5.5.XX
Copyright (c) 20XX, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select host,user from mysql.user;
:
:
mysql> quit
Bye
さて、MySQLは無事動いた。
しかし「CUIでなんかやってられっか!」と思う人も多いだろね。
そういう人にはphpMyAdmin。最近なんか迷走気味だけど。。
でも設定が面倒。面倒だけど設定するw
さて、実際には何やるかっていうと、ファイルをゲットしてZIPを解凍して入れ替えるだけ。
そこに一手間をかけるのが、プロと素人との違いなのさ( ̄^ ̄)b(ホントか?)
ホームディレクトリでもどこでも良いので、HTMLファイルをダウンロードする。
ダウンロードのURLは、phpMyAdminの公式サイトから、ちょっと面倒くさい方法で取得する。
まず、ふつーのブラウザでphpMyAdminのサイトにアクセスする。
ダウンロード一覧から、「phpMyAdmin-x.x.x.x-all-languages.zip」をクリック。
そしたらSouceForgeの画面が開くので、そっから「direct link」ってところを右クリックして、URL(リンク アドレス)をコピーする。
これでやっと、phpMyAdminのダウンロードURLがゲットできた。
で、SSHの画面に戻ろっか。
先ほどコピペしたURLを貼り付ける。URL貼り付けの刑に処す!
$ wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/x.x.x.x/phpMyAdmin-x.x.x.x-all-languages.zip?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php&ts=1347072439&use_mirror=jaist
[1] 20587
[2] 20588
--20XX-XX-XX XX:XX:XX-- http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/x.x.x.x/phpMyAdmin-x.x.x.x-all-languages.zip?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... xxx.xxx.xxx.xxx
:
[1]- Done wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/x.x.x.x/phpMyAdmin-x.x.x.x-all-languages.zip?r=http%3A%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php
[2]+ Done ts=1347072439
で、"ls"でダウンロードできていることを確認。そしたらダダ長いファイル名が( ̄▽ ̄;
$ ls
perl5
phpMyAdmin-x.x.x.x-all-languages.zip?r=http:%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php
やってらんないので、ファイル名を"mv"コマンドで変更する。
$ mv phpMyAdmin-x.x.x.x-all-languages.zip?r=http:%2F%2Fwww.phpmyadmin.net%2Fhome_page%2Findex.php phpmyadmin.zip
続いて、ZIPファイルを解凍。
$ unzip phpmyadmin
Archive: phpmyadmin.zip
creating: phpMyAdmin-x.x.x.x-all-languages/
inflating: phpMyAdmin-x.x.x.x-all-languages/ChangeLog
:
で、phpMyAdminディレクトリを公開ディレクトリへ移動。
$ sudo cp -rapd ~/phpMyAdmin-x.x.x.x-all-languages /usr/local/httpd/htdocs/
$ sudo mv /usr/local/httpd/htdocs/phpMyAdmin-x.x.x.x-all-languages /usr/local/httpd/htdocs/phpmyadmin
よっしゃー以上終了!って思って、喜んでphpMyAdminの管理画面にアクセス!
http://(アカウント名).rackbox.net/phpmyadmin/
するとこんな風にエラーメッセージ。
「 mysqli 拡張がありません。PHP の設定をチェックしてみてください。 」
ちなみにRackhubさんスペックがしょんぼりなので、もし以下のような画面が出たら、更新してくらさい。
にょーん。。。
これをマジで解決しようとすると時間がかかっちゃうので(次回以降のエントリーで紹介)、
取り敢えずの回避策を取るよ。
$ cd /usr/local/httpd/htdocs/phpmyadmin
$ sudo cp config.sample.inc.php config.inc.php
$ sudo vi config.inc.php
で、以下のようにファイルを編集。
$cfg['Servers'][$i]['extension'] = '
mysqli';
↓
$cfg['Servers'][$i]['extension'] = 'mysql';
さて、できたかどーだか食べて見てみよー。
ブラウザで、「http://(ラック名).rackbox.net/phpmyadmin/」にアクセスしてログイン。
で、下記URLにアクセスして表示確認だ!
http://(アカウント名).rackbox.net/phpmyadmin/
すると今度は、ログインしようとすると、
「#2002 MySQL サーバにログインできません」
orz
こいつはどーやら、php.iniにMySQLのソケットの設定してやってないことが原因らしい。
てことで、SSHターミナルから、以下コマンドでMySQLにログインして、MySQLのソケット情報を取得する。
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
:
mysql> status
--------------
mysql Ver x.x Distrib x.x.x
:
UNIX socket: /var/run/mysqld/mysqld.sock
:
Threads: 1 Questions: 573 Slow queries: 0 Opens: 421 Flush tables: 1 Open tables: 41 Queries per second avg: 0.386
--------------
mysql>quit
Bye
で、php.iniを編集。
$ sudo vi /usr/local/php-5.4.0/lib/php.ini
以下の設定が空欄になっているので、先ほど出てきたパスを書く。
pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock
mysql.default_socket = /var/run/mysqld/mysqld.sock
Apacheを再起動。
$ sudo apachectl restart
で、ログインできることを確認。 ∩( ・ω・)∩ばんじゃーい
「phpMyAdminの管理ユーザーが無いどー」っていう問題と、
「mcryptありまへんがなー」って言われる問題は、次回以降のエントリーで( ー`дー´)キリッ
では後始末。DLしたZIPファイルと、旧ディレクトリを削除しよう。
$ rm ~/phpmyadmin.zip
$ rm -R phpMyAdmin-x.x.x.x-all-languages
このままだと公開ディレクトリで誰からでも見えちゃうので、
実際にはBASIC認証やIPアドレス制限をかけるとかしておこう!
WordPressをインスールする
この人一回もマトモにインストールって言わなかったよ!
お褒めのお言葉ありがとうございます(褒めてないし誰も言ってない)
最後に本丸のWordPressをインストールしようか。
でもその前に、phpMyAdminからでもCUIからでも良いので、
WordPress用のDBと、そのDBに対するフル権限を持ったユーザーを作成しねネ!
やり方は、、SQLのコマンドリファレンスとか、phpMyAdmin適当にいじるとかして
設定してくらはい( ̄▽ ̄;
で、DBの設定終わったら、日本語WordPressサイトへGO!
で、wget→展開→公開ディレクトリへ移動→ディレクトリの権限変更。
$ cd ~
$ wget http://ja.wordpress.org/wordpress-x.x.x-ja.zip
$ unzip wordpress-x.x.x-ja.zip
Archive: wordpress-x.x.x-ja.zip
creating: wordpress/
inflating: wordpress/wp-app.php
:
$ rm wordpress-x.x.x-ja.zip
$ sudo cp -rapd ~/wordpress /usr/local/httpd/htdocs/
$ sudo chmod a+w -Rf /usr/local/httpd/htdocs/wordpress
※これだと誰でも書き込めるディレクトリになっちゃうので、できればもう少し狭めの権限を!
保存したら下記URLをブラウザで見てみよー!
http://(アカウント名).rackbox.net/wordpress/
で、改めてURLにアクセス!
http://(アカウント名).rackbox.net/wordpress/
するとインストール画面が!(∩´∀`)∩
頑張ってインストールまでやったってください。
WordPressさんDBのパスワードを入力する時にパスワード丸見えだけど、気にしないであげてください。
SSLじゃないんで通信横取りされたら丸見えだけど、気にしないd(ry
で、ウェブ画面でのインストールが完了してログインしたら、一旦ログアウト。
SSHのほうに戻って、"wp-config.php"を編集するよ。
$ sudo vi /usr/local/httpd/htdocs/wordpress/wp-config.php
FTP利用しないようにするため、どっかに以下の一行を追加。
define('FS_METHOD', 'direct');
さて、これでインストール完了だ!
http://(アカウント名).rackbox.net/wordpress/
wp-admin以下やwp-contentには、きちんと閲覧権限振ったげてね〜。
おまけ:WordPressのためにFTPサーバーを設定してあげる
WordPressはデフォルトでFTP利用になってるんだけど、
前述の通り、wp-config.phpを設定すりゃダイレクトに取ってきてくれる。
なんつーか、だったら最初からそうしとけよってゆーね。。
不要だけど、FTPで遣り取りさせたい時は以下の方法で設定してくだし。
※ちなみに、この方法だと自分(localhost)からしか接続できないみたいなので、外部からの接続が必要な時は別途設定方法を調べてねー。
導入するのはProFTPD、有名なヤツ。たぶん。
まず最初に、現在のポートの状況を確認しよう。
こんか感じになってるはず。
$ netstat -anp
Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 172.XX.XX.XX:22 172.XX.XX.XX:XXXXX ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN -
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
:
さて、またも"apt-get"でProFTPDのインストール。
$ sudo apt-get install proftpd
インストールが終わったら、下記コマンドを実行してみる。
$ proftpd -v
ProFTPD Version 1.3.4a
入ったね!
さて、まずは設定ファイルの編集だす。
$ sudo vi /etc/proftpd/proftpd.conf
以下のニ行をどこかに追加。
AuthUserFile /etc/proftpd/ftpd.passwd
AuthOrder mod_auth_file.c
また、ポート番号を3000番に変更する。
開発用HTTPポートを無理やり大体するかたちだけど、
21番を空けようとするとお金がかかるので。。w
Port 21
↓
Port 3000
次に、アカウントファイルを生成する。
$ sudo ftpasswd --file /etc/proftpd/ftpd.passwd --passwd --name (アカウント名、任意) --uid 2000 -gid 2000 --home /var/www/ --shell /bin/sh
ftpasswd: using alternate file: /etc/ftpd.passwd
ftpasswd: creating passwd entry for user ftp
Password: (パスワードを入力)
Re-type password: (パスワードを再入力)
ftpasswd: entry created
さて、アカウントも作ったので、やっとこ起動だ☆
$ sudo /etc/init.d/proftpd start
で、ポートが増えてるかを確認。
$ netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 172.XX.XX.XX:22 172.XX.XX.XX:XXXXX ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 :::3000 :::* LISTEN -
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
:
こんな風に1つ増えたはずだ。
この状態だと、外からは繋げないみたいだけど、WordPressは中から中のFTPサーバーにつなぐ(自己完結)ので、これで問題なし。
さて、CUIにも飽き飽きしてきている頃だろうと思う。
WordPressの管理画面にログインして、実際にFTPでプラグインが追加できるか確かめてみよー☆
日本語版だと標準の、「 WP Multibyte Patch 」プラグインを入れてみるといーと思うよっ
FTP接続時に、こんな風に設定するのさぁ。
で、「開始」して↓の感じの画面が出れば成功だよ!(プラグインは適当)
以上!
お疲れ様でした!
2012/9/16 デフォルトでPHP5.4.0が入るようになっていたのと、ApacheとPHPの二重化の回避方法が分かったので書き直し