さくらのVPS構築ログ。まずやること。やったこと。
作業ログをまとめていたので書いてみます。
この環境の主たる狙いはMySQL5.1.44をinnoDbとSpider2.22で使いたいということと、ruby1.9.2をrvmで作るというもの。
はっきり言ってすべてネットから拾ってきた情報です笑
なので「なにここでこれやんの?」とか順番おかしかったりするところも多々あると思います笑 許して!
では、だらだらと書きます。
なお当たり前ですが#で始まるところはrootで、$で始まるところはユーザでやってくださいね。かしこ。
日本語環境に。
# vi /etc/sysconfig/i18n ---LANG="C" +++LANG="ja_JP.UTF-8"
yumパッケージを最新に。
# yum update
管理者パスワードを変更
# passwd Changing password for user root. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
ユーザ追加。ユーザパスワード設定。ユーザをこれから設定するsudoerグループに帰属させる。
# useradd tatamix00 # su tatamix00 # passwd tatamix00 New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. # usermod -G wheel tatamix00
sudoer定義。あとsudoの専用ログを作る設定に。
# visudo --- # %wheel ALL=(ALL) ALL +++ %wheel ALL=(ALL) ALL +++ Defaults syslog=local1
sudoログをローテートさせるの。そしてsyslogを再起動。
# vi /etc/syslog.conf --- *.info;mail.none;authpriv.none;cron.none /var/log/messages +++ *.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages --- local7.* /var/log/boot.log +++ local1.* /var/log/sudo.log +++ local7.* /var/log/boot.log # /etc/init.d/syslog restart
作ったユーザの公開鍵登録。公開鍵だから見られても良いよね・・・笑
鍵は各々つくってくださいね。
# cd /home/tatamix00 # mkdir .ssh # chmod 700 .ssh/ # chown tatamix00:tatamix00 .ssh # vi ./ssh/authorized_keys +++ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3ei9IsyDCavAtJQiSsPqOLWjzkSrJHcC3XwxKzRFpHNiovQKANMZrhHdCa2m81BzRC/2cSGq5ro5QzQaZI+0wg9QZ9Fn071Nimnh6O4qK4PVoGP7dlKSGmRqyh9filMbz9II1syVLmAyjn1B5t1INN+h3MGjPbku2C7OiMP7o0YO70LDmoSLz8LI5O3OixX53BAsJLWSCgnQQ0CUZ8l7oS2O1DNhwmVEm4mFmOzufTNuCvXAsYNLZAGyDHwQyoLhCad1HIPh2QvqrSwP5tskkhAjcZpDkwK462k6lLktHYlbd6vLJQA2RbpdHTrdfhX7dFKmf3DXejoq+QyhpEN27Q== tatamix00@matsuo-ryo-no-MacBook-Pro.local # chmod 600 ./ssh/authorized_keys # chown tatamix00:tatamix00
定番の設定です。sshの。sshポートを変更。パスワード使用禁止。鍵認証有効化。rootでのログイン禁止とか。
そしてsshd再起動。
#vi /etc/ssh/sshd_config --- Port 22 +++ Port 10022 --- #PermitEmptyPasswords no +++ PermitEmptyPasswords no --- PasswordAuthentication yes +++ PasswordAuthentication no --- #RSAAuthentication yes +++ RSAAuthentication yes --- #RhostsRSAAuthentication no +++ RhostsRSAAuthentication no --- #PubkeyAuthentication yes +++ PubkeyAuthentication yes --- #AuthorizedKeysFile .ssh/authorized_keys +++ AuthorizedKeysFile .ssh/authorized_keys --- #UsePAM no --- UsePAM yes +++ UsePAM no +++ #UsePAM yes --- #PermitRootLogin no +++ PermitRootLogin no # /etc/init.d/sshd restart
rootユーザしかパスの通ってないコマンドとかあるので、新設したユーザにも同等のパスを通しておく。
# su tatamix00 $ vi ~/.bash_profile vi /etc/sysconfig/iptables +++ PATH=$PATH:/sbin +++ PATH=$PATH:/usr/sbin +++ PATH=$PATH:/usr/local/sbin
iptable定義。必要最低限のポートだけ開いている状態にする。ssh,http,ftp,mysqlだけ開くようにする。
そしてiptableを再起動。
$ sudo vi /etc/sysconfig/iptables +++ *filter +++ :INPUT ACCEPT [0:0] +++ :FORWARD ACCEPT [0:0] +++ :OUTPUT ACCEPT [0:0] +++ :RH-Firewall-1-INPUT - [0:0] +++ +++ -A INPUT -j RH-Firewall-1-INPUT +++ -A FORWARD -j RH-Firewall-1-INPUT +++ -A RH-Firewall-1-INPUT -i lo -j ACCEPT +++ -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT +++ -A RH-Firewall-1-INPUT -p 50 -j ACCEPT +++ -A RH-Firewall-1-INPUT -p 51 -j ACCEPT +++ -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT +++ -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT +++ -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT +++ -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT +++ +++ # SSH, HTTP, FTP1, FTP2 +++ -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT +++ -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT +++ -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT +++ -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT +++ # mysql +++ -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT +++ +++ -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited +++ +++ COMMIT $ sudo /etc/rc.d/init.d/iptables restart
ntpで時間を同期するようにする。でも限られたマシンリソースがもったいないので、一日一回(4:44)だけ同期するようにする。
$ sudo /etc/init.d/ntpd stop $ sudo chkconfig ntpd off $ su - # cd ~ # mkdir script # cd script # touch ntpdate.sh # vi ntpdate.sh +++ #!/bin/sh +++ +++ # UNIXの時間をサーバーに合わせる。 +++ # -s 結果は /var/log/messagesへ出力。 +++ # ntp serverは さくらを優先的に使用し +++ # セカンダリとしてhttp://www.jst.mfeed.ad.jp/network.htmlを使用。 +++ +++ /usr/sbin/ntpdate -s ntp1.sakura.ad.jp \ +++ ntp1.jst.mfeed.ad.jp \ +++ ntp2.jst.mfeed.ad.jp \ +++ ntp3.jst.mfeed.ad.jp +++ +++ # マザーボードの時間を UNIX TIMEに合わせる。 +++ /sbin/clock --systohc # chmod 755 ntpdate.sh # crontab -e +++ 44 4 * * * /root/script/ntpdate.sh
不必要なサービスを起動しないように変更
# /sbin/chkconfig acpid off # /sbin/chkconfig auditd off # /sbin/chkconfig autofs off # /sbin/chkconfig avahi-daemon off # /sbin/chkconfig bluetooth off # /sbin/chkconfig cups off # /sbin/chkconfig firstboot off # /sbin/chkconfig gpm off # /sbin/chkconfig haldaemon off # /sbin/chkconfig hidd off # /sbin/chkconfig kudzu off # /sbin/chkconfig lvm2-monitor off # /sbin/chkconfig mcstrans off # /sbin/chkconfig mdmonitor off # /sbin/chkconfig messagebus off # /sbin/chkconfig netfs off # /sbin/chkconfig nfslock off # /sbin/chkconfig pcscd off # /sbin/chkconfig portmap off # /sbin/chkconfig rawdevices off # /sbin/chkconfig restorecond off # /sbin/chkconfig rpcgssd off # /sbin/chkconfig rpcidmapd off # /sbin/chkconfig smartd off # /sbin/chkconfig xfs off
mysql5.1.44とSpider2.22をコンパイルするところからインストールまで。
結構長いです。
# cd # yum install -y ncurses-devel readline-devel # wget http://storehouse.sakura.ne.jp/RPMS/x86_64/m4-1.4.12-2.x86_64.rpm # wget http://storehouse.sakura.ne.jp/RPMS/noarch/autoconf-2.63-2.noarch.rpm # rpm -Uhv *.rpm # rm *.rpm # wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.44.tar.gz # wget http://launchpad.net/spiderformysql/spider-2.x/2.22-for-5.1.44/+download/spider-src-2.22-for-5.1.44.tgz # tar xf mysql-5.1.44.tar.gz # tar xf spider-src-2.22-for-5.1.44.tgz # rm *gz # mv ./spider ./mysql-5.1.44/storage/ # cd ./mysql-5.1.44 # patch -p2 < ../mysql-5.1.44.spider.diff # autoconf # automake # ./configure \ --prefix=/usr/local/mysql \ --localstatedir=/usr/local/mysql/data \ --libexecdir=/usr/local/mysql/bin \ --enable-thread-safe-client \ --enable-local-infile \ --with-pic \ --with-fast-mutexes \ --with-client-ldflags=-static \ --with-mysqld-ldflags=-static \ --with-zlib-dir=bundled \ --with-big-tables \ --with-ssl \ --with-readline \ --without-embedded-server \ --with-plugins=partition,innobase,innodb_plugin,myisam,csv \ --with-extra-charsets=complex # make # make install # cp ./support-files/mysql.server /etc/init.d/mysql # chmod +x /etc/init.d/mysql # chkconfig --add mysql # cd .. # mv ./mysql-5.1.44.spider.diff ./mysql-5.1.44/ # mv ./mysql-5.1.44.slave-trx-retry.diff ./mysql-5.1.44/ # mv ./mysql-5.1.44 /usr/local/src/ # cd /usr/local/mysql # ./bin/mysql_install_db # adduser mysql # chown -R mysql:mysql /usr/local/mysql # cp ./share/mysql/my-medium.cnf /etc/my.cnf # vi /etc/my.cnf +++ default-character-set=utf8 +++ skip-character-set-client-handshake # /etc/init.d/mysql start # cd # export PATH=$PATH:/usr/local/mysql/bin # mysql mysql> source install_spider.sql mysql> show engines; mysql> \q # /sbin/chkconfig mysql on # rm install_spider.sql
# su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm' # yum install git # bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head ) # ~/.rvm/src/rvm/scripts/rvm # sudo yum install openssl-devel readline-devel zlib-devel # rvm install 1.9.2 # rvm use 1.9.2 --default
$ sudo gem install rails -v 2.3.9 $ sudo gem install google-appengine $ mkdir ~/hoge/ $ cd ~/hoge/ $ curl -O http://appengine-jruby.googlecode.com/hg/demos/rails2/rails239_appengine.rb $ ruby rails239_appengine.rb $ vi ./WEB-INF/app.yaml --- application: +++ application: hogehoge
※hogehogeはhogehoge.appspot.comのhogehogeです。
これで環境構築完了。
あとはサーバデプロイが
$ ./script/publish.sh
インスタンス起動が
$ ./script/server
です。