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)

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

サンタァ!(体重)今何キロ!?

572kg(1260pound)


学内CTFとやらに参加してきました

【学内者初心者向けCTF】TDU CTF - connpass

結果から言いますと、解けた問題が少なすぎて僕の人権は失われました
そのためWrite upは他の優秀な方々がやってくれると信じて、僕は駄文でも広げておきます


事の始まり

前日の夜

この時点でCTFで使う予定のVAIO君は出荷当時の状態でした
本当はワインを一人寂しく飲みながらVAIO君の設定をするはずだったのですが、どこからともなく現れた美少女サンタさんに右耳を刺激されいつの間にか朝ちゅんを迎えていたのです

当日の朝
「朝飯食べながらVAIOの設定をするか」そう考えつつノズルを捻り、火照った体を潤すために昨日の残りであるワインを煽った...
焼けるように喉が熱くなる...
ヌーボー地方の地や風を体全体で感じる...
この時の僕はただの馬鹿野郎だった

当然会場につくまで準備なんてしておらず、挙句の果てに開発環境であるarchlinuxのイメージをUSBに入れ忘れて何も入っていないVAIOでCTFを受ける羽目になりましたとさ
ちゅんちゅん

Install Battle

最低限問題が解けるようにと入れたものたち

  • Kaoriya vim
    Windows環境でVimを使いたいならこれ
    高性能なテキストエディタ
    quickrun.vimを使えば、書いたコードを即時実行できるから採用

    • 文字化けが多すぎてほとんど使ってない
  • msysgit
    vimプラグインであるneobundle.vimを使用するためだけに導入
    cmdからgitコマンドを叩けるようになったりと昔はお世話になりました

  • php
    CTFをするときに僕はphpを使ってます
    quickrun.vimに対応しているのはもちろんのこと、手軽に扱える言語なのもGOOD
    使っている一番の理由は base64_decode() みたいな関数が多いこと

    • vimの所為でお蔵入り
  • GIMP
    便利な画像編集ソフト
    なんか使う機会がありそうだったので導入

    • 使う機会なんてなかった
  • firefox
    普段IEを使わない所為か要素の検査がさっぱり過ぎて導入
    firebugなんかなくたって何とかなる

  • IDA
    なんか最初のミニ講義っぽいのでおすすめされていたので導入してみた
    モナリザみたいな肖像画のアイコンが怖すぎて夢に出そう


結果は8位(?)と散々な感じでしたが、とても楽しい6時間でした
SONY製のVAIO Proerに脅されて怖かったです
主催の@nomuken氏、運営スタッフの皆様方お疲れ様でした
次回もこのようなイベントを楽しみにしております

ありがとうVAIO Pro

WindowsとIEはズッ友

ググってもまともな記事がなかったから書く。

 

職場のWindows 7 Ultimate 64bitに入っているグラフィックドライバーをアップデートしようとGeForce Experienceを起動させると、『序数459がダイナミックライブラリーurlmon.dllから見つかりませんでした』なるメッセージが出て弾かれた。

urlmon.dllでググってみても参考になりそうなものがなかったので、GeForce Experienceを再インストールすることで事なきを得た...が肝心の問題は解決しておらず。

真っ先に引っかかる記事の通りにurlmon.dllを引っ張ってこようと思ったのだが、そもそも ~\Windows\system32\dllcache\ なんてディレクトリは見つからないし、urlmon.dllが他のディレクトリからわんさか見つかるわでクソッタレだった。

序数459がダイナミックライブラリーurlmon.dllから見つかりませんでした... - Yahoo!知恵袋

 

あきらめムードでCrystalDiskMarkをインストールのち起動させてみると、またもや忌々しいメッセージが...

GeForce Experienceのときもそうなのだが、このメッセージの後必ずhtmlファイルのインストールを要求される。今回DiskMarkで指定されたのはMainS.htmlなのだが、ディレクトリの中には同じ名のhtmlファイルが存在していた。

