XAMPP en Linux

LogoXamppEste año trabajaré continuamente en Linux, así que utilizaré XAMPP para hacer funcionar una aplicación desarrollada por mí para la gestión de entregas de tareas, compartir materiales y publicación de notas.

El primer paso es descargar XAMPP en su versión para Linux, aquí os dejo el enlace: apache friends, para este caso he utilizado la versión 1.8.0.

Una vez que ya tenemos el paquete descargado abrimos un terminal y hacemos sudo para poder ejecutar en modo root.

$ sudo -i

He introducimos nuestra contraseña para continuar como administrador del sistema.

Instalación

Si queremos realizar la instalación en el equipo de manera normal, ejecutamos el siguiente comando, descomprimiendo el paquete en el directorio /opt de nuestro equipo.

# tar xvfz xampp-linux-1.8.0.tar.gz -C /opt

Este comando descomprimirá el paquete XAMPP en nuestro disco creando así una carpeta llamada lampp. Es importante recordar que este paquete no puede descomprimirse desde Windows con ninguna de sus herramientas para descomprimir, esto provocaría que el paquete no funcionase. Otra cosa a tener en cuenta es que si se descomprime sobre una versión anterior esta se actualizará.

Puesta en marcha

Para la puesta en marcha antes de nada debemos cambiar permisos, en concreto de /opt/lamp/htdocs/ y /opt/lamp/phpmyadmin/config.inc.php para poder arrancar el servicio.

$ sudo chmod -R 777 htdocs/
$ sudo chmod 660 config.inc.php

Una vez hecho esto ya podemos inicar nuestro servidor XAMPP, desde /opt/lampp/ ejecutamos.

$ sudo ./lamp start

Deberemos ver.

Starting XAMPP for Linux 1.8.0...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.

XAMPP nos indica que ha podido arrancar sin problemas.

Pruebas

Para comprobar que todo funciona basta con abrir un navegador y poner en la barra de direcciones http://localhost, y deberemos poder ver algo parecido a esto.

La opción Status nos indicará los servicios iniciados.

phpMyAdmin

Puede ser que al intentar acceder a nuestro phpmyadmin nos encontremos con el siguiente mensaje.

Bien, para solucionar esto, debemos editar el fichero httpd-xampp.conf como nos indica el mensaje, este fichero se encuentra en /lampp/etc/extra/.

$ sudo gedit httpd-xampp.conf

Para solucionar el mensaje XAMPP nuevo concepto de seguridad, debemos buscar las siguientes líneas dentro del fichero.

<Directory "/opt/lampp/phpmyadmin">
    AllowOverride AuthConfig Limit
    Order allow,deny
    Allow from all
</Directory>

Las dejaremos de la siguiente forma para poder acceder a nuestro phpMyAdmin.

<Directory "/opt/lampp/phpmyadmin">
    AllowOverride AuthConfig Limit
    Require all granted
    #Order allow,deny
    #Allow from all
</Directory>

Por último, para evitar posibles problemas de acceso, vamos al final del fichero y encontraremos las siguientes líneas.

#
# New XAMPP security concept
#
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
	Order deny,allow
	Deny from all
	Allow from ::1 127.0.0.0/8 \
		fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
		fe80::/10 169.254.0.0/16

	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

Y las modificamos para que queden de la siguiente forma.

#
# New XAMPP security concept
#
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
	Order deny,allow
	#Deny from all
	Allow from ::1 127.0.0.0/8 \
		fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
		fe80::/10 169.254.0.0/16
	Allow from all

	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

Una vez hechas estas modificaciones ya podemos reiniciar XAMPP y comprobar que todo ha ido bien. Con esta última modificación, estamos permitiendo que nuestro servidor sea accesible desde cualquier equipo.

$ sudo ./lampp restart

Para detener el servicio utilizaremos la siguiente instrucción.

$ sudo ./lampp stop

Seguridad

Para añadir seguridad, empezamos por las páginas de XAMPP y el FTP, para eso sólo tenemos que ejecutar el siguiente comando y seguir el asistente.

 $ sudo ./lampp security

Ya sólo queda añadir seguridad al usuario root y pma de phpMyAdmin, para eso, desde phpMyAdmin, en la pestaña Usuarios, editamos los privilegios de los usuarios root y pma y añadimos las contraseñas. Una vez hecho esto, editamos el fichero /lampp/phpmyadmin/config.inc.php.

$ sudo gedit config.inc.php

Y añadimos las contraseñas a los usuarios root y pma en sus líneas correspondientes.

...
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'tu password';
...
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'tu password';

Si queremos aumentar la seguridad de phpMyAdmin, ya que hemos permitido acceder a nuestro servidor desde cualquier equipo, en vez de poner la contraseña para root en config.inc.php, comentaremos las siguientes líneas utilizando /* al inicio y */ al final.

...
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
...

De esta manera, cada vez que se intente acceder a phpMyAdmin, este nos pedirá usuario y contraseña.

Cambiar el tamaño de subida de los ficheros

Si necesitamos modificar el tamaño de los archivos que puedan subir los usuarios, debemos modificar el valor de tres variables que encontraremos en el fichero php.ini dentro de /opt/lamp/etc.

upload_max_filesize = 100M
post_max_size = 110M
max_execution_time = 120

Puede parecer un tamaño exagerado, pero así me curo en salud, estas líneas significan lo siguiente, la primera el tamaño máximo permitido de los ficheros que se suban, la segunda indica la carga por envío, que debe ser igual o mayor que la primera, y la tercera el tiempo de ejecución de los scripts, en este caso, 2 minutos.

Se reinicia XAMPP y ya estamos listos para funcionar, recuerda que todos nuestros proyectos deberán ir dentro del directorio /opt/lampp/htdocs, y debemos revisar los permisos de los directorios que vayamos creando dentro para evitar posibles errores.

Au!!