ProInf.net

Notas para la configuración de un servidor virtual Ubuntu 8.04

Francisco 22-03-09
Logo de Ubuntu dentro de VirtualBox

La versión elegida es 8.04 porque es la más reciente con actualizaciones de largo término.

Las ventajas de crear un servidor virtual son: 1) es fácil cambiarlo de ordenador, 2) sencillo de hacer copias de seguridad y 3) poder usar el sistema gráfico del anfitrión.

Índice

| VirtualBox | Montar | Instalación | Post-instalación | Actualizar | Apagar | Red | Open SSH | NFS | Samba | FTP | Apache | phpMyAdmin | PHP | MySQL | Ruby on Rails | ImageMagick | Webalizer | ISPConfig | XAMPP

VirtualBox 2.10

El sistema de virtualización es VirtualBox xVM de Sun. Utilizo la versión descargable de la web en vez de la versión libre instalable desde Ubuntu. El motivo es que es mucho más fácil darle una dirección de IP fija al servidor. Sólo hay que indicar el Interfaz Anfitrión.

Detalles:
PAE/NX: Habilitado
Memoria base: 128 MB
Disco duro: ubuntu-server.vdi de 8 GB
Red: Attached to: Interface Anfitrión: eth0

VBoxLinuxAdditions

Estas son utilidades a instalar en el sistema virtual.  Así tendremos disponibles el sistema de archivos vboxsf (virtualbox shared folder) que nos permitirá acceder a carpetas y archivos del sistema anfitrión.

# aptitude install build-essential linux-headers-`uname -r`
# mount -t iso9660 /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom
# ./VBoxLinuxAdditions-x86.run

Montar

Montar carpeta compartida

Una vez definida una carpeta compartida en el anfitrión e instalado el VBoxLinuxAdditions hay que montar la carpeta para poder acceder a ella:

# cd
# mount -t vboxsf Compartido /mnt/compartido

¡¡¡Con la inicial en mayúsculas aunque fuese minúsculas!!!

Para un montaje automático hay que editar el archivo /etc/fstab :

Compartido /mnt/compartido vboxsf auto 0 0
Webs /mnt/webs    vboxsf auto 0 0
Cursos /mnt/cursos     vboxsf auto 0 0

Compartir en el anfitrión

Montar un enlace a una carpeta:

# sfdisk -l
# mount /dev/sda3 /mnt/ubuntu
# mount --bind /mnt/ubuntu/home/proinf/webs /home/proinf/webs

En el archivo /etc/fstab :
/dev/sda3  /mnt/opensuse ext3 auto 0 0
/mnt/opensuse/home/proinf/webs   /home/proinf/webs   none bind
/mnt/opensuse/home/proinf/cursos /home/proinf/cursos none bind

Instalación

Para instalar hay que bajarse una imagen ISO del servidor.

Recordatorio:

Nombre: SERVIRTUAL (Ubuntu Server 8.04)
Login: usuario, password
Seleccionar: WAMP server, SAMBA server, SSH Server

Post-instalación

Activar la cuenta root:
$ sudo passwd root
$ su
Shell root:
$ sudo bash
Editores de texto:
vim, joe, nano
Revincular shell:
$ ls -l /bin/sh 
Para que sh apunte a bash en vez de a dash (ISPConfig)
# ln -sf /bin/bash /bin/sh
Sincronización del reloj. 
# aptget install ntp ntpdate

Apparmor - deshabilitar y luego desinstalar:

# /etc/init.d/apparmor stop
# update-rc.d -f apparmor remove
# apt-get remove apparmor apparmor-utils

Actualizar

La ubicación del archivo de los orígenes de software:
/etc/apt/sources.list
Órdenes para mantener actualizado el servidor:
# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# apt-get install build-essential
Algunas instalaciones requieren los ficheros de cabecera del actual núcleo de Linux (Header files for current Linux kernel) :
# aptitude install build-essential linux-headers-`uname -r`

Apagar

Para apagar el servidor:

# shutdown -P now

Open SSH

Es un terminal seguro para acceder al servidor remotamente.

El servidor:

