Instalación de un entorno de desarrollo LAMP (Linux + Apache + MySQL + PHP) usando el sistema operativo Debian Wheezy.
Linux
Instalar el sistema básico de Debian Wheezy y elegir las colecciones
- Servidor SSH
- Utilidades estándar del sistema
Después de finalizar la instalación y reiniciar el sistema, entrar como usuario root para continuar con la configuración del servidor.
Nombre del servidor
En este ejemplo el nombre del servidor es lamp. Ejecutar los comandos
echo "lamp" > /etc/hostname
hostname -F /etc/hostname
Actualizar los archivos /etc/network/interfaces y /etc/hosts como se muestra abajo. En este ejemplo la dirección IP de la máquina es 192.168.0.100, el nombre del dominio es test.server.
Extracto del archivo: /etc/network/interfaces
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
Extracto del archivo: /etc/hosts
127.0.0.1 localhost
192.168.0.100 lamp.test.server lamp
Reiniciar el servidor para asegurarse de que arranca correctamente.
Zona horaria
Ajustar la zona horaria ejecutando
dpkg-reconfigure tzdata
Comprobar la zona horaria con el comando
date
Actualizaciones de software
Instalar las actualizaciones de software disponibles.
aptitude update
aptitude upgrade
Añadir un usuario nuevo
Instalar el paquete sudo.
aptitude install sudo
Crear un usuario y agregarlo al grupo de administradores del sistema (admin). En este ejemplo el nombre del usuario es tester.
adduser tester
usermod -a -G sudo tester
Salir del sistema como usuario root.
logout
Conectarse como el nuevo usuario y comprobar si tiene los derechos de administrador.
sudo bash
[sudo] password for tester: ****
root@lamp:/home/tester#
De aquí en adelante ya no será necesario conectarse como root para administrar el sistema.
Apache
Instalar Apache y activar el módulo rewrite de apache2.
aptitude install apache2
a2enmod rewrite
service apache2 restart
Configuración de Hosting Virtual basado en nombres
Desactivar el host virtual por defecto de apache2.
a2dissite default
Crear una carpeta para almacenar los archivos de cada host virtual. En este ejemplo para drupal.test.server y typo3.test.server.
mkdir -p /srv/www/drupal.test.server/htdocs
mkdir /srv/www/drupal.test.server/logs
mkdir /srv/www/drupal.test.server/tmp
mkdir -p /srv/www/typo3.test.server/htdocs
mkdir /srv/www/typo3.test.server/logs
mkdir /srv/www/typo3.test.server/tmp
Crear un archivo en el directorio /etc/apache2/sites-available/ para cada host virtual.
Archivo: /etc/apache2/sites-available/drupal.test.server
<VirtualHost *:80>
ServerAdmin webmaster@test.server
ServerName drupal.test.server
ServerAlias drupal.test.server
DocumentRoot /srv/www/drupal.test.server/htdocs
ErrorLog /srv/www/drupal.test.server/logs/error.log
CustomLog /srv/www/drupal.test.server/logs/access.log combined
</VirtualHost>
Archivo: /etc/apache2/sites-available/typo3.test.server
<VirtualHost *:80>
ServerAdmin webmaster@test.server
ServerName typo3.test.server
ServerAlias typo3.test.server
DocumentRoot /srv/www/typo3.test.server/htdocs
ErrorLog /srv/www/typo3.test.server/logs/error.log
CustomLog /srv/www/typo3.test.server/logs/access.log combined
</VirtualHost>
Habilitar cada host virtual.
a2ensite drupal.test.server
a2ensite typo3.test.server
Reiniciar Apache para guardar los cambios.
service apache2 restart
MySQL
Instalar MySQL ejecutando el comando
aptitude install mysql-server mysql-client
Introduzca una contraseña para el usuario root de MySQL.
Ejecute el comando mysql_secure_installation para asegurar la instalación de MySQL.
mysql_secure_installation
Siga las instrucciones para eliminar usuarios anónimos, deshabilitar el acceso remoto del usuario root y eliminar la base de datos de prueba.
Creación de base de datos
Iniciar una sesión de MySQL. Introduzca la contraseña del usuario root de MySQL.
mysql -u root -p
Crear una base de datos para el sitio web. En este ejemplo es necesario crear una base de datos para cada host virtual de Apache.
create database drupaldb;
create database typo3db;
Crear un usuario en MySQL y concederle permisos para acceder a la base de datos nueva.
grant all on drupaldb.* to 'drupal_user' identified by '***';
grant all on typo3db.* to 'typo3_user' identified by '***';
Los nombres de usuario y contraseñas de MySQL sólo se utilizan para la conexión a la base de datos y no necesitan (no deberían) ser usuarios reales en el sistema operativo Debian.
Actualizar las tablas de permisos de MySQL.
flush privileges;
Terminar la sesión de MySQL.
quit
PHP
Instalar PHP ejecutando
aptitude install php5 php-pear libapache2-mod-php5 php5-mysql php5-mcrypt
Abrir el archivo de configuración de PHP /etc/php5/apache2/php.ini y verificar que los valores de la configuración correspondan a los que se muestran abajo.
Extracto del archivo: /etc/php5/apache2/php.ini
max_execution_time = 30
memory_limit = 128M
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /var/log/php/php_errors.log
Crear el directorio /var/log/php/ y hacerlo accesible a Apache.
mkdir /var/log/php
chown www-data /var/log/php
Reiniciar Apache.
service apache2 restart
Crear el archivo /srv/www/drupal.test.server/htdocs/index.php.
Archivo: /srv/www/drupal.test.server/htdocs/index.php
<?php
phpinfo();
?>
Finalmente, comprobar el funcionamiento del entorno de desarrollo LAMP abriendo el archivo index.php en un navegador (http://drupal.test.server/index.php).
Xdebug
Instalar Xdebug para PHP 5 ejecutando el comando
aptitude install php5-xdebug
Configurar Xdebug para apoyar la depuración remota, por ejemplo desde Eclipse en un cliente Windows. La dirección IP del cliente en este ejemplo es 192.168.0.155.
Extracto del archivo: /etc/php5/mods-available/xdebug.ini
zend_extension=/usr/lib/php5/20100525/xdebug.so
; Depuración remota
xdebug.remote_enable=1
xdebug.remote_host=192.168.0.155
xdebug.remote_port=9000
xdebug.remote_log=/tmp/xdebug_remote.log
Reiniciar Apache.
service apache2 restart
Para verificar que la instalación de Xdebug se ha realizado correctamente, abrir nuevamente el archivo index.php en un navegador (http://drupal.test.server/index.php) y buscar la sección que se parece a la imagen de abajo.
phpMyAdmin
Instalar phpMyAdmin ejecutando el comando
aptitude install phpmyadmin
Continuar con la instalación como se muestra abajo.
Servidor Web para reconfigurar automáticamente: ninguno
Configuración de base de datos para phpmyadmin con dbconfig-common?: No
Para cada host virtual (en este ejemplo drupal.test.server y typo3.test.server) que requiera acceso a la instalación de phpMyAdmin, crear un enlace simbólico desde el directorio raíz de documentos a la ubicación de la instalación de phpMyAdmin (/usr/share/phpmyadmin).
cd /srv/www/drupal.test.server/htdocs/
ln -s /usr/share/phpmyadmin
cd /srv/www/typo3.test.server/htdocs/
ln -s /usr/share/phpmyadmin
Abrir un navegador y comprobar el acceso a phpMyAdmin para cada host virtual.
http://drupal.test.server/phpmyadmin/
http://typo3.test.server/phpmyadmin/
Utilizar el nombre de usuario y la contraseña creados durante la instalación de MySQL.
A continuación, un ejemplo para el host virtual drupal.test.server y el usuario drupaldbuser de MySQL.
Si se puede iniciar una sesión, significa que phpMyAdmin ha sido instalado correctamente.
Samba (opcional)
Instalar Samba para acceder a la carpeta raíz de documentos de Apache (/srv/www) desde un cliente remoto, en este ejemplo desde un cliente Windows.
aptitude install samba
Crear una cuenta en Samba para el usuario tester del sistema Linux.
smbpasswd -a tester
New SMB password:
Retype new SMB password:
Added user tester.
Agregarlo al grupo www-data de Apache.
usermod -a -G www-data tester
Cambiar los permisos de la carpeta raíz de documentos de Apache (/srv/www).
chgrp -R www-data /srv/www
chmod -R ug+w /srv/www
Abrir el archivo /etc/samba/smb.conf y añadir la configuración para la carpeta compartida www como se muestra abajo.
Extracto del archivo: /etc/samba/smb.conf
security = user
usershare allow guests = no
#=============== Share Definitions ================
[www]
comment = Carpeta WWW de Apache en lamp.test.server
path = /srv/www
valid users = @www-data
force group = www-data
force create mode = 0664
force directory mode = 0775
writable = yes
browseable = yes
Reiniciar Samba.
service samba restart
Asignar a una unidad cualquiera (en este ejemplo W:) del cliente Windows la carpeta compartida www de Apache. Usar para esto la cuenta del usuario tester de Samba.