Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

15 minutos para configurar un Linux Centos 7 LAMP

15 minutos para configurar un Linux Centos 7 LAMP

Sabias que hay un nuevo OS en el mercado? Linux Centos 7 vio la luz hace unos días y ya muchos estamos ansiosos por ponerlo a prueba con su diversas características. Una de las formas comunes de ver su potencial es instalar un servidor LAMP (palabra que se forma de las iniciales de Linux Apache MySQL/MariaDB PHP) que nos sirva para hostear nuestras paginas/proyectos web.

Ya entrados en detalles (y el tiempo corriendo) hoy veremos como instalar paso a paso un servidor Linux Centos 7 LAMP en el cual veremos nuevos comandos para ejecutar servicios, abrir puertos en el firewall y el reemplazo de MySQL por MariaDB. Para resultados sin errores sugiero copiar y pegar los comandos evitando problemas por sintaxis.

Requerimientos para instalar LAMP en Linux Centos

                                           Como instalar php 5.6 en Centos 7
                                           Como instalar y configurar Fail2ban en Linux Centos
                                           Como instalar php 7 en Linux Centos paso a paso
                                           Configurando servicios en Linux Centos / RedHat
                                           Playlist Implementaciones Linux en Youtube

En 15 minutos configura un Linux Centos 7 LAMP


-Se que es un posible problema de seguridad pero para este articulo prefiero desactivar SELinux. Reiniciamos nuestro servidor después de este cambio

vi /etc/selinux/config
SELINUX=disabled
-Instalamos los paquetes que necesitaremos
yum install httpd mariadb-server mariadb php php-mysql php-gd php-pear php-cli php-common NetworkManager-tui wget curl net-tools lsof firewalld

-Siguiente paso, dejar nuestro servidor con una ip fija y no dinámica por DHCP como posiblemente este después de instalar. Verificamos que ip tiene nuestro servidor

ip a sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:5a:48:4b brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.149/24 brd 192.168.1.255 scope global dynamic enp0s3
       valid_lft 85741sec preferred_lft 85741sec
    inet6 fe80::a00:27ff:fe5a:484b/64 scope link
       valid_lft forever preferred_lft forever

-El estado original de nuestra tarjeta de red podemos verificarlo en el archivo ifcfg-enp0s3. Este archivo se origina de 2 palabras, ifcfg y el nombre de la interfaz enp0s3 como vimos en la salida del comando ip anterior

cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=8a348a54-bc7b-489f-bf53-5ef406f04854
ONBOOT=yes
HWADDR=08:00:27:5A:48:4B
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

-Aunque podemos modificar el archivo directamente, hay una forma mas sencilla y visual de hacerlo, ejecutando NetworkManager Text User Interface (TUI). Escogemos Edit a connection y presionamos Enter

nmtui
DriveMeca instalando Linux Centos 7 LAMP paso a paso

-Elegimos la interfaz de red que modificaremos y con la tecla TAB buscamos Edit. Presionamos Enter
DriveMeca instalando Linux Centos 7 LAMP paso a paso

-Ya editando nuestra conexión, damos Enter sobre Show en IPv4
DriveMeca instalando Linux Centos 7 LAMP paso a paso

-Escogemos Manual y escribimos los datos ip para nuestra tarjeta. Salimos guardando dando Enter sobre Ok
DriveMeca instalando Linux Centos 7 LAMP paso a paso

-Salimos presionando Enter sobre Quit
DriveMeca instalando Linux Centos 7 LAMP paso a paso

-Si visualizamos ahora el archivo de configuración de nuestra tarjeta veremos los cambios que acabamos de hacer

cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=8a348a54-bc7b-489f-bf53-5ef406f04854
ONBOOT=yes
HWADDR=08:00:27:5A:48:4B
IPADDR0=192.168.1.149
PREFIX0=24
GATEWAY0=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
DNS3=8.8.4.4
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

-Reiniciamos el servicio de red para que tome los cambios

systemctl restart network

Activamos firewalld para Linux Centos LAMP


-Aunque podemos manejar iptables directamente, una buena alternativa es por medio de firewalld. Activamos el servicio y lo ejecutamos
systemctl enable firewalld
systemctl start firewalld


Configuramos Apache para Linux Centos LAMP


-Activamos el servicio de apache y lo ejecutamos
systemctl enable httpd
systemctl start httpd

-Verificamos este ejecutándose correctamente
systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since dom 2014-07-13 16:26:17 COT; 48s ago
 Main PID: 3054 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─3054 /usr/sbin/httpd -DFOREGROUND
           ├─3056 /usr/sbin/httpd -DFOREGROUND
           ├─3057 /usr/sbin/httpd -DFOREGROUND
           ├─3058 /usr/sbin/httpd -DFOREGROUND
           ├─3059 /usr/sbin/httpd -DFOREGROUND
           └─3060 /usr/sbin/httpd -DFOREGROUND

jul 13 16:26:17 ce7.test.com systemd[1]: Started The Apache HTTP Server.

-Verificamos configuración de apache
apachectl configtest
Syntax OK

Importante sobre apache

Configuración: /etc/httpd/conf/httpd.conf
Configuración de módulos: /etc/httpd/conf.modules.d/
Puertos: 80 (http) y 443 (https - SSL)
Logs: /var/log/httpd/

-Abrimos los puertos 80 y 443 en el firewall
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https

-Abrimos un browser y navegamos a la ip de nuestro servidor
Navegamos a nuestro servidor apache verificando asi su funcionamiento

Configuramos Mariadb para Linux Centos LAMP


-Activamos el servicio mariadb y lo ejecutamos
systemctl enable mariadb
systemctl start mariadb

-Verificamos este ejecutándose correctamente el servicio
systemctl status mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since vie 2018-04-13 17:45:25 -05; 22s ago
  Process: 11542 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 11462 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 11541 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─11541 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─11703 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var...

-Aseguramos nuestra configuración de mariadb. La contraseña de root de mariadb apenas instalamos no existe, por ello damos Enter, después dejamos los valores por default y escribimos una contraseña cuando se nos pida

/usr/bin/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): 
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] 
New password: 
Re-enter new password: 
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] 
 ... 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] 
 ... 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] 
 - 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] 
 ... 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!

-Ahora que ya tenemos asegurada nuestra instalación de MariaDB la probamos con el usuario root y la contraseña que acabamos de colocarle. Podemos verificar las bases de datos que tiene en este momento y salimos con el comando quit

mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> quit;
Bye

Importante sobre MariaDB

Configuración: /etc/my.cnf
Puertos: 3306
Logs: /var/log/mariadb/

Verificamos PHP


-Siguiente paso, verificar si nuestro apache tiene bien configurados php y con que módulos esta ejecutando. Para esto creamos un archivo php

vi /var/www/html/test.php
<?php
phpinfo();
?>

-Le damos permisos a apache
chown apache.apache /var/www/html/test.php

-Navegamos a http://192.168.1.149/test.php y veremos todos los módulos que tenemos activos en nuestro apache
Por medio de esta pagina podemos verificar version de php y sus modulos

Ahora ya tenemos nuestro servidor Linux Centos 7 LAMP listo para colocar nuestras paginas o proyectos web. Ya tienes un servidor LAMP, con Centos? con que distribución? Ya usas Centos 7?

Pretendo vivir de mi blog, de enseñar opensource, pero esto no sera posible sin tu apoyo

Satisfech@ con el articulo? Bien, hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twittergoogle+facebook, email, YouTube o Patreon y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.


Share/Bookmark

2 comentarios:

Dejame un comentario, aprecio la retroalimentacion. Leave me a comment, I appreciate the feedback.