lunes, 7 de octubre de 2019

Instalar un servidor web LAMP en Centos 7

Instalar un servidor web LAMP en Centos 7

Buena a tods, escribo de tiempo. Para hoy instalaremos un servidor web LAMP en Centos 7. Si conocéis este tipo de servidor web, se trata de la combinación de Linux + Apache + Mysql + PHP. Para el mismo tipo de servidor también se suele utilizar el nombre de GLAMP, añadiendo GNU a la ecuación.

Un servidor web LAMP en Centos 7

Básicamente es ir instalando las piezas, no tiene mucha más complicación. Lo primero de todo será actualizar el sistema e instalar Apache.

Actualizar el sistema e instalar Apache

Yo voy a utilizar ‘root’, aunque lo más adecuado sería utilizar otro usuario dentro del grupo ‘sudo’ (‘wheel’ en Centos 7)

# yum -y update

# yum -y install httpd

Para activar el servicio web con Apache, además de añadirlo al inicio, ejecutamos:

# systemctl enable httpd.service
# systenctl start httpd.service

Recordar que por defecto Centos 7, utiliza “/var/www/html“, al igual que otras distribuciones, aunque algunas páginas, como la página de bienvenida, se encuentran en “/usr/share/httpd
Además, debemos habilitar el puerto 80 en el cortafuegos, si lo tenemos habilitado, utilizando la herramienta “firewall-cmd”
# firewall-cmd --add-port=80/tcp --permanent
# firewall-cmd --reload
Si todo ha ido bien, si nos marchamos al navegador web, añadiendo la IP del servidor, ya tendríamos que ver la página de bienvenida:

Habilitar Mod_rewrite Module

El mod_rewritemódulo está habilitado de manera predeterminada en CentOS 7. Si encuentra que no está habilitado en su servidor, puede habilitarlo editando el 00-base.confarchivo ubicado en el directorio /etc/httpd/conf.modules.d/
vi /etc/httpd/conf.modules.d/00-base.conf
Agregue o descomente la siguiente línea:
LoadModule rewrite_module modules/mod_rewrite.so
Guarde y cierre el archivo, luego reinicie el servicio httpd:
sudo systemctl restart httpd

Habilitar Archivo .Htaccess

Una vez que el módulo mod_rewrite se ha activado, puede configurar sus reescrituras de URL creando un archivo .htaccess en su directorio raíz de documentos predeterminado. Un archivo .htaccess nos permite modificar nuestras reglas de reescritura sin acceder a los archivos de configuración del servidor. Por esta razón, .htaccesses fundamental para su servidor web. Antes de comenzar, debemos permitir que Apache lea los archivos .htaccess ubicados en el directorio /var/www/html.
Puede hacer esto editando el archivo httpd.conf:
vi /etc/httpd/conf/httpd.conf
Busque la sección <directory /var/www/html>y cambie AllowOverride None por AllowOverride All
 <Directory /var/www/html>
    AllowOverride All
 </Directory>
Guardar y Salir.
Ahora reinicie Apache para que el cambio surta efecto:
sudo systemctl restart httpd

Habilitar utf8_(en|de) Código eliminado de php7?

Si se actualiza o instala una versión de php 7 actual, las funciones de utf8_encode() y ut8_decode() ya no estarán disponibles, por lo que se generará un error fatal.
La solución es instalar un paquete adicional a la instalación de php7:
yum install php-xml  //para centos7
sudo apt-get install php5.6-xml  //ubuntu 16.04 LTS, con php 5.6

Reiniciar el servidor apache:
sudo systemctl restart httpd

Instalar MariaDB

Ya sabemos que MariaDB es un fork de MySQL, producto propiedad de Oracle. Como aquí somos fans del software libre, nos inclinaresmos por MariaDB
# yum install -y mariadb-server mariadb
Añadimos el servicio al inicio y lo activamos:

# systemctl enable mariadb.service

# systemctl start mariadb.service



Por defecto el motor de base de datos viene con el usuario ‘root’ sin contraseña, además de otras cosas que tenemos que modificar. Para asegurar la instalación vamos a utilizar “mysql_secure_installation”, simplemente escribiendo:

mysql_secure_installation  ( El usuario root no tiene contraseña inicial)
configurar según las necesidades del servicio.

Nos irá preguntando una serie de cosas. La principal es asignar una contraseña al usuario ‘root’, después deshabilitar usuarios innecesarios y también impedir el acceso remoto a las bases de datos.

Para dar acceso externo a nuestro server:

Habilitar el acceso remoto en my.cnf