MainS.htmlって名前だけでなんとなく察してはいたけど確認のためにファイルを開いてみる。f:id:muni_sys:20141024232816p:plain

予想通りDiskMarkは背景にhtmlファイルを用いているようだ。(やっとここでアプリケーション内でhtmlファイルを背景等で使用をする際にエラーを吐いているのではないか説が浮上。)

IEが起動しなくなった的な投稿もあったのでIEを試してみようと思ったらIEが見当たらない。

あっ...(察し)

IEインストール後にレジストリ書き換えたのか再起動を要求されたので十中八九IEが原因だと断定、もちろんメッセージも表示されなくなった。

 

まとめ

urlmon.dllはWindowsアプリケーションで使われるっぽい。*1

つまるところIEはurlmon.dllをアップデートさせる唯一の手段のため、Windowsを使う以上切っては切れぬ存在である。

「情強はIEなんて糞ブラウザをアンインストール」とか言うのはむしろ情弱になるので気を付けてください。むしろ積極的にIEをアップデートするべきでしょう。*2

*1:urlmon.dllの補足説明ください

*2:要出典

neocomplcacheからneocompleteに変える

なんとなくneocompleteに乗り換えをしてみようと思った
if_luaに対応していないと使えない的な記載をどこかで見たような気がしたので、vimを開いて

:version

で確認してみる
f:id:muni_sys:20141003005001p:plain

luaに対応してるっぽいので.vimrcをごりごり書き換える

NeoBundle 'Shougo/neocomplete.vim'

"------------------------------------------------------
" neocomplete
" neocompleteを起動時に有効化
let g:neocomplete#enable_at_startup = 1
" 大文字が入力されるまで大文字小文字を無視
let g:neocomplete#enable_smart_case = 1
" アンダーバー区切りの保管を有効化
let g:neocomplete#enable_underbar_completion = 1
" キャッシュの最大文字数を3文字に
let g:neocomplete#min_syntax_length = 3

neocomplcacheと設定方法がほぼ変わらないので置換でサクッと終える

ついでに.vimrcを変えるついでにneosnippetの保管予想一覧をtabで移動するように設定した

"------------------------------------------------------
" neosnippet
let g:neosnippet#snippets_directory='~/.vim/snippets/'
" TABキーで補完の移動をしたい
inoremap <expr><TAB> pumvisible() ? "\<C-p>" : "<TAB>
imap <expr><TAB> neosnippet#jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
" <C-k>で展開
imap <C-k> <Plug>(neosnippet_expand_or_jump)
smap <C-k> <Plug>(neosnippet_expand_or_jump)

ばっちりでござる

Manjaroを仮想環境にしたかった

『このブログを書くまでにManjaroを6回アンインストールしてます』
むに

Manjaroってなに?

ManjaroはArchLinuxから派生したディストリビューションである
ArchLinuxの自由さを受け入れつつ、ArchLinuxのインストールより遙かに簡単なので初心者におすすめ

この記事はなに?

上記の売り文句に騙された私がManjaroを最低限使えるようにするまでの軌跡

ManjaroInstallBattle

個人的にハマッたところ以外は参考ページ張っとく

VirtualBoxのインストールと設定、Manjaroのインストール

VirtualBoxの設定はほぼここを参考にした
Windows で VirtualBox + Arch Linux (Xfce + Slim) - けいれん現象の幽玄美よ

初期にインストールされるウィンドウマネージャーはイメージファイルによって変わってくるので適当にググると良さ
awesome
Manjaro Awesome WM Respin プロジェクト日本語トップページ - SourceForge.JP
Xfce
Get Manjaro | Manjaro Linux

pacman yaourtの設定

だいたいここら辺を見れば何とかなると思ってた
arch - Linux ディストリビューション Manjaro Linux の使い方 vol.1 - Qiita

そんなことはなかった

sudo pacman -Syu

システムのアップデートをしたかったのだが...

error: pacman: signature from "Rob MoCathie <kurrode@gmail.com>" is unknown trust
:: File /var/cache/pacman/pkg/pacman-4.1.2-6.2-i686.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it?[Y/n]