# apt-get install ssh openssh-server   
/etc/ssh/sshd_config  
# /etc/init.d/ssh restart

El cliente:

# apt-get install openssh-client

PuTTY es un cliente SSH

Red

Edición del archivo interfaces :

# vim /etc/network/interfaces

Contenido del archivo:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
nameserver 192.168.2.1
[broadcast 192.168.2.255]

Comprobar la conexión:

# ifconfig
# /etc/init.d/networking restart
anfitrion$ ping 192.168.2.33
/etc/init.d/apache2 restart

Archivo con la lista de servidores:

/etc/hosts

NFS

Servidor NFS

# apt-get install nfs-kernel-server

Archivo de configuración:

/etc/exports : 
/ubuntu *(ro,sync,no_root_squash)  
/home *(rw,sync,no_root_squash)

Reinicio del servidor:

# /etc/init.d/nfs-kernel-server start

Cliente NFS

# apt-get install nfs-common

Ejemplo de montaje:

# mount ejemplo.hostname.com:/ubuntu /local/ubuntu

Archivo de configuración:

/etc/fstab :  
example.hostname.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,int

Samba

Guía del servidor y cliente
# apt-get install samba smbclient    
/etc/samba/smb.conf    
$ man smb.conf    
# /etc/init.d/samba restart

Montar sistemas Windows

# apt-get install smbfs 
# mount -t smbfs -o username=dlightman //development/project-code /mnt/pcode
# smbpasswd -a username

FTP

Protocolo de transferencia de ficheros.

Instalación de ProFTPd

# apt-get install proftpd

Configuración:

# nano /etc/proftpd/proftpd.conf

Agregar la línea al final:

  DefaultRoot ~

Reiniciar:

# /etc/init.d/proftpd restart

Apache

Servidor web (protocolo http) :

http://httpd.apache.org/docs/2.2/

Fichero de configuración Apache

apache2.conf

Sitio predeterminado

/var/www/

Creación de un nuevo sitio web :

# cd /etc/apache2/sites-available 
# cp default mynewsite
# a2ensite mynewsite

Fichero de configuración 

/etc/apache2/sites-available/mynewsite  
 ServerAdmin fco@proinf.net
ServerName proinf.net
ServerAlias www.proinf.net es.proinf.net ca.proinf.net en.proinf.net
DocumentRoot /mnt/webs/proinf.net/ruby/public

Instalación de módulo

# apt-get install libapache2-mod-auth-mysql

Carpeta de módulos:

/etc/apache2/mods-enabled

Activación de módulos:

# a2enmod rewrite 
# a2enmod suexec   <---http://httpd.apache.org/docs/2.2/mod/mod_suexec.html
# a2enmod include  <---http://httpd.apache.org/docs/2.2/mod/mod_include.html

Reinicio de Apache:

# /etc/init.d/apache2 restart
# /etc/init.d/apache2 force-reload

PHPMyAdmin

Administrador web escrito en PHP para base de datos MySQL.
# mysqladmin -u root password contraseña

Instalación:

# apt-get install phpmyadmin

Dirección web:

http://ip_del_ordenar_virtual/phpmyadmin 
http://192.168.2.2/phpmyadmin/

PHP

Lenguaje de programación para crear aplicaciones web.

Instalación

# apt-get install php5

Instalamos el conector de PHP para Apache 2

# apt-get install libapache2-mod-php5

Reiniciamos el Servidor

# /etc/init.d/apache2 restart 

Fichero de prueba:

# vim /var/www/index.php
   <?php phpinfo(); ?>
# /etc/init.d/apache2 restart

MySQL

Base de datos ideal para la web.

Archivo de configuración:

# nano /etc/mysql/my.cnf
Cambiar la línea:
  bind-address = 127.0.0.1

por una con la IP de la máquina virtual:

  bind-address = 192.168.2.2 

[o bien si comentásemos la línea, escucharía en todos los interfaces]

Reinicio:

# /etc/init.d/mysql restart  
# netstat -tap | grep mysql
# mysql -u usuario -p  
# adminmysql ...

Versión 5.0.67

mysql --version

Ruby on Rails

Plataforma MVC para crear sitios web.

