Fedora 17 セットアップメモだいたいのサービスやライブラリは、yumやgemでインストールするだけでOK。引っかかったところをメモ。
sshで接続できるようにする †ファイアウォールを外す。http://www.server-world.info/query?os=Fedora_16&p=initial_conf&f=2
デーモンを起動。 systemctl enable sshd.service systemctl start sshd.service
gem pg のセットアップ †yum install gcc yum install ruby-devel yum install postgresql-devel gem install pg
railsを使うなら †gem install bundler yum install sqlite yum install sqlite-devel yum install gcc-c++
NFSのマウント †マウント情報をfstabに書き込んだ後で、yum install nfs-utils systemctl enable rpcbind.service systemctl start rpcbind.service mount -a
それだけではアクセス許可がないので、
CGIを使えるようにする †/etc/httpd/conf/httpd.conf の<Directory "/var/www/html">の近くの Options に ExecCGI を追加
下記のコメントを解除 AddHandler cgi-script .cgi
SELinuxがうまく設定できなかったので、無効化する(ほんとはよくない) SELINUX=disabledとして再起動
CGIでRubyを使うと、文字コード周りでトラブル †Internal Server Errorが出て、 /var/log/httpd/error_log に、invalid byte sequence in US-ASCII (ArgumentError)というログが残る。
/etc/httpd/conf/httpd.conf で、 <Directory "/var/www/html">の中に以下を追加。 # for Ruby 1.9 SetEnv LC_CTYPE ja_JP.utf8 SetEnv LANG ja_JP.utf8
Passenger (apacheでrailsアプリなどを動かすモジュール) †
sudo gem install passenger sudo /usr/local/bin/passenger-install-apache2-module
足りないものの入れ方を親切に教えてくれるので、言われたとおりやる
/etc/httpd/conf/httpd.conf に下記を追加 LoadModule passenger_module /usr/local/share/gems/gems/passenger-3.0.13/ext/apache2/mod_passenger.so PassengerRoot /usr/local/share/gems/gems/passenger-3.0.13 PassengerRuby /usr/bin/ruby
Passengerでのアプリのデプロイ †
こちらを参考に
以下、アプリ名が weekly-report の例
/var/www/webapps/weekly-report にアプリを置く
下記を実行 cd /var/www ln -s webapps/weekly-report/public weekly-report
/etc/httpd/conf/httpd.conf に下記を追加 <VirtualHost *:80> ServerName scraper.hallab.co.jp DocumentRoot /var/www <Directory /var/www> Allow from all Options -MultiViews </Directory> RackBaseURI /weekly-report # RailsBaseURI /weekly-report が必要なアプリもあるみたい # 2つめ以降のアプリは、この行だけ追加 # RackBaseURI /weekly-report2 </VirtualHost>
アプリを更新したら (初回デプロイ時も必要) †cd /var/www/webapps/weekly-report rake db:migrate RAILS_ENV=production rake assets:precompile RAILS_ENV=production touch tmp/restart.txt |