個人的な覚え書きです。
◯ 手順
① Vagrantで仮想環境構築
② 鯖立て
③ Ruby Twitter Gemでニュース取得
④ CGIで表示
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos63"
config.vm.provision :shell, :path => "provision.sh"
config.vm.network :private_network, ip: "192.168.33.10"
config.ssh.username = 'root'
config.ssh.password = 'vagrant'
config.ssh.insert_key = 'true'
end
provision.sh
sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on
# vagrant up
仮想のCent6.3が立つ。
このとき、provisionで自動鯖立て。
# service iptables stop
# chkconfig iptables off
iptablesを無効化。
再起動しても、無効化されるようにしておく。
# getenforce
# emacs /etc/selinux/config
SELINUX=disabled
SELinuxの状態確認。
Enforcing なら有効。/etc/selinux/config で上記の内容を加える。
Disabled なら無効状態。問題無し。
# emacs /var/www/html/index.html
<h1>Hello,World!</h1>
テストページを作成。
ブラウザで 192.168.33.10 に行って確認。
# ruby -v
# gem -v
# gem list
# gem install rubygems-update
# update_rubygems
# gem -v
# gem list
# gem install twitter
# gem list
RubyとGemのバージョン確認。
rubygems-updateをインストール・実行してgemのアップデート。
その後、gemのtwitterをインストール。
# cd /var/www/html
# mkdir Twitter
# chmod 755 Twitter
# cd Twitter
# emacs look_news.rb
# chmod 755 look_news.rb
/var/www/htmlにディレクトリ作成。権限は755にしておく。
その下にRubyプログラム look_news.rb を。こちらも権限は755で。
プログラムは以前の記事のものに、以下を加える。
#!/usr/bin/ruby
require 'cgi'
/* KEY云々とclient = 云々 */
print "Content-type: text/html\n\n"
print "<html>\n<body>\n"
/* ツイート引っ張ってくるとこ */
print "</body>\n</html>\n"
# emacs .htaccess
/var/www/html/Twitter に.htaccess を作成。
内容は以下の通り。
AddHandler cgi-script .cgi .pl .rb
Options +ExecCGI
# emacs /etc/httpd/conf/httpd.conf
AddHandler cgi-script .cgi .rb
<Directory />
Options FollowSymLinks ExecCGI
AllowOverride None
</Directory>
<Directory "/var/www/html">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>
/etc/httpd/conf/httpd.conf を弄る。
参照
http://blog.netandfield.com/shar/2009/09/22-403.html
http://www.server-world.info/query?os=CentOS_6&p=httpd&f=3
# service httpd restart
鯖を再起動して設定反映。
ブラウザで 192.168.33.10/Twitter/look_news.rb に行って確認。
下のようにニュースが見れた。