スキップしてメイン コンテンツに移動

鯖建築

日記をつけたいとおもったのでBloggerでつくった。何日持つかわからないけどちょこちょこ書いていくことに。

FreeBSDでサーバーをたてることにした。(通算n回目

持っているインストールディスクが9.1だったので、9.1からfreebsd-updateして9.2に。

そのあとportsnapやらでportを設定。

マイクラ+ファイルサーバー(重要なもの多数)として利用しているのでHDDが簡単におなくなりになられると困るのでRAIDにしようかと思った。

最近流行ってるのかよくわからないZFSを使ったRAID-Zにしようかと思ったけど、RAID-ZはCPUに負荷かけるしメモリーバカ食いするので採用見送り。
マイクラが結構CPUリソースとメモリーを消費するので他のとこにあんまりリソースさけない。
OSをブートする領域をSSDにしようかなーと思ったけど、2.5インチSSDだから3.5インチに変換するやつなくて断念。とりあえずHDDでいいや。

RAID5にしようかと思ったけど、HDDが2TBだからデータ死んだら復元に時間かかりまくりそう、結局ミラーリングのRAID1にしようかな〜と思いながらてきとーに鯖を構築中。




今回考えてる構成
FreeBSD 9.2
・RAID1
・Apacheかnginx+FastCGI 
マイクラ
・MinecraftServer 
クラウド(ファイルサーバー)
・AjaXplorerかownCloud
・smb 
開発
・Git


CentOSでも別にいいかなーと思いながら、やっぱUnixがいい。

作業内容めも
でかいパッケージコンパイルするときはmake config-recursiveとかで先に選択するとしあわせ

まずアップデート
freebsd-update -r 9.2-RELEASE upgrade マイナーアプデ
freebsd-update install
reboot

portsたんいれる
portsnap fetch ports落としてくる
portsnap extract /usr/portsに展開

vi設定する
echo "set number" >> .exrc

FreeBSDUTF-8化
http://freebsd.server-manual.com/freebsd9_utf-8.html

日本語対応したい
schの文字コードをUTF-8に変更し日本語に設定 vi .cshrc 以下を追加保存 ->setenv LC_CTYPE ja_JP.UTF-8 ->setenv LANG ja_JP.UTF-8 日本語入力環境の構築 cd /usr/ports/japanese/scim-anthy make config-recursive make install clean set LANG=ja_JP.UTF-8 set XMODIFIERS=@im=SCIM 
↑結局できなかった+シェル文字化けしたからまたこんどやってみる

ログローテーションのインストール・設定
http://freebsd.server-manual.com/freebsd8_logrotate.html
Apacheのインストール・設定
http://freebsd.server-manual.com/freebsd8_apache2.html

Apacheのインストール
cd /usr/ports/www/apache24/
make config-recursive
make install clean
vi /etc/rc.conf
->apache24_enable="YES" 追記
vi /usr/local/etc/apache24/httpd.conf
vi /usr/local/etc/apache24/extra/httpd-languages.conf
vi /usr/local/etc/apache24/extra/httpd-userdir.conf
vi /usr/local/etc/apache24/extra/httpd-default.conf
vi /usr/local/etc/apache24/extra/httpd-deflate.conf
->いろいろ設定弄る、詳しくはぐぐる
chown -R www /usr/local/www/apache24/data/
mkdir /var/log/httpd
chown www: /var/log/httpd
vi /etc/rc.conf
->apache24_enable="YES" 追記する
/usr/local/etc/rc.d/apache24/ start
->設定に問題あるとここで怒られる
うまくいかなかったので消えてもらいます
cd /usr/ports/www/apache24/
make deinstall
vi /etc/rc.conf
->apache24_enable="YES" さっき書いたこれ消す

ということでnginxいれることに
cd /usr/ports/www/nginx/
make config-recursive
make install clean
cd /usr/ports/lang/php55
make install clean
cd /usr/ports/lang/php55-extensions
make install clean
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
vi /usr/local/etc/php.ini
->ぐぐって設定
vi /etc/rc.conf
->spawn_fcgi_enable="YES"
->nginx_enable="YES"
vi /usr/local/etc/nginx/nginx.conf
->それっぽく設定
fcgi起動する
service spawn-fcgi start
->spawn-fcgi:child spawned successfully とか出れば成功
service nginx start
->Starting nginx. とか出れば成功
ifconfigとかして鯖のIP確認して他のPCからIP叩いて接続確認
Welcome to nginxとかいうページ表示されれば成功
wgetが欲しいのでつっこむ
cd /usr/ports/ftp/wget
make install clean

AjaXplorerでも落としてPHP動いてるか確認し
cd /usr/local/www/nginx/
wget http://downloads.sourceforge.net/project/ajaxplorer/pydio/stable-channel/5.0.4/pydio-core-5.0.4.zip
ll
->pydio-core-5.0.4.zip 落っこちてこれば成功
unzip pydio-core-5.0.4.zip
rm pydio-core-5.0.4.zip
mv pydio-core-5.0.4.zip ajaxplorer
いろいろ設定した結果動かない…PHP5.xだと動かない感じが漂っているけどいまいちよくわからない、面倒なので放置

owncloud入れてみる
cd /usr/local/www/nginx/
wget http://download.owncloud.org/community/owncloud-6.0.0a.tar.bz2
tar -jxvf owncloud-6.0.0a.tar.bz2
なんかすごいマイナーアプデしたばっかな雰囲気のバージョンだけど気にしないことにする
chown -R www:wheel owncloud
↑公式にchownしろ書いてあったけどしなくてもたぶんうごく
あとnginxだと付属のhtaccess動かないからnginx.confでファイルサーバーの中身みれないようにしてあげる必要あり

owncloud動かすにはDBいるのでMySQLを突っ込む
SQLiteでも動くっぽいけど相性悪いらしい
cd /usr/ports/databases/mysql56-server
make install clean
ちょっと時間かかる
終わったら初期設定
ここみて設定
http://www.peach.ne.jp/freebsd/mysql.html
owncloudのためにDB作成する
mysql -p
mysql>GRANT ALL PRIVILEGES ON owncloud.* TO user@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql>exit
鯖のowncloud突っ込んだディレクトリにアクセスして初期設定
のはずが、やはりowncloudのCSSはうまく読み込まれない、なんなんだ…


さてjavaでもコンパイルするか〜
cd /usr/ports/java/openjdk7
make config-recursive
make install clean

javaコンパイル一晩かけてかんりょう

続いてsshを整備、認証鍵方式を追加したい
vi /etc/ssh/sshd_config
->RSAAuthentication yes
->PubkeyAuthentication yes
->AuthorizedKeysFile .ssh/authorized_keys
->PasswordAuthentication no
->PermitEmptyPasswords no
->Port 54321
->Port 12345
↑こんなかんじに設定、Portは自分が開けたいポートを記述しておく
設定完了したらsshdを再起動させる
/etc/rc.d/sshd restart
->Starting sshdと出れば成功
ちゃんと起動してるか調べる
sockstat -4l
->USER COMMAND LOCAL ADDRESS
->root sshd *:12345
->root sshd *:54321
みたいになってれば成功
次に鍵をつくる、鍵はsshログインしたいユーザーに切り替えて作成
ssh-keygen -t rsa
->保存場所はそのままEnter
->パスワード入力
->再入力
完成、~/.ssh/の中にid_rsaとid_rsa.pubとかいうのができてる
名前と権限を変える
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
一応.sshフォルダも700になってるか確認しておく
ls -l ~
->drwx------ root wheel 512 Dec 22 00:41 .ssh
鍵を接続する端末に移動させる、めんどくさいのでhttp経由で移動
cp ~/.ssh/id_rsa /usr/local/www/nginx-dist/id_rsa
chmod 644 /usr/local/www/nginx-dist/id_rsa
あとは接続したいPC側でダウンロード
->192.168.xx.xx/id_rsa に接続してダウンロードする
鍵は落とし終わったら消しておく
rm /usr/local/www/nginx-dist/id_rsa
僕はいつもMacを使っているのでMacのssh向けに設定をする
Finderか何かで自分のユーザーディレクトリの.sshフォルダの中にさっき落としてきたid_rsaをコピー、他のKeyとかある人はid_rsa.myserverとかにリネームしておく
.sshは隠しフォルダなので見えない人は見えるようにおまじないする
いちいち接続するときに入力するのはめんどくさいのでconfigを作成する
touch config
vi config
configの中にお好みの設定を書いて保存
Host myserver
        User user_id
        Hostname example.com
        Port 12345
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa.myserver                              
Macのターミナルでさっきコピーしたid_rsa.myserverの権限を600に変更
↑これしないと怒られる
chmod 600 id_rsa.myserver
ssh接続確認
ssh myserver
->接続できたらめでたし
僕のサーバーではminecraftをscreen で動かすのが流行りなのでscreenをいれます
cd /usr/ports/sysutils/screen
make install clean
sudoが使いたくなったのでsudoいれます
cd /usr/ports/security/sudo
make install clean 
ローカルネットワーク向けのDNSサーバーが無いといろいろこまるときがあるかもしれないので設定します
FreeBSDにはDNS鯖用のBINDとかいうのが最初から入ってるのでGoogle先生に質問しながら構築
http://freemanslab.s1.xrea.com/freebsd/dns.html http://www.ghost.jp/memo/freebsd/named.html


今までマイクラ動かしてたサーバーからminecraftのデータをまるっとコピーして作業完了

コメント

このブログの人気の投稿

WindowsRTを脱獄して遊ぶ

あけましておめでとう。今年もゆるーくめもを書いていきますたぶん。 とりあず寝れないのでてきとうに記事でも書こうかと思っただけ。