モコ
ちょっとローカルにRails開発環境が必要になった。
ついでに次世代モコ鯖の秀作としてVirtualPC上にRails鯖を作成する。
今回はCentOSインスコ。確か5.2くらい。
http://centossrv.com/centos5.shtml
この辺を見ながらインスコ終了。
注意事項としては、VirtualPCの場合のインスコ選択画面で
CUI → linux text clock=pit
GUI → linux vesa i8042.noloop psmouse.proto=imps clock=pit
しないとインスコ途中で止まっちゃう。
あと初回起動時にも引数に入れないと起動しないし、
起動したら /etc/grub.conf kernelの行に追記しないと毎回起動しない。
これで困ってる人多そう。
んでインスコ終了
しばらくはrootで作業
ユーザ作成
>useradd hogehoge
>passwd hogehoge
>userdel -r hogehoge ←削除する場合
775じゃなくてもいいかも。でも、この配下にrailsアプリを置いたらパーミッションで怒られたので俺はこうする
>chmod 775 /home/hogehoge
yumのアップデート
>yum update yum -y
>yum update -y
>chkconfig acpid off
>chkconfig apmd off
>chkconfig atd off
>chkconfig auditd off
>chkconfig mcstrans off
>chkconfig restorecond off
>chkconfig bluetooth off
>chkconfig hidd off
>chkconfig netfs off
>chkconfig nfslock off
>chkconfig portmap off
>chkconfig rpcgssd off
>chkconfig rpcidmapd off
>chkconfig avahi-daemon off
>chkconfig iptables off
>chkconfig ip6tables off
>chkconfig cpuspeed off
>chkconfig cups off
>chkconfig firstboot off
>chkconfig gpm off
>chkconfig irqbalance off
>chkconfig mdmonitor off
>chkconfig pcscd off
>chkconfig yum-updatesd off
>chkconfig sendmail off
>chkconfig smartd off
SELinuxの無効化
>getenforce ← SELinux状態確認
Enforcing ← SELinuxが有効って事らしい
>setenforce 0 ← SELinux無効化
>getenforce ← SELinux状態確認
Permissive ← SELinux無効って事らしい
vi /etc/sysconfig/selinux ← SELinux設定ファイル編集
SELINUX=enforcing
↓
SELINUX=disabled
保存する
SSH rootログイン出来なくする
/etc/ssh/sshd_config を編集する
#PermitRootLogin yes
↓
PermitRootLogin no
保存して
>service sshd restart
いろいろインスコするよ
>yum install gcc-c++
>yum install httpd httpd-devel
>yum install mysql-server mysql-devel
>yum install ruby ruby-devel rdoc
>yum install mod_dav_svn
>yum install ntp
Subversionの設定
リポジトリを作成するディレクトリを作成する(場所はどこがいいんだろうねぇ
>mkdir /var/svn/
作成したディレクトリに移動する
>cd /var/svn/
リポジトリ作成
>svnadmin create hoge
Apacheがリポジトリに読み書きアクセス出来るように、所有権を変更
>chown -R apache:apache /var/svn/hoge
SubVersion設定ファイルを作成(編集)する 自動的にapacheが読みこんでくれるです。
>vi /etc/httpd/conf.d/subversion.conf
こんな感じで追記。
<Location /piyo/hoge>
DAV svn
SVNPath /var/svn/hoge
</Location>
/var/svn/hoge
ってのは、サーバ内部のリポジトリ絶対パスだね。
認証しないなら
#LoadModule authz_svn_module modules/mod_authz_svn.so
認証するならhttp://www.cozmixng.org/~kou/linux/svn
apache起動
>service httpd start
http://<設定したサーバ>/piyo/hoge
がブラウザで開ければOK! そのURLをSVNクライアントで指定してあげましょう
他のhttpdの設定は殆どいじってないな
またそのうち考えよう めどいめどい
/etc/ntp.conf の設定例
restrict -4 default kod nomodify notrap nopeer noquery
#restrict -6 default kod nomodify notrap nopeer noquery
restrict -4 127.0.0.1
#restrict -6 ::1
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst
driftfile /var/lib/ntp/drift
logfile /var/log/ntp.log
時間合わせ
>ntpdate ntp.nict.jp
>chkconfig ntpd on
>service ntpd start
/etc/my.conf の設定例
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=0
default-character-set = utf8
skip-character-set-client-handshake
#↓このあたりの設定はネットで調べて必要だと思ったら入れるべし
#query_cache_size=24M
#thread_cache=512
#table_cache=512
[mysqld_safe]
log-error=/var/log/mysqld.log
log-query=/var/log/mysqld.query
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set = utf8
[mysqldump]
default-character-set = utf8
>chkconfig mysqld on
>service mysqld start
さらに設定
>mysql -u root
mysql> select user,host,password from mysql.user;
+------+-----------------------+----------+
| user | host | password |
+------+-----------------------+----------+
| root | localhost | | ←これにパスワードを設定して
| root | localhost.localdomain | | ←これと
| root | 127.0.0.1 | | ←これを消しましょう(いいよね?)
+------+-----------------------+----------+
mysql> set password for root@localhost=password('NewPassword');
mysql> delete from mysql.user where host = 'localhost.localdomain';
mysql> delete from mysql.user where host = '127.0.0.1';
mysql> select user,host,password from mysql.user;
+------+-----------------------+----------+
| user | host | password |
+------+-----------------------+----------+
| root | localhost | gyhujiko |
+------+-----------------------+----------+
mysql> exit
>mysql -u root -p
パスワードを聞かれるのでさっき設定した奴を入力
mysql>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
mysql>drop database test; 不要なDBを消す
mysql> exit
なんとなくリブート
>reboot
rubygems入れるよ!
>wget http://rubyforge.org/frs/download.php/43985/rubygems-1.3.0.tgz
>tar xvzf rubygems-1.3.0.tgz
>ruby setup.rb
>gem update --system
>gem install rails --remote --include-dependencies
>gem install passenger --remote --include-dependencies
>passenger-install-apache2-module
/etc/httpd/conf.d/passenger.confに書く(インスコ時に出た情報を記入する)
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3
PassengerRuby /usr/bin/ruby
/etc/httpd/conf/httpd.confに追記
設定1
NameVirtualHost *:80
設定2
<VirtualHost *:80>
ServerName hoge.mokorin.net
DocumentRoot /home/hogehoge/rails/app_name/public
ErrorLog /home/hogehoge/rails/app_name/log/error.log
CustomLog /home/hogehoge/rails/app_name/log/access.log combined
RailsEnv development
#RailsMaxPoolSize 4
#RailsPoolIdleTime 30
#RailsSpawnServer
#RailsBaseURI
#RailsAutoDetect
#RailsAllowModRewrite
#RailsRuby
#RailsEnv
#RailsDefaultUser
</VirtualHost>
>chkconfig httpd on
>service httpd restart
Postfixのインスコ
>yum install postfix -y
>alternatives --config mta
postfixの番号を指定する
postfixの他の設定は俺の範疇外なのでぐぐれ
あとは
hogehogeユーザで
/home/hogehoge/rails/>rails -d mysql プロジェクト名
Railsのアプリを作ればいいんじゃないですかね
Hostsでも書き替えて、
http://hoge.mokorin.net
にアクセスればいいじゃないですかね
ここからはRailsの話で今回とは関係ない。
DB作れよ?migreateしろよ?
いろいろツッコミどころはあるかと思いますが、
ここからだんだんとセキュリティとか考えて変えていきますよ
鯖なんて 数日ぐぐりながら 唸りながらがんばれば 誰でも作れる
おまいらも作ってみればいいと思うよマジで
鯖にするPCがない?
VirtualPCなりVMwareなり使えばいーじゃねーの