ブログの環境として有名なWordpressを少し使ってみたいと思い、もしRailsを動かしているのと同じサーバで動かして公開させようとしたらできるのかな?と思い試してみた際のメモです。

環境としては、
OSはubuntu 12.04 64bit
Ruby on rails 3系 をPassenger上で動かしています。
そこにWordpressも共存させてみました。

***

[php5をインストール]
sudo apt-get update
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
sudo apt-get install php5-cgi php5-mysql libphp-phpmailer php5-gd libjs-prototype libjs-scriptaculous tinymce libphp-snoopy libjs-jquery php-gettext libjs-cropper

php -v
でインストールされているか確認

[ApacheとMySQLをインストール]
ApacheとMySQLはすでに入っているので今回は省略

[MySQLにデータベースをつくる]
(今回はすでに作ってあるユーザでDBを作った)
mysql -u username -p
でmysqlに接続
create database wordpressdb;

[WordPressをダウンロード]
rootではないユーザでログインしなおし、
mkdir wordpress
cd wordpress
wget https://ja.wordpress.org/wordpress-4.0-ja.tar.gz

[ダウンロードしたWordpressを解凍する]
tar zxvf wordpress-4.0-ja.tar.gz
解凍した後のディレクトリ名を好きな名前に変えておく
mv wordpress mywordpress

[ファイルの所有者とパーミッションを指定]
cd mywordpress
chown -R username .
chmod -R 755 .

[WordPressを展開したディレクトリへのシンボリックリンクを貼る]
すでにmyrailsappというrailsのアプリケーションをサーバで動かしていると仮定して、そこのpublicディレクトリからwordpressのディレクトリへのリンクを作る
ln -s /home/username/wordpress/mywordpress/ /home/username/rails/myrailsapp/public/mywordpress

[Apacheをリスタートしてアクセスできるかどうか試してみる]
(rootユーザでログインしなおして)
アパッチを再起動
/etc/init.d/apache2 restart
http://example.com/mywordpress
にアクセスしてみたけど、うまくいっていないもよう
http://urx2.nu/g4ea
ここを見てみると、事前にいろいろと設定する必要があるらしい。

[Wordpressのいろいろを設定する]
まず、展開したwordpressのディレクトリ中で
mv wp-config-sample.php wp-config.php
で、設定内容を書き換えていく
vim wp-config.php
http://wpdocs.sourceforge.jp/Editing_wp-config.php
設定内容は上記を参照。
その後、
http://example.com/mywordpress/wp-admin/install.php
にアクセスする

[Railsとの競合を解消する]
設定はできたけど、railsと競合してしまっているのか、アクセス出来ない
http://masalib.hatenablog.com/entry/2012/08/05/030628
ここによると、apacheの設定ファイルに追記が必要なもよう
自分の環境だとhttpd.confには何も書いていないので、passengerの設定ファイルを編集
(rootで)
vim /etc/apache2/sites-available/rails

=====

(省略)

PassengerEnabled off # turn off Passenger for /blog subdirectory


=====
上記のように Passengerをoffにする設定を書いて、
Apacheを再起動させて再びアクセスしたらできた!

ということで、railsとwordpressを共存させた時のメモでした。



おまけ
[BASIC認証をかける]
今のところ公開する予定はないのでBASIC認証をかけておく
~/wordpress/privlog に.htaccessと.htpasswdを作成する
===.htaccess===
AuthType Basic
AuthName "UserName and Passwd"
AuthUserFile /home/username/wordpress/mywordpress/.htpasswd
require valid-user
=============

===.htpasswd===
http://www.luft.co.jp/cgi/htpasswd.php
ここらへんでBASIC認証のIDとパスワードを作って貼り付け
=============