Ruby

Lenguaje de programación. Para la web de proinf.net la versión ha de ser 1.8.6 

Instalación:

# apt-get install ruby ruby1.8 ruby1.8-dev rdoc ri irb  

Incrustar Ruby en Apache2 (no recomendado)

# apt-get install libapache2-mod-ruby

Versión 1.8.7

$ ruby --version

Gem

Es el instalador de paquetes para Ruby. La versión ha de ser 1.3.0

Instalación manual:

# wget http://rubyforge.org/frs/download.php/43985/rubygems-1.3.0.tgz 
# tar xzvf rubygems-1.3.0.tgz
# cd rubygems-1.3.0
# ruby setup.rb
# mv /usr/bin/gem /usr/bin/gem.old
# ln -s /usr/bin/gem1.8 /usr/bin/gem  
# gem -v
# gem update --system  

[#echo "export RUBYOPT=rubygems" >> ~/.profile]

Instalación automática (no recomendado porque es versión antigua) :

sudo apt-get install rubygems

Gemas a instalar: 

# apt-get install libmysqlclient15-dev 
# gem install mysql  
# gem list

Version 1.3.1

gem --version

Rails

Es muy importante que la versión sea la 1.2.6 para la web de proinf.net ya que la nueva presenta grandes cambios. Indirectamente esto obliga que la versión de Rails sea también anterior.

Guía Ubuntu para RoR y guía en hackido para instalar RoR en ubuntu 8.10

Instalación:

# a2enmod rewrite
# a2enmod proxy
# a2enmod proxy_http
# apt-get install libmysqlclient15-dev
# gem install mysql
# gem install rails -v 1.2.6
# gem instal mongrel

No necesario:

[# gem install ruby-debug]  
[ruby script/plugin install acts_as_tree]

Versión 1.2.6

rails --version

Mongrel

Es un servidor web para Ruby on Rails.

Inicio del servidor:

mongrel_rails start -a 127.0.0.1 -p 4001 -e production

Parámetros:

  • a - IP address
  • p - port
  • d - daemonize
  • e - environment
Versión 1.1.5
mongrel-rails --version

ImageMagick

Se trata de una biblioteca de funciones para la manipulación de imágenes. Es importante para que funcione el CAPTCHA.

Hay una guía de instalación en spejman y en rubyforge.

Instalación manual:

# wget http://image_magick.veidrodis.com/image_magick/ImageMagick-6.4.8-0.tar.gz 
# tar xvzf ImageMagick-6.4.8-0.tar.gz
# cd ImageMagick-6.4.8-0.tar.gz
# ./configure --disable-static --with-modules --without-perl \
   --without-magick-plus-plus --with-quantum-depth=8 \
   --with-gs-font-dir=$FONTS  
# make  
# make install  
# gem install rmagick

Instalación automática (no recomendado):  

# apt-get install imagemagick libmagick-dev
# dpkg -l | grep magick

Versión 6.4.7:

$ convert 

Webalizer (opcional)

Analiza el tráfico de la red www.webalizer.org
# apt-get install webalizer

ISPConfig (opcional) 

Para crea un ISP, es decir, ofrecer alojamiento web a usuarios de una forma automatizada.

http://www.ispconfig.org/   
http://www.ispconfig.org/manual_installation.htm  

[# apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl]

XAMPP (opcional)

Este sistema instala Apache, MySQL y PHP entre otras cosas. Es una alternativa.

The distribution for Linux systems (tested for SuSE, RedHat, Mandrake and Debian) contains: Apache, MySQL, PHP & PEAR, Perl, ProFTPD, phpMyAdmin, OpenSSL, GD, Freetype2, libjpeg, libpng, gdbm, zlib, expat, Sablotron, libxml, Ming, Webalizer, pdf class, ncurses, mod_perl, FreeTDS, gettext, mcrypt, mhash, eAccelerator, SQLite and IMAP C-Client.

# tar xvfz xampp-linux-1.6.7.tar.gz -C /opt  
# /opt/lampp/lampp start

Bibliografía

Compartir

 

Artículos relacionados:

Ir arriba