なぜかコンフリクトが起こる
どうやらArchでは個々のパッケージに認証を行っており、それの可否がpacmanのインストール対象に関わってくるらしい
なのでpacmanの設定を『認証済み以外のパッケージもインストール』に変えてやる

sudo vi /etc/pacman.conf

この中にあるSigLevelを以下の通りにする

SigLevel = TrustAll


これで無事にアップデートができましためでたしめでたし

日本語設定

日本語の設定 - Manjaro Linux
フォントはその界隈におすすめされたttf-ricty

yaourt -S ttf-ricty

日本語はきれいになったんだが、英語記号がガバガバでとてもつらい
3時間考えてウィンドウマネージャーにその設定が反映されてないのでは説が浮上
awesomeの設定ファイルとの格闘を始める
まずは設定ファイルのコピーとawesomeのレイアウトを決めているtheme.luaの書き換え

cp /usr/share/awesome/themes/default ~/.config/awesome/
cp /etc/xtg/awesome/themes/rc.lua ~/.config/awesome/
vi /.config/awesome/themes/default/theme.lua

theme.fontを書き換える

theme.font = "Ricty 12"

次に設定ファイルの参照位置を書き換える

vi .config/awesome/rc.lua

fontで検索をすればパスっぽいものを指定している行が見つかるので以下のように書き換える

beautiful.init("~/.config/awesome/themes/default/theme.lua")

これできれいなフォントがあなたの元に

ちなみに.config/awesome/themes/default内のbackground.pngファイルをほかのpngファイルに置き換えれば背景画像が変わる
また、rc.luaの最初の方に書かれているterminal=""みたいなところでターミナルエミュレーターの変更ができる

その他

terminatorがなんかよさげだと神からのお告げが

sudo pacman -S tarminator
vi .config/terminator/config

書き加えた設定は以下の通り

[global_config]
  title_transmit_bg_color = "#111"
  inactive_color_offset = 0.4
[keybindings]
[profiles]
  [[default]]
    scrollbar_position = hidden
    background_image = None
    background_darkness = 0.8
    background_type = transparent
    use_system_font = False
    font = Ricty 12
  [[mysetting]]
    background_image = None
    background_type = transparent
    scrollbar_position = hidden
[layouts]
  [[default]]
    [[[child1]]]
      type = Terminal
      parent = window0
      profile = default
    [[[window0]]]
      type = Window
      parent = ""
[plugins]

後は上記の通りrc.luaにterminatorを書き加えたら透過されたかっこいいターミナルがデフォルトになる、やったぜ

f:id:muni_sys:20140930013719p:plain

  • Mod4を無変換に割り当てる

割とハマッた

vi .Xmodmap

無変換はkeycode 102らしい

keycode 102 = Super_L

後は.xinitrcに

xmodmap ~/.Xmodmap

を書き加えるだけでwinキーとおさらばできる

chsh
/bin/zsh

感想

すっげー死にたくなった
Manjaro文献少なすぎるのでつらかった
ただインストール自体は簡単なので、Mな方は是非挑戦してみては?

hanayo.phpでかよちんのおなかをいっぱいにする

小泉花陽はいつもおなかを空かせています.

私はいっぱいたべるキミ(かよちん)が好きなので,かよちんにご飯を食べさせてあげます.

https://github.com/munisystem/hanayo

 

使い方:

Twitter Developersからキーとか回収してください.

access_tokenとか書いてあるところに取得したキーを入れてください.

cmdとかターミナルとかでphp hanayo.php叩いてください.

かよちんは幸せになれます.

 

補足説明:

じつは簡単にはかよちんはおなか一杯になれません.

おこめ per minutesはtwitterの検索結果最新100件からcreated_atの一番遅い物のと現在時間を比較して算出します.

つまりおこめの収穫量はみんなの「"おこめ"」ツイート依存です.

かよちんの笑顔が見たいのでみなさん語尾におこめとかつけてくださいおこめ.