KISS - Keep it simple, stupid!

Apache 2.xx + mod_myvhost

postado por Marcus Vinicius em 04/08/2009 14:59:44
Não há tags para este post

Desde muito tempo atraz, ficamos intrigados em ter que rebootar o apache a cada nova configuração de vhost. O Bodão inclusive descobriu um tal de mod_myvhost, mas que para nossa infelicidade funcionava somente no Apache 1.3.x. E assim como nós, os caras do slack-users, também acharam que compilar esse módulo para a versao 2.xx do Apache não era possível.

Bom… A idéia foi abandonada, e a azia de reboot continuava causando com a galera! ¬¬”

Recentemente (mais precisamente na sexta passada), resolvi colocar a idéia do Mano em prática: configurar um ambiente de desenvolvimento padronizado para a empresa!

Tá… legal… As idéias foram surgindo… Mas peraí! Pouts… “A gente podia dar um jeito de não ter que ficar dando restart no Apache neh?” É!

Bom… foi o suficiente pra que eu (teimoso como sempre) fritasse algumas horas e colocasse o mod_myvhost pra rodar!

OK! Chega de historinha e vamos instalar neh…

1 – Execute esse script aqui

Ele baixa o source, corrige o Makefile e compila o módulo:

#!/bin/bash
 
mysql_libs=`mysql_config --libs | sed 's,-rdynamic ,,'`
 
if [ $? -ne 0 ];
then
    echo -e "\n\nVoce precisa da \"libmysqlclient-devel\" para continuar a instalacao"
fi
 
APXS=`apxs`
if [ $? -ne 0 ];
then
        echo -e "\n\nVoce precisa de \"apache2-devel\" para continuar a instalacao"
fi
 
svn checkout https://mod-myvhost.googlecode.com/svn/branches/2.xx mod-myvhost-read-only
cd ./mod-myvhost-read-only
 
sed -i "s,\`mysql_config --libs\`,$mysql_libs," Makefile
 
make -w -i --silent && wait
cp .libs/mod_myvhost.so ./
Depois do módulo compilado…

coloque-o no diretório de módulos do seu Apache

cp ./mod_myvhost.conf /usr/lib/httpd/modules/


2 – Configure o seu httpd.conf

basta inserir as linhas que seguem no fim do arquivo. Lembre-se de comentar o include do arquivo onde estavam os antigos vhosts.

...
#Include /etc/httpd/extra/httpd-vhosts.conf
...
 
LoadModule myvhost_module lib/httpd/modules/mod_myvhost.so 
 
# My Virtual Hosts Configuration
Include /etc/httpd/extra/httpd-myvhosts.conf


3 – Crie seu httpd-myvhosts.conf

pra isso é só colocar as linhas seguintes em /etc/httpd/extra/httpd-myvhosts.conf, e alterar onde for necessário

NameVirtualHost *:80
 
    MyVhostOn           on
    MyVhostDefaultHost  "localhost"
    MyVhostDefaultRoot  "/srv/www/htdocs/"
    MyVhostDbHost       "localhost"
    MyVhostDbSocket     "/var/run/mysql/mysql.sock"
    MyVhostDbUser       "usuario"
    MyVhostDbPass       "senha"
    MyVhostDbName       "hosting"
    MyVhostQuery        "SELECT `rootdir`,`admin`,`extra_php_config` FROM `vhosts`  WHERE (`vhost`='%s' OR `valias`='%s') AND `enabled`='yes'"
 
        # Configuracoes Opcionais
        Options Indexes FollowSymLinks
        RewriteEngine On
        AllowOverride All
        Order allow,deny
        Allow from all


4 – Criando o banco de dados

CREATE DATABASE `hosting`;
USE `hosting`;
 
CREATE TABLE `vhosts` (
    `vhost` varchar(255) NOT NULL DEFAULT '',
    `valias` varchar(255) NOT NULL DEFAULT '',
    `enabled` enum('yes','no') NOT NULL DEFAULT 'no',
    `rootdir` varchar(255) NOT NULL DEFAULT '',
    `admin` varchar(255) DEFAULT '',
    `extra_php_config` text,
    UNIQUE KEY `vhostname` (`vhost`),
    KEY `enabled` (`enabled`)
) TYPE=MyISAM COMMENT='vhosts';


5 – Concluindo

Agora é só restartar o apache (PELA ULTIMA VEZ! haha), popular o banco e começar a utilizar!

No tags for this post.
Topo

3 Comentários

KISS – O Retorno!

postado por Marcus Vinicius em 02/07/2009 11:57:14
Não há tags para este post

Eai galera!

Nos ultimos dias enfrentamos turbulências na realização da mudança do nosso servidor, cache do WP, e outras azias aleatórias .

O KISS ficou zuadão, mas agora (de acordo com o Bodão) está rodando normalmente:

