3 d’agost de 2012

Diferents projectes web en el servidor local

Hi ha diferents motius pels quals podem voler tenir diferents projectes web en el nostre ordinador, que actuarà com a servidor en la xarxa local: per desenvolupar projectes per diferents clients, per poder provar diferents gestors de continguts (Drupal, Joomla, etc...), o simplement per tenir un conjunt de servidors de continguts (fotos, música, etc...) sense que s'interfereixin.

Sigui com sigui, anem a veure com ho podem configurar de forma senzilla en el nostre Ubuntu Precise. En primer lloc, instal·lem el servidor web Apache i el PHP:
$ sudo apt-get install apache2 libapache2-mod-php5
En el meu cas, tenia una instal·lació prèvia que m'ha donat problemes amb el PHP (no executava els codis). M'ha calgut reinstal·lar amb:
$ sudo apt-get purge libapache2-mod-php5
$ sudo apt-get install libapache2-mod-php5
$ sudo a2enmod php5
$ sudo /etc/init.d/apache2 restart
Ara, caldrà definir els servidors virtuals que volem utilitzar:
$ gksudo gedit /etc/apache2/sites-available/vhosts
Amb un contingut semblant a (canvieu els noms dels servidors i el que volgueu):
# Use name-based virtual hosting.
#
NameVirtualHost *:80

# "fotos.localhost" VirtualHost:
#
<Directory "/var/www/fotos">
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>

<VirtualHost *:80>
        ServerAdmin webmaster@fotos.localhost
        DocumentRoot "/var/www/fotos"
        ServerName fotos.localhost
 ErrorLog ${APACHE_LOG_DIR}/fotos_error.log
 CustomLog ${APACHE_LOG_DIR}/fotos_access.log combined
</VirtualHost>

# "web.localhost" VirtualHost:
#
<Directory "/var/www/web">
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>

<VirtualHost *:80>
        ServerAdmin webmaster@web.localhost
        DocumentRoot "/var/www/web"
        ServerName web.localhost
 ErrorLog ${APACHE_LOG_DIR}/web_error.log
 CustomLog ${APACHE_LOG_DIR}/web_access.log combined
</VirtualHost>
 
I l'activem amb:
$ sudo a2ensite vhosts
$ sudo /etc/init.d/apache2 restart
En principi, amb això ja estaria. Només ens queda afegir els noms dels servidors virtuals al fitxer de noms coneguts:
$ gksudo gedit /etc/hosts
Només caldrà afegir una línia:
...
127.0.0.1 fotos.localhost web.localhost
...
I per provar que tot ha anat bé, afegim un fitxer 'index.php' a cadascún dels nostres projectes. El contingut pot ser un simple 'Hola món' en PHP:
<?php echo 'web.localhost diu: Hola a tothom!';?>
I comprovem que efectivament hi tenim accés i ens respon, anant a l'adreça http://web.localhost:

I ja ho tenim. Dues estructures de directoris separades per poder fer el que necessitem, sense que s'interfereixin. Objectiu assolit.

Cap comentari:

Publica un comentari a l'entrada