在Web浏览器中运行.rb文件需要什么?
(我在红宝石的第一天)
我有乘客的Apache服务器(我来自PHP).终端证明:
gundars@linuxr528:~$ apache2ctl -t -D DUMP_MODULES
passenger_module (shared)
Run Code Online (Sandbox Code Playgroud)
ruby 1.9.3p0(2011-10-30修订版33570)[x86_64-linux]
我也安装了rails等,尝试使用rails制作一个快速的应用程序,它工作正常.
现在我想在浏览器中打开.rb文件,它会提示我保存它.这就是它在浏览器中的样子,点击后弹出右侧的窗口,它会询问保存位置.

关于Ruby和这个文件的条目是:
apache2.conf:
LoadModule passenger_module /home/gundars/.rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/gundars/.rvm/gems/ruby-1.9.3-p0/gems/passenger-3.0.11
PassengerRuby /home/gundars/.rvm/wrappers/ruby-1.9.3-p0/ruby
Run Code Online (Sandbox Code Playgroud)
虚拟hosts.conf
<VirtualHost *:80>
ServerName tictactoe.ruby.dev
DocumentRoot "/localhost/sandbox/RUBY/tictactoe/"
ErrorLog /var/log/rubyonrails2.log
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
/ etc/hosts文件
127.0.0.1 tictactoe.ruby.dev
Run Code Online (Sandbox Code Playgroud)
所以问题 - 在Web浏览器中运行.rb文件需要什么?我以为这是乘客的意思......
小智 5
从APACHE开始的步骤.rb SCRIPTS:
编辑您的apache配置文件(例如/etc/httpd/conf/httpd.conf).更新或创建AddHandler设置,使其包含".rb",例如:
AddHandler cgi-script .cgi .rb
Run Code Online (Sandbox Code Playgroud)
创建ruby脚本(.rb).确保你有一个shebang(#!)指向你的红宝石翻译.如果您不确定ruby在哪里,请使用"which"命令.
#!/bin/ruby
puts "Content-type: text/html"
puts
puts "<html>"
puts "<body>"
puts "<h3>Hello</h3>"
Run Code Online (Sandbox Code Playgroud)
在.rb文件上设置正确的所有权和执行权限(x),以便apache可以执行它,例如:
-rwxr-x--- 1 apache apache 163 Nov 26 10:55 index.rb
Run Code Online (Sandbox Code Playgroud)
这可能是你所要做的.如果您的脚本仍未执行,我将尝试的第一个故障排除步骤是暂时禁用SELinux(使用setenforce 0).
| 归档时间: |
|
| 查看次数: |
4032 次 |
| 最近记录: |