月別アーカイブ: 2014年6月

Raspberry Piでelggを動かす手順

elggのテスト環境をRaspberry pi(raspbian)で作ってみました。
けっこう手こずったので備忘録として手順をまとめておきます。NOOBSでRaspbianをインストールした直後からを想定しています。

ユーザーの設定

Raspbianをインストールした時点では誰でもログインできパスワードも不要ですが,今回はWebサーバーとして設定するので,ユーザーの設定をします。

rootにパスワードを設定

$ sudo passwd root

ユーザーの追加(私の場合はnishida)

$ sudo adduser nishida

追加したユーザーをsudoersに追加。/etc/sudoers に以下を追記

nishida ALL=(ALL) ALL
Defaults rootpw

sshd_configファイルを修正(/etc/ssh/sshd_config)

PermitRootLoginをnoに。

# Authentication:
PermitRootLogin no

いったんログアウトして追加したユーザーでログインし直し,もともとあるユーザー(pi)を削除。

ここから面倒なのでrootで作業します

$ sudo su
# userdel -r pi

サーバーのインストール

$ sudo su
# apt-get install apache2 php5 mysql-server
# apt-get install php5-mysql php5-gd php-pear phpmyadmin

Apacheの設定

ユーザーディレクトリの設定

(参考URL: http://www005.upp.so-net.ne.jp/develop-tom/deb/apache-deb.html)

# a2enmod userdir
# service apache2 reload

rewriteモジュールを有効化(elggに必要)

# a2enmod rewrite

.htaccessをユーザーディレクトリで有効に
(参考URL: http://www.logos.ic.i.u-tokyo.ac.jp/~s1s5/pukiwiki/index.php?Linux/Debian/apache#z2ad1d69)
/etc/apache2/mods-available/userdir.conf のAllowOverrideをAllに修正。

AllowOverride All

メールの設定

elggではメールを使いますが,Raspbianにはメールサーバーが入ってないので追加します。私は外部のSMTPサーバー(lolipop)を使うためにssmtpを使います。
(参考URL: http://iqjar.com/jar/sending-emails-from-the-raspberry-pi/)

# apt-get install ssmtp mailutils

/etc/ssmtp/ssmtp.conf を以下のように修正。適宜修正してください。

root=email@example.com
mailhub=smtp.lolipop.jp:465
hostname=raspberrypi
AuthUser=username
AuthPass=password
UseTLS=YES

メールアドレスの設定。/etc/ssmtp/revaliasesにwww-dataのメアドを追加します。

www-data:email@example.com:smtp.lolipop.jp:465

SSMTP設定ファイルの権限変更

# chmod 774 /etc/ssmtp/ssmtp.conf

PHPの設定

メールの設定。etc/php5/apache2/php.ini のsendmail_path を下記のように設定。

sendmail_path = /usr/sbin/sendmail -t -i

ユーザディレクトリでphpを有効にする
(参考URL:http://d.hatena.ne.jp/tosi29/20131124/1385285173)

/etc/apache2/mods-enabled/php5.confを見ると、デフォルトではユーザディレクトリ内のWebサイトではPHPが動作しないようになっていた。以下のようにコメントアウトして無効化。
# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_value engine Off
# </Directory>
#</IfModule>

Mysql DBの作成

http://localhost/phpmyadmin でphpmyadminへアクセスし,elgg用のDBとユーザーを作成。
Webで設定できるので割愛。私はelggtestというユーザーとDBを作りました。

elggの設定

私は/home/nishida/public_html/elgg/にelggのファイルを展開し,/home/nishida/elggdataをデータフォルダとしました。

パーミッションの変更など。
ホームディレクトリ(/home/nishida)にて

$ sudo chgrp www-data public_html/
$ sudo chgrp www-data public_html/elgg/
$ sudo chgrp www-data public_html/elgg/engine/
$ sudo chgrp www-data elggdata/
$ chmod 755 public_html
$ chmod 755 public_html/elgg/
$ chmod 755 public_html/elgg/engine/

サブディレクトリの設定。
elggのインストールを開始するとエラーが出ます。URLのルートにサイトを作るのでなければ,.htaccessにサブディレクトリの設定がいるようです。
(参考URL:http://learn.elgg.org/en/latest/intro/install.html)
自動作成された.htaccessファイルを編集。RewriteBaseのところにサブディレクトリを設定。

# REWRITE RULES
RewriteBase /~nishida/elgg/

これでインストールできるようになりました。