Na Firmhouse, fazemos um pouco de desenvolvimento PHP e muito desenvolvimento Rails. Nas últimas semanas, eu estava lutando para encontrar uma solução fácil para rodar PHP (especialmente WordPress) junto com meus aplicativos Rails no Pow.
Tentei redirecionar a porta para um servidor PHP interno e certamente não tentei recorrer ao Apache (bah!). Ontem, pesquisei no Google e encontrei a solução:
http://stuff-things.net/2011/05/16/legacy-development-with-pow/
Este artigo explica como usar a gema “legado de rack” para chamar aplicativos CGI legados usando middleware Rack. Acabei de configurar um “aplicativo” WordPress para usar minha instalação cgi php 5.4 local adicionando um config.ru:
~ / Code / wordpress / config.ru
require 'rack'
require 'rack-legacy'
require 'rack-rewrite'
INDEXES = ['index.html','index.php', 'index.cgi']
ENV['SERVER_PROTOCOL'] = "HTTP/1.1"
use Rack::Rewrite do
rewrite %r{(.*/$)}, lambda {|match, rack_env|
INDEXES.each do |index|
if File.exists?(File.join(Dir.getwd, rack_env['PATH_INFO'], index))
return rack_env['PATH_INFO'] + index
end
end
rack_env['PATH_INFO']
}
end
use Rack::Legacy::Php, Dir.getwd, '/usr/local/bin/php-cgi'
use Rack::Legacy::Cgi, Dir.getwd
run Rack::File.new Dir.getwd
E vinculando-o a ~ / .pow:
ln -s ~/Code/wordpress ~/.pow/wordpress
Para acessá-lo em
http://wordpress.dev/
Rocha!