Pydio in Arch

オープンソースのファイル共有・同期ソフトウェア「Pydio 6.0」がリリース | OSDN Magazine
Pydioなるファイル共有ソフトウェアがとても面白そうなので、 我が家のサーバー機で運用してみることにした

すでにCentOSがインストールされておりapache等の設定も済んでいたのだが、普段開発環境として使用しているArchlinuxのリポジトリ内にpydioを発見したため、これを機にサーバー機のOSをArchlinuxに移行させることにした

実際のところアップデートをかけたらすぐ死ぬようなArchlinuxでサーバーを運用させるのはどうかと思うし、インストールに時間をかけている暇があったらほかのことに時間を費やしたほうが断然いいというのはごもっともである

が、ぶっちゃけ暇だったので構わない

閑話休題

この記事は

  • 最低限必要なサーバーの設定
  • Pydioが実際に使用できる

上記2点について言及する
記事にわざわざする必要がない部分が多いので、リンク多め

OSのインストール

今回はUEFIbootをさせることにした
普段使いのArch Linux: Arch Linux インストール (OSインストール編) | UEFI, GPT, GRUB, 2014.02.01でインストール
が今思えばここが最大のハマりポインツだった
自分があほだっただけだが、DVDをUEFIでbootさせていなかったためインストールしても起動しなかった
電源つけたらdel連打してちゃんと確認してからインストールしましょう終わり

サーバー機のディスク構成は

/dev/sda1 512MB FAT32 /boot/efi
/dev/sda2 100MB ext4 /boot
/dev/sda3 REST ext4 /

  • 2TB HDD

/dev/sdb1 ALL ext4 /subdisk
HDDはインストール後にマウントした
普段使いのArch Linux: Arch LinuxでHDDを新たに追加 | gptパーティショニング、ext4フォーマット
ここでdefaultsをdefaultに書き間違えたため、bootしなくなる
しょうがないのでDVD突っ込んで

#mount /dev/sda3 /mnt
#vi /etc/fstab
#umount /mnt

でfstabを書き直した

SSHの設定

まずは固定IP化
オンボードのLANとintelNICがあるため、NICの名前をわかりやすいものに変えた

#lspci -v (モジュール名の確認)
#dmesg grep | modulename (デバイス名の確認)
#ip a (MACアドレスの確認)
#vi /etc/udev/rules.d/10-network.rules (名前の設定)
----- 
[/etc/udev/rules.d/10-network.rules]
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="(MACAdress)", NAME="9301ct(私の場合)"

今回はnetctlでIPの設定を行う
[Raspberry Pi][Arch Linux] 初期設定 « 備忘録

SSHの設定に関しては各々でだいぶ変わってくると思うので一例のみ
入門OpenSSH / 第5章 より安全に運用するために

#useradd -m -g users -G wheel -s /bin/bash user (作業用のユーザーの生成)
#passwd user
#vi /etc/ssh/sshd_config
-----
[/etc/ssh/sshd_config]
PermitRootLogin no (rootでのログインを制限)

外部からsshでアクセスするなら公開鍵暗号を使用するのが無難
面倒くさいのであと回し

NTPの設定

#su -
#pacman -S ntp
#vim /etc/ntp.conf
-----
[/etc/ntp.conf]
logfile /var/log/ntp.log (logファイルの生成先ディレクトリの指定)
-----
#systemctl start ntpd.service
#systemctl enable ntpd.service

Pydioのインストール

Pydioを動かすのに最低限必要なもの

データベースを使わなくてもPydioを運用することはできるが、挙動が安定しないので選択肢には入らないと思う

Apacheのインストール

Apache HTTP Server - ArchWiki
これ見れば何とかなる

PHPのインストール

PHP - ArchWiki
これも基本的にWikiで何とかなる
Pydioはmcryptを使用するためインストールしておく

ハマリポインツはphpとの連携の際にlibphp5.soが使用できない点
よく見なくともWikiにはちゃんと書いてあるから確認しよう

#pacman -S php php-apache php-mcrypt
#vim /etc/php/php.ini
-----
[/etc/php/php.ini]
extension=gd.so
extension=mcrypt.so
mbstring.detect_order = auto
(uncomment)
expose_php=OFF
file_uploads = ON
upload_tmp_dir = お好きなところで
upload_max_filesize = 2000M (Pydioのアップロード上限に関わる)
-----
#vim /etc/httpd/conf/httpd.conf
-----
[/etc/httpd/conf/httpd.conf]
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so (要Wiki)
Include conf/extra/php5_module.conf
-----

MariaDBのインストール

Arch LinuxにLAMP環境を導入する方法
記事の通りだとうまくいかないのでphp.iniを修正

#vim /etc/php/php.ini
-----
[/etc/php/php.ini]
extension=pdo_mysql.so
extension=mysqli.so
extension=mysql.so (追加)
(uncomment)
-----

MariaDBインストール後はPydioで使用するユーザーとデータベースの生成

#mysql -u root -p
#grant all privileges on pydio.* to username@localhost identified by 'password';
#exit
#mysql -u username -ppassword (生成したユーザーでのログイン)
#create database pydio; (Pydio用のデータベースの生成)
#exit
#systemctl start mysqld.service
#systemctl enable mysqld.service

Pydioのインストール

#yaourt -S pydio (AURから引っ張ってくる)

/shr/share/webapps/pydio/index.php がそれっぽいのでhttpd.confで公開設定を行う

#vim /etc/httpd/conf/httpd.conf
-----
[/etc/httpd/conf/httpd.conf]
ServerName hogehoge.com:80 (グローバルIPアドレスとかドメインとか)
DocumentRoot "/usr/share/webapps/pydio" (公開するディレクトリ)
<Directory "/usr/share/webapps/pydio">
AllowOverride All (Pydioで必要)
Options Indexes FollowSymLinks (Pydioで必要)
<IfModule dir_module>
DirectoryIndex index.html index.php (index.phpの有効化)
</IfModule>
-----
#systemctl restart httpd.service

設定を終えたらローカルIPでサーバーにアクセスする
(192.168.1.2/index.phpみたいな)
この時に

  • 403が出る

→公開設定がミスっているので設定を見直す

  • 真っ白

→ディレクトリへのアクセス権限がない

#chmod 777 /usr/share/webapps/pydio

それでもうまくいかない場合はapacheのログを見る

#cat /var/log/httpd/error_log

設定が済んでいる場合OKとかERRORとかWARNIGとか書かれた項目が出るはず
http://blog.negabaro.com/1072.html
Pydioをさくらにインストールする - ふたりはララベル (Laravel PHP Framework)

あとは記事の通りに進めれば設定は終了
お疲れ様でした