有没有办法在服务器上执行程序,例如:Firefox、Gimp 等。
我的概念是能够在我的手机上登录我的本地 LAMP 服务器,在文本框中输入命令(例如:/usr/bin/firefox)并按下一个按钮,该按钮使用 post 方法将命令字符串发送到另一个在我的服务器上启动程序的 PHP 脚本。这会很好,所以当我在路上并想要启动“firefox http://www.blahblah.net ”并打开firefox回到我的电脑时。是的,我知道安全问题,但这只是一个概念验证。
我已经尝试了 exec() 和 system() 命令,但它们似乎不起作用....我做错了什么吗?
#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
disable :protection # not needed on something this simple
set :port, 11111 # think 1APPX
get '/' do
# this handles both apps (via ?app=...) and files (via ?file=...)
if params[:app] then
# as a side effect, this also happens to actually run the app, which is
# pretty much what we wanted in the first place
@fn = params[:app][1..-2];
`/usr/bin/env #{@fn}`
elsif params[:file] then
# bugfix, remove quotes...
@fn = params[:file][1..-2];
# xdg-open anyone?
puts "DEBUG /usr/bin/env xdg-open #{@fn}";
`"/usr/bin/env xdg-open #{@fn}"`
else
# nothing...
404
end
end
not_found do
status 404
"Application #{@fn} not found. Usage: /?app=\"[appname]\" or /?file=\"[filename]\""
end