こんにちは、プログラミング初心者です。
以下の様なcgiファイルを書きました。
rubyでサーバーを立てた際に、localhostでアクセスするとうまくブラウザに結果が表示されるのですが、さくらVPSのサーバーに上げるとうまく行きません。centos6.7を使っています。
ただ、ターミナルから実行命令を出すとうまくいきます。
アクセス権はすべて777にしてもうまく行きません。
サーバー上にはanemoneもnokogiriもインストール済みです。
which rubyと打つと、
~/.rvm/rubies/ruby-2.0.0-p647/bin/ruby
と表示されます。
やりたいことは、DOI名から論文タイトルなどを持ってくることです。
下にエラーログを載せます。
ずっとこの問題で悩んでいます。
よろしくお願いします。助けてください。
#!/usr/local/rvm/rubies/ruby-2.2.1/bin/ruby --
print "Content-Type: text/html\n\n"
require 'anemone'
require 'nokogiri'
require 'kconv'
urls = []
koko="http://search.crossref.org/?q="+"10.1103/PhysRevB.78.121302"
urls.push(koko)
Anemone.crawl(urls, :depth_limit => 0) do |anemone|
anemone.on_every_page do |page|
#文字コードをUTF8に変換したうえで、Nokogiriでパース doc = Nokogiri::HTML.parse(page.body.toutf8) title = doc.xpath("//*[@class='item-data']/p[1]").text date = doc.xpath("//*[@class='item-data']/p[2]/span[1]/b[2]").text journal = doc.xpath("//*[@class='item-data']/p[2]/span[2]/b[1]").text volume = doc.xpath("//*[@class='item-data']/p[2]/span[3]/b[1]").text issue = doc.xpath("//*[@class='item-data']/p[2]/span[4]/b[1]").text pagefrom = doc.xpath("//*[@class='item-data']/p[2]/span[5]/b[1]").text pageto = doc.xpath("//*[@class='item-data']/p[2]/span[5]/b[2]").text authors = doc.xpath("//*[@class='expand']").text title= title.strip date=date.gsub(" ", "") date=date.gsub(/(\r\n|\r|\n|\f)/,"")
months = /[A-Z]/ =~ date
months = months.to_i
$day = date[0..months-1]
month = date[months, 3]
$year = date[months+3,4]
firstauthorstart = /:/ =~authors
firstauthorend = /,/ =~authors
fisrtauthour = authors[firstauthorstart+2..firstauthorend-1]
puts month
puts $year
puts title
puts "journal "+journal
puts "volume "+volume
puts "issue "+issue
puts "page first " +pagefrom
puts "page last " +pageto
puts "authors "+authors
end
end
以下、エラーログです。
[Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require' [Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] : [Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] cannot load such file -- anemone [Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] ( [Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] LoadError [Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] ) [Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] \tfrom /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in
require'
[Sat Nov 07 21:25:54 2015] [error] [client 121.107.18.132] \tfrom /var/www/html/name.cgi:9:in `<main>'
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。