Olá Mundo!
Edição principal:
Você pode encontrar o script aqui .
Basta executar vhost -help para obter as informações de uso.
Deixei o seguinte para referência, mas é muito mais fácil e rápido usar o novo script.
Se você está seguindo minha dica sobre como configurar um sistema operacional de desenvolvimento web no VirtualBox, o script funcionará como está ( https://coderwall.com/p/sc6r_q )
Este script assumirá certas coisas:
Que você planeja usar o diretório / home / username / www como seu webroot.
Que você tenha o template e o template-pub já configurados em / etc / apache2 / sites-available .
Esta é a aparência do meu arquivo de host virtual de modelo , cópia direta do padrão:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName template.local
DocumentRoot /home/username/www/template
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/username/www/template/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from All
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Agora, este é o conteúdo do arquivo host virtual template-pub :
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName template.local
DocumentRoot /home/username/www/template/public
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/username/www/template/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from All
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
Aqui, adicionamos / public ao DocumentRoot e ao Directory apenas para estruturas que possuem uma pasta pública e os aplicativos um nível acima. Isso é altamente sugerido como prática padrão para um aplicativo da web mais seguro, mantenha-o um nível acima da raiz da web pública.
Agora que isso foi resolvido, aqui está o script em toda a sua glória. Ele pedirá a senha do root para poder gerenciar os arquivos do host virtual.
#!/bin/bash
# Duplicate the base vhost template, will need SUDO!!!
sudo -v
if [ "$2" == "pub" ]
then
echo "Creating a vhost for $1 with a webroot in $HOME/www/$1/public/"
sudo cp /etc/apache2/sites-available/template-pub /etc/apache2/sites-available/$1
else
echo "Creating a vhost for $1 with a webroot in $HOME/www/$1/"
sudo cp /etc/apache2/sites-available/template /etc/apache2/sites-available/$1
fi
sudo sed -i 's/template/'$1'/g' /etc/apache2/sites-available/$1
sudo sed -i '1s/^/127.0.0.1 '$1'.localn/' /etc/hosts
sudo a2ensite $1
sudo service apache2 reload
echo "Done, please browse to http://$1.local to check!"
Copie-o em sua pasta / home / username / bin conforme o Mint 14.1 automaticamente o adiciona ao seu $ PATH (digite echo $ PATH para verificar).
Certifique-se de chmod + x scriptname.sh
scriptname.sh vhostname
scriptname.sh vhostname pub
O segundo comando irá definir o host virtual com sua raiz da web dentro da pasta pública do seu projeto.
Espero que ajude 🙂