Apache 2.xx + mod_myvhost
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.