En primer lugar hay que revisar o cambiar el fichero mcy.cnf. Para localizarlo podemos ayudarnos del comando «locate my.cnf«. Esta instrucción localizará todos los ficheros my.cnf existentes. Generalmente estará en «/etc/my.cnf». Una vez localizado, debemos realizar una copia del mismo con «cp /etc/my.cnf /etc/my.cnf-ori«. Una vez copiado ya podremos modificarlo.
Dentro de la sección [mysqld], hay que revisar si existen los parámetros:
bind-address=127.0.0.1
skip-networking
En caso de existir habría que comentar ambos, de lo contrario solo podríamos trabajar en local. Si en bind-address tuviéramos una IP distinta a 127.0.0.1, lo podríamos dejar sin comentar. Este parámetro indica en qué dirección queremos que escuche MySQL. Para comentarlos tan solo habría que añadir «#» delante de los mismos:
#bind-address=127.0.0.1 
#skip-networking
Una vez cambiado el fichero hay que reiniciar MySQL con:
service mysqld restart

Añadir el puerto a firewall-cmd o iptables

Después de haber configurado MySQL, hay que añadir el puerto a «firewall-cmd«. Este firewall viene por defecto instalado y habilitado en las últimas versiones de Centos. Hay que añadir el puerto de MySQL a dicho firewall para que podamos acceder desde el exterior. Como por defecto es el puerto 3306 usaremos este en los ejemplos.
En primer lugar tenemos que ver en qué zonas está activado firewall-cmd. Normalmente será «public»
habilitar el acceso remoto mysql centos 7
Una vez hecho esto tendremos que agregar el puerto a la zona y aplicamos la configuración:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
Si nos indica «Command not found» tendremos que agregarlo a iptables con:
iptables -I INPUT -i <interfaz> -p tcp --destination-port 3306 -j ACCEPT
Después de habilitar el acceso remoto, podremos acceder con una herramienta externa


Instalar PHP

PHP es uno de los lenguajes de programación más populares para aplicaciones web. Este trabaja junto con HTML fantásticamente, para mostrar contenido dinámico. Además de incluir los controladores perfectos para conectar al sistema de administración, de la base de datos.
Procedemos:
# yum install -y php php-mysql
Una vez hecho esto reiniciamos Apache:

# systemctl restart httpd.service

En los repositorios de Centos 7, por defecto viene la versión 5 de PHP, si queremos utilizar una más reciente, podemos añadir el repositorio REMI.

Probar PHP

Para comprobar la instalación de PHP, vamos a crear el fichero “info.php”, en la ubicación “/var/www/html/info.php”
# vi /var/www/html/info.php

precionamos i o insert para editar texto, luego esc y :wq para guardar cambios

Escribimos el siguiente contenido:

<?php
phpinfo();
?>

Guardamos y ya podemos acceder a la URL : http://nuestra-ip/info.php
La página nos mostrará información muy extensa sobre la instalación del servidor.

Conclusión

Lo cierto es que la instalación de LAMP es un muy sencilla y nada compleja. Ahora solo nos falta crear un poco de magia, desarrollando aplicaciones web.
Espero que el artículo os haya parecido interesante y que en alguna ocasión os pueda ser de utilidad.

Pasos de instalación de PHP 7.0, 7.1 y 7.2 en el servidor CentOS 7


1) Instalar yum-utils y habilitar el repositorio EPEL

Inicie sesión en su servidor y use el siguiente comando yum para instalar yum-utils y habilitar el repositorio de epel

# yum install epel-release yum-utils -y
2) Descargue e instale remirepo usando el comando yum

# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

3) Base en su requerimiento, configure el repositorio PHP 7.x
Para configurar el repositorio PHP 7.0, use el siguiente comando,
# yum-config-manager --enable remi-php70
Para configurar el repositorio PHP 7.1, use el siguiente comando,
# yum-config-manager --enable remi-php71
Para configurar el repositorio PHP 7.2, use el siguiente comando,
# yum-config-manager --enable remi-php72
4) Instalar PHP 7.2 junto con las dependencias.
En este tutorial, instalaré la última versión de PHP 7.2 junto con sus módulos, Ejecutar debajo del comando yum
# yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysql -y
Nota: Para buscar en todos los módulos PHP, use el siguiente comando:
# yum search php | more
5) Verificar la versión de PHP
Una vez que se hayan instalado todos los PHP 7.2 y sus dependencias en el paso 4), use el siguiente comando para verificar la versión de PHP instalada,
# php -v
PHP 7.1.32 (cli) (built: Aug 28 2019 13:15:08) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.1.32, Copyright (c) 1999-2018, by Zend Technologies
[root@vps263054 ~]#
6) Se reinicia el servicio del httpd

# systemctl restart httpd.service

se actualiza la pagina de info.php

No hay comentarios:

Publicar un comentario