Está en la página 1de 8

Aplicaciones web Instalación de LAMPP

Debian 9 LAMP Server Tutorial with


Apache, PHP 7 and MariaDB

LAMP proviene de Linux, Apache, MySQL, PHP. Este tutorial muestra cómo instalar
un servidor web Apache en un Debian Stretch 9 con PHP 7 y MariaDB. MariaDB es
un sistema de gestión de base datos que usa el servidor de Base de datos MYSQL.
Proporciona características compatibles con MySQL y puede que sea un poquito
más rápido. MariaDB funcionará con aplicaciones que requieren MySQL como
Wordpress, Joomla, etc que usaremos durante este curso.
Un LAMPP es una base perfecta para sistemas CMS como los cometandos.
1 Preliminary Note

En este tutorial se usa el nombre de servidor server1.example.com con la


dirección IP 192.168.1.100. Esta configuración debe ser amoldada al caso de
cada equipo en que se instale.

2 Installing MariaDB as MySQL replacement


Primero, instalamos MariaDB con:

apt-get -y install mariadb-server mariadb-client

-y asume yes para los prompts. Esto sirve para las preguntas de dedepencias y de
tamaño.
A continuación, securizamos MariaDB con el comando mysql_secure_installation.
Escribimos el comando y vamos respondiendo a las preguntas según se muestra a
continuación:

mysql_secure_installation

En rojo lo que hay que contestar en cada caso.


mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL
MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the
current password for the root user. If you've just installed
MariaDB, and you haven't set the root password yet, the
password will be blank, so you should just press enter here.
Enter current password for root (enter for none): <-- Pulsamos

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/
Aplicaciones web Instalación de LAMPP

Enter
Con esto de antes, le decimos que no hay password de root aún, y en el paso siguiente
la vamos a establecer.
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the
MariaDB root user without the proper authorisation.
Set root password? [Y/n] <-- y
New password: <-- Nueva contraseña para el usuario root de MariaDB
Re-enter new password: <-- Contraseña nuevamente
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user,
allowing anyone to log into MariaDB without having to have a
user account created for them. This is intended only for
testing, and to make the installation go a bit smoother. You
should remove them before moving into a production
environment.
Remove anonymous users? [Y/n] <-- y
... Success!
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at the
root password from the network.
Disallow root login remotely? [Y/n] <-- y
... Success!
By default, MariaDB comes with a database named 'test' that
anyone can access. This is also intended only for testing, and
should be removed before moving into a production environment.
Remove test database and access to it? [Y/n] <-- y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? [Y/n] <-- y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your
MariaDB installation should now be secure.
Thanks for using MariaDB!
La instalación de MariaDB está segura ahora.
3 Installing Apache web server

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/
Aplicaciones web Instalación de LAMPP

Apache está disponible como paquete Debian, por tanto lo


podemos instalar así:

apt-get -y install apache2

Ahora navegamos a http://192.168.1.100, y deberíamos obtener la página de


inicio de Apache (It works!):

El directorio de documentos de Apache es /var/www en Debian, y el fichero de


configuración es /etc/apache2/apache2.conf. Otras configuraciones
adicionales se guardan en subdirectorios del directorio /etc/apache2 como
/etc/apache2/mods-enabled (para módulos de Apache),
/etc/apache2/sites-enabled (para hosts virtuales), y /etc/apache2/conf-
enabled.
4 Installing PHP 7.1
Instalamos PHP y el módulo de PHP para Apache con el siguiente comando:

apt-get -y install php7.0 libapache2-mod-php7.0

Es necesario reiniciar Apache tras la instalación:

service apache2 restart

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/
Aplicaciones web Instalación de LAMPP

5 Testing PHP / Getting details about your


PHP installation
El directorio por defecto para el sitio web es /var/www/html. Vamos a crear un
archivo PHP(info.php) en ese directorio y lo vamos a llamar por el navegador. El
fichero nos mostrará muchos detalles útiles sobre nuestra instalación PHP, como por
ejemplo la versión de PHP instalada.

nano /var/www/html/info.php

<?php

phpinfo();

