Recientemente he migrado mi entorno de trabajo de Debian 13 Gnome a openSUSE Leap 16 KDE Plasma.
Hacía tiempo que buscaba cambiar un poco de aires y salir de mi zona de confort basada en .deb para explorar más a fondo el mundo .rpm, y qué mejor que pasar de una distro super estable, aburrida y segura como Debian a otra distro super estable, segura y probablemente más aburrida como la rama Leap de openSUSE, la cual ha estrenado su versión 16 después de 8 años que se ha mantenido la 15 (y la cual aún cuenta con bastante tiempo de soporte).
En esta entrada vamos a seguir los pasos para instalar el stack de servidor web para pruebas y desarrollos en local (no vamos a abrir el servidor al exterior, solamente funcionará en nuestro entorno localhost).
Instalar Apache2 en openSUSE Leap 16.0
Primero instalamos el servidor web:
sudo zypper in apache2
Una vez instalado, lo habilitamos con el comando:
sudo systemctl enable apache2
Y seguidamente lo iniciamos con:
sudo systemctl start apache2
Otros comandos básicos de Apache son stop para detenerlo y restart para reiniciarlo, en caso de que hayamos hecho algún cambio en la configuración.
El directorio de trabajo donde alojaremos los proyectos es /srv/www/htdocs/
Configuración de Apache
Dentro del archivo de configuración de Apache, concretamente al principio, en el apartado «<Directory «/srv/www/htdocs»>», necesitamos añadir o descomentar estas líneas:
sudo nano /etc/apache2/default-server.conf
Options Indexed FollowSymLinks
AllowOverride All
Require all granted

Comprobar que no haya una linea que diga AllowOverride None (en tal caso, quitarla o comentarla)
Reiniciamos Apache:
sudo systemctl restart apache2
Para comprobar que nuestro servidor está en funcionamiento, podemos crear un sencillo archivo index.html en la ruta anterior:
sudo nano /srv/www/htdocs/index.html
<html>
<body><h1>Bienvenido a Localhost!</body>
</html>
Abrimos un navegador web y vamos a la dirección http://localhost/
Deberemos ver nuestro mensaje de bienvenida:

Instalar MariaDB en openSUSE Leap 16.0
A continuación vamos a instalar el gestor de bases de datos MariaDB:
sudo zypper in mariadb
Al igual que con Apache, debemos ejecutar los comandos para habilitar el servicio e iniciarlo:
sudo systemctl enable mysql
sudo systemctl start mysql
Y si necesitamos detener o reiniciar el servicio:
sudo systemctl stop mysql
sudo systemctl restart mysql
Establecer contraseña de root para MariaDB
Por defecto, el servicio mysql (mariadb) viene sin contraseña de root. Para asignarla ejecutamos el comando:
sudo mysql_secure_installation
Al preguntarnos si queremos asignar una contraseña de roor, decimos que si (y):
Set root password? [Y/n] y
New password: *******
Re-enter new password: ******
Password updated successfully!
Después nos hará una serie de preguntas, como si deseamos eliminar usuarios anónimos, borrar tablas de test, etc. En mi caso le doy que sí a todo:
Remove anonymous users? [Y/n] y
... Success!
Disallow root login remotely? [Y/n] y
... Success!
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] y
... Success!
Crear usuario de MySQL
Lo normal es trabajar con un usuario personalizado en lugar de trabajar directamente con root. Para crear un usuario, entramos en la consola de MySQL:
sudo mysql -u root
Y creamos el nuevo usuario:
CREATE USER tu_usuario IDENTIFIED BY 'tu_password';
Instalar PHP en openSUSE Leap 16.0
En el momento de escribir este artículo, la versión disponible para openSUSE Leap 16.0 es la 8.4.16. Una versión bastante reciente para una distro con enfoque conservador. Veremos cómo se va actualizando a lo largo de su ciclo de vida :
php --version
PHP 8.4.16 (cli) (built: Dec 19 2025 07:51:15) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.16, Copyright (c) Zend Technologies
Para instalar PHP en nuestro entorno LAMP, necesitamos el paquete php general, el paquete conector con Apache y el paquete conector con MySQL:
sudo zyyper in php8 php8-mysql apache2-mod_php8
Una vez instalado, descomentamos o añadimos esta línea en al archivo de configuración /etc/apache2/mod_mime-defaults.conf
En mi caso la línea no venía comentada y la tuve que añadir.
sudo nano /etc/apache2/mod_mime-defaults.conf
AddType application/x-httpd-php .php

Esto hará que Apache interprete los archivos .php como scripts de servidor, en lugar de archivos descargables o de texto plano.
Habilitamos el módulo de php en Apache
sudo a2enmod php8
Habilitamos el módulo rewrite, esencial para manejar URLs amigables en WordPress y otros CMS
sudo a2enmod rewrite
Ampliamos parámetros en php.ini
Por defecto, php viene configurado con unos parámetros mínimos que pueden quedarse cortos a la hora de trabajar, como el caso de la subida de archivos al servidor (limitada a 2MB), o el limite de memoria (128M).
El archivo a editar se encuentra en /etc/php8/apache2/php.ini
Si vas a trabajar con WordPress u otros CMS, a mí me gusta ampliar estos parámetros:
sudo nano /etc/php8/apache2/php.ini
memory_limit = 512M
post_max_size = 64M
max_execution_time = 180
upload_max_filesize = 64M
max_input_time = 180
max_input_vars = 10000
Ahora reiniciamos Apache para que surtan efecto todos los cambios anteriores:
sudo systemctl restart apache2
Instalar phpMyAdmin en openSUSE Leap 16.0
phpMyAdmin viene de serie en los repositorios de openSUSE, por lo que la instalación es de lo más sencillo, sin necesidad de descargar de sitios externos ni de editar archivos de configuración.
sudo zypper in phpMyAdmin
Para abrirlo accedemos desde el navegador a la ruta: http://localhost/phpMyAdmin

(Muy importante respetar las mayúsculas y minúsculas de phpMyAdmin, de lo contrario os dirá que la ruta no existe:

Relajar la seguridad de SELinux
Por último, si trabajas con WordPress o similares y tienes problemas de conexión (por ejemplo, no descarga ni instala plugins), puedes cambiar el nivel de protección de SELinux de estricto a permisivo:
sudo nano /etc/selinux/config
Y cambiamos el parámetro SELINUX=permissive

Reiniciamos el equipo, y ya tendremos todo el stack LAMP listo para desarrollo en local 😉


Deja una respuesta