El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

LEMP en debian 9

| Comments

Resulta que “linux, apache, mysql y php”, solía llamarse LAMP. Ahora, cuando cambian apache por ningx le llaman LEMP no se por qué (y no quiero averiguarlo, la moda me enferma).

En debian 9, la rima de php con nignx cambia un poquito. No hay que ser un genio para darse cuento que cosas como php5 ahora son php7, pero como para mi este blog es un sitio donde escribo el código para luego copiar y pegar, pondré como hacerlo en el “debian nuevo”.

Vamos a empezar de atrás pa alante; el MySQL

“instalando sql y compañía”
1
 root@299c0ecdbedc:~# apt install mysql-server

Uno de los cabezazos más grandes que me dí con debian 9 fue la configuración del SQL. Ya no es asistido como antes. Así que vamos a correr un par de comandos.

“configurando mysql”
1
2
 root@299c0ecdbedc:~# mysql_install_db
 root@299c0ecdbedc:~# mysql_secure_installation

Al correr el segundo te saldrán unas cuantas preguntas. Respóndelas a tu gusto y necesidad.

Ahora bien, conectar lo que No sea por el socket, se vuelve una jodienda. Por ejemplo root@localhost suele no estar autorizado; si esto se interpreta como 127.0.0.1

Ejecuta: mysql -u root o con -p si seleccionaste tener password.

Veamos por ejemplo, que creamos el usuario admin para la base de datos misdatos.

“creando «admin»”
1
2
3
4
CREATE DATABASE misdatos;
CREATE USER 'admin'@'%' IDENTIFIED BY 'secretisimo';
GRANT ALL PRIVILEGES ON misdatos.* TO 'admin'@'%';
FLUSH PRIVILEGES;

Si quieres saber los usuarios ejecuta la sentencia:

“ver los usuarios”
1
 SELECT User,Host,Password FROM mysql.user;

Bueno ya tenemos el SQL corriendo. Vamos pal resto

“instalando cosas”
1
apt install nginx mysql-client php-fpm php-mysql libfcgi0ldbl

Una vez que se instale php-fpm lo echamos a andar y lo probamos.

“probando fpm”
1
2
3
root@299c0ecdbedc:~# /etc/init.d/php7.0-fpm restart
root@299c0ecdbedc:~# cgi-fcgi -bind -connect /run/php/php7.0-fpm.sock
Content-type: text/html; charset=UTF-8

Al virtualhost de nginx, le hacemos unos arreglitos; para que nginx tire el php por fastcgi. Que ricura debian, tan solo incluyendo un snippet todo se resuelve.

“/etc/nginx/sites-available/default”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
server {

        listen 80 default_server;

        root /var/www/html;

        index index.php index.html;

        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        }
}

Reinicia nginx!

Pa probar que todo está pinchando, creamos un script que llame la función phpinfo()

“phpinfo()”
1
2
3
4
 root@299c0ecdbedc:~# /etc/init.d/nginx restart
 root@299c0ecdbedc:~# /etc/init.d/php7.0-fpm restart
 root@299c0ecdbedc:~# /etc/init.d/mysql restart
 root@299c0ecdbedc:~# echo '<?php phpinfo(); ?>' > /var/www/html/index.php

Debes poder ver la típica página que produce phpinfo()

Para probar la base de datos, creas un script de php que inicialice mysqli:

””
1
2
3
4
5
6
7
8
<?php
$misql = mysqli_connect('127.0.0.1', 'admin', 'ok');
if (!$misql) {
        die('esto no pincha: ' . mysqli_error());
}
echo 'Conexion satisfactoria';
mysqli_close($misql);
?>

Puedes correr ese script con php o llamarlo con el navegador. El resultado es bastante obvio.

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

Comments