Hj eu botei um sistema de cache de macho nele… agora eh cache de banco de dados, e nao cache de pagina completa… a separacao de contexto conteudo estatico e conteudo gerado por consultas eh bem mais interessante, gasta menos espaco em disco, menos processamento, e tudo acaba realmente ficando mais rapido…

Bom… sendo assim, gostariamos de deixar aqui nossas sinceras desculpas pelos transtornos =D

[]’ss

No tags for this post.
Topo

Sem comentários

Plugin Manager – Gerenciando os plugins de sua aplicação de forma ágil

postado por Marcus Vinicius em 06/04/2009 15:38:16

Já tinha visto muitas vezes o João José reclamando que não tinha um gerenciador de plugins feito o do rails… Inclusive, havia até postado aqui no KISS uma idéia que tinha encontrado no blog @TheKeyBoard

A idéia é bem interessante, porém existe apenas um repositório centralizado, que o próprio desenvolvedor mantém.

A partir disso, surgiram nossas primeiras divagações:

  • Por que nao possibilitar que cada usuário possa manter seu próprio repositório?
  • Podíamos possibilitar a criação de um script de instalação/desinstalação?
  • E se existisse um jeito de especificar as dependencias, e elas serem automaticamente resolvidas?
  • Pouts! Mas se eu não quizer manter um repositório só pra poder guardar um link pra um plugin?

Assim surgiu o Plugin Manager, que ainda está em fase de implementação… Mas creio eu que está completo o suficiente para ser usado, testado, e também para que novas idéias surjam, não só nossas, mas de todos aqueles que se interessarem pelo projeto.

Botando pra Quebrar

Dentro da pasta APP/plugins/ execute:

git clone git://github.com/lucius/plugin_manager.git

pronto!

cake/console/cake -app SUA_APLICACAO plugin

Agora é só seguir as instruções

Plugin Manager em funcionamento

É sempre bom lembrar que o projeto está hospedado no github e que qualquer pessoa que deseja fazer modificações pode ficar a vontade para tal…

Tags: , , , ,
Topo

3 Comentários

Improved Cake Shell: feedbacks coloridos no console

postado por Marcus Vinicius em 13/03/2009 14:19:22

Eu e o Lucas tinhamos um trabalho bem divertido: criar um shell do cake. Ate aí, nada de muito complicado, pois a tarefa que seria executada era bem simples. De fato, realizamos o trabalho rapidamente. Comecei a pensar e vi que o log que seria gerado, poderia ser estupidamente grande, e tinhamos um feedback ‘preto-e-branco’ e pouco intuitivo…

Sempre fui o “cara da interface gráfica, das coisas gays e bonitinhas” como diria o Rafael (o homem modo-texto), e não seria numa hora dessas que deixaria isso de lado. xD

Comecei a conversar com o João, comentando esse fato, esperando que ele tivesse uma ideia (mesmo que copiada de alguém =D). Para minha surpresa, ali estava: cake-db-migrations.

Tá bom… mas e daí? Muito interessante o que joelmoss tinha feito… Mas para formatar uma string grande, além de ser obrigado a criar um estilo, ainda tinha que ficar concatenando varias strings com e sem formatação.

$this->out('Teste de formatacao simples '.$this->_colorize('funcionando',NOME_DO_ESTILO).'!');

Mas poderia ser mais fácil… algo como TAGS seria ótimo! Bom, depois de algum tempo de meditação e trabalho, agora elas funcionam… e de forma bem simples!

$this->formattedOut('Teste de formatacao simples [fg=green]funcionando[/fg]!');

E a saída no shell:

Teste de formatacao simples funcionando!

Bom, vamos ao que realmente interessa.

COMO USAR?

Primeiro: entre a pasta ‘plugins’ da app e

git clone git://github.com/lucius/improved_cake_shell.git

Depois, na hora de criar o seu shell em APP/vendors/shells/, apenas importe o plugin e extenda sua classe da ImprovedCakeShell (ao invés do Shell normal). O resto funciona da mesma maneira:

<?php
App::import('Vendor', 'ImprovedCakeShell.ImprovedCakeShell');
 
class TestShell extends ImprovedCakeShell {
    function main() {
        $this->addStyle( array(
            'TEST' => array(
                'bg' => 'green',
                'fg' => 'black',
                's' => true
            )
        ));
 
        $this->formattedOut('[b]Teste[/b] de formatacao [TEST]funcionando[/TEST]!');
    }
}
?>

Vamos com calma! Posso criar estilos completos sem ter que ficar abrindo e fechando milhões de tags?
SIM! Basta apenas utilizar o método addStyle, como feito ali em cima.

E como prometido:

exemplo

Para obter informações mais detalhadas a respeito do uso é só consultar o README, que segue junto com o plugin.

Pronto! Agora seus logs de console trazem feedback de maneira mais eficiente, visualizável e BONITA!

Tags: , , , ,
Topo

2 Comentários

Creative Commons License
Sou Ágil: KISS em http://kiss.souagil.com.br está licenciado sobre
Creative Commons Attribution-Share Alike 2.5 Brazil License.

souÁgil