Ahora entramos a esa información navegando (e.g.


http://192.168.1.100/info.php):

Como podemos ver, PHP 7.0 está funcionando y lo hace a través del Apache 2.0
Handler, como se puede ver en la línea Server API.
Lo anterior se refiere a que php está funcionando como módulo de apache. Y para
ello así se instaló libapache2-mod-php7.0 en el paso anterior.
Si continuamos haciendo scroll hacia abajo, veremos todos los módulos habilitados
en PHP. MySQL/MariaDB no aparece, lo que significa que no tenemos aún soporte
para MySQL en PHP.
No tenemos aún mySQL, Vamos a ello en el punto 6.

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/
Aplicaciones web Instalación de LAMPP

6 Getting MySQL and MariaDB Support in


PHP
Para obtener soporte MySQL en PHP tendremos que instalar el paquete php7.0-
mysql. Puede ser una buena idea instalar otros módulos PHP pues puede que sean
necesarios para algunas aplicaciones. Para buscar módulos disponibles para PHP 7
usamos el comando:

apt-cache search php7.0

Elegimos los que queramos y se instalan con el comando siguiente:


De momento, vamos a intentar instalar tan sólo el php7.0-mysql a ver si nos protesta
ahora o en otro momento y por qué.

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-


intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-
memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-
tidy php7.0-xmlrpc php7.0-xsl

Ahora es necesario reiniciar Apache:

service apache2 restart

Si ahora miro el phpinfo (tras refrescar) veo que tengo muchas “mysqls”.

7 PHP Cache to improve the PHP speed


Para dar más velocidad a PHP, debería estar instalado Opcache. Comprobamos si
el módulo PHP Opcache ha sido instalado y habilitado correctamente con el
siquiente comando:

php --version

Deberíamos obtener algo así, con el módulo Opcache señalado en rojo.


PHP 7.0.27-0+deb9u1 (cli) (built: Jan 5 2018 13:51:52) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.27-0+deb9u1, Copyright (c) 1999-2017, by
Zend Technologies
Cuando lo hemos hecho sí que venía.
Si no aparece el módulo Opcache en el resultado, lo instalamos ocn este comando:

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/
Aplicaciones web Instalación de LAMPP

apt-get -y install php7.0-opcache

Hay otra cache más que podría ser útil, su nombre es APCu. APCu optimiza el
código intermedio PHP.
APCu puede instalarse de la siguiente manera:

apt-get -y install php-apcu

Reiniciamos Apache:

service apache2 restart

Recargamos http://192.168.1.100/info.php en el navegador y hacemos


scroll hasta la sección de módulos. Deberíamos ver nuevos módulos incluyendo el
de MySQL que es el necesario para nuestra base de datos MariaDB.

8 phpMyAdmin
phpMyAdmin es una interface web a través de la cual podemos trabajar con
nuestras bases de datos.
Podría hacerse por consola, pero excede lo que nosotros vamos a hacer.
Lo instalamos con el comando:

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/
Aplicaciones web Instalación de LAMPP

apt-get -y install phpmyadmin

Contestamos a las siguientes preguntas con lo resaltado en rojo:

El lighttp es un servidor más liviano que apache.


Web server to reconfigure automatically: <-- apache2

Configure database for phpmyadmin with dbconfig-common?<-- Yes

MySQL application password for phpmyadmin: <-- Press enter, apt will
create a random password automatically. Muy importante: al hacer caso a esto no
podíamos entrar a phpmyadmin. NO DAMOS A ENTER. ESCRIBIMOS UNA
CONTRASEÑA QUE USAREMOS.
Afterwards, you can access phpMyAdmin under
http://192.168.1.100/phpmyadmin/:
Nos hemos encontrado que no podemos acceder. Vamos a intentar cambiar el
hecho de poder acceder sin contraseña, y luego suponemos que podremos crear
usuario o lo que sea.
Hemos decidido desinstalar y volver a instalar.
Tampoco funcionaba. Al final resulta que:
1) el usuario es phpmyadmin
2) la password es la que se pone en el paso MySQL application password
for phpmyadmin: <-- Press enter, apt will create a random password

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/
Aplicaciones web Instalación de LAMPP

automatically. por lo que no deberíamos dejarla en


blanco. La hipótesis actual es que en caso de haberla dejado en blanco habría
que haber descomentado en config.inc.php lo de no permitir usuarios sin
passwords.

9 Enable MySQL root Login for phpMyAdmin


Aunque es posible loguearse como root en MariaDB en línea de comandos en un
terminal, por defecto no podemos loguearnos como root en phpMyAdmin. Para
permitir al usuario root entrar desde phpMyAdmin, introducimos el siguiente
comando por consola.

echo "UPDATE mysql.user SET plugin = 'mysql_native_password'


WHERE user = 'root' AND plugin = 'unix_socket';FLUSH
PRIVILEGES;" | mysql -u root -p

10 Links
● Apache: http://httpd.apache.org/
● PHP: http://www.php.net/
● MySQL: http://www.mysql.com/
● Debian: http://www.debian.org/
● phpMyAdmin: http://www.phpmyadmin.net/

Documento base:
https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-lamp-on-debian-stretch/