Skip to content

Facilitar a configuração de projetos PHP

by Vinícius Krolow on julho 30th, 2009

Resolvi criar um simples script para facilitar a configuração de projetos PHP, a cada vez que eu ia começar 1, era necessário eu criar um novo virtual host, adicionar no hosts o alias do ip, restartar apache, etc…

Então fiz um script simples, realmente simples em PHP para executar por linha de comando PHP-CLI, vou deixar a disposição para alguém que queria:

create-project.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
< ?php
 
	/*
	 * Template of virtual host
	 */
	$template = "<VirtualHost *:80>\n";
	$template .= "ServerName {$argv[1]}\n";
	$template .= "DocumentRoot {$argv[2]}\n";
	$template .= "<directory {$argv[2]}>\n";
	$template .= "	Options Indexes FollowSymLinks MultiViews\n";
	$template .= "	AllowOverride All\n";
	$tempalte .= "	Order allow,deny\n";
	$template .= "	allow from all\n";
	$template .= "</directory>\n";
    	$template .= "ErrorLog /var/log/apache2/{$argv[1]}_error.log\n";
	$template .= "   LogLevel warn\n";
	$template .= "    CustomLog /var/log/apache2/{$argv[1]}_access.log combined\n";
	$template .= "";        
	$template .= "\n";
 
	echo $template;
 
	$file = fopen("/etc/apache2/sites-available/{$argv[1]}", 'x');
	fwrite($file, $template);
	fclose($file);
 
	exec("ln -s /etc/apache2/sites-available/{$argv[1]} /etc/apache2/sites-enabled/{$argv[1]}");
 
	$file = fopen("/etc/hosts", 'a+');
	fwrite($file, "127.0.0.1 {$argv[1]}\n");
	fclose($file);
 
	exec('/etc/init.d/apache2 restart');
 
	echo 'Created with success the config for: ', $argv[1]; 
?>

Para usar basta executar como root:

sudo php create-project.php nome_projeto /var/diretorio/

E pronto, ele criara o vhost, insere no hosts o alias, aponta o vhost para o diretório indicado e restarta o apache.

Ele funciona no Ubuntu linux, não testei em outras distros, e provavelmente possa não funcionar.

From → linux, php, programação

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS