Está en la página 1de 4

NUEVO MANUAL LAMP CENTOS 7

Se ha desarrollado un nuevo manual con nuevo contenido y configuraciones, este incluye la última
versión de PHP (7.3) y la opción de MySQL o MariaDB entre otras recomendaciones esperamos te sea
de utilidad. Nota: Cuando se editen los archivos de configuración obviamente hay que guardarlos :v, asi que no
mencionare el paso GUARDAR pero más abajo explico como guardar (1 vez e_e)

1) Ingresar como root y ejecutar


yum -y update
yum -y install net-tools nano zip unzip yum-utils wget

2) Registrar usuario(s) que tengan habilitado sudo (recomendable, pero si quieres te quedas
con root noma :v) para el ejemplo se creará un usuario llamado arturo

useradd arturo
passwd arturo (para crearle su contraseña)
usermod -aG wheel arturo (wheel es el grupo de sudoers)
nano /etc/sudoers (nos dirigimos al final del archivo presionando CTRL+W y luego CTRL+V)
Ahí escribimos arturo ALL=(ALL) ALL

Con ello ya se puede guardar el archivo y salir (puedes guardar con CTRL+O ó también al salir
CTRL+X nano te preguntará si quieres guardar y le indicas que Si con la tecla Y ó S y Enter)

3) Instalación de Apache y apertura de puertos (apartir de este punto del manual en adelante
la mayoría de comandos tendrán sudo adelante debido a que ahora ya no somos root)

sudo yum -y install httpd


sudo systemctl start httpd.service
sudo systemctl enable httpd.service
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

4) Instalación de MySQL o MariaDB


Sólo debe de instalarse uno de ellos dado que su funcionalidad es muy similiar, sin
embargo hay proyectos que trabajan mejor en un motor de MySQL como Laravel. CentOS
viene por defecto con la integración a MariaDB y por ello requiere de menos comandos

4.1 MariaDB:
sudo yum -y install mariadb-server mariadb
sudo systemctl start mariadb
sudo systemctl enable mariadb
4.2 MySQL 5.7:
sudo rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
sudo yum -y install mysql-community-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
MySQL genera un password temporal para su usario root al instalarse, este password
se puede visualizar con el siguiente comando
sudo grep -i password /var/log/mysqld.log

4.3 Paso Final (Ambos Motores):


Para finalizar la configuración debe correrse el comando.
mysql_secure_installation
Al ejecutar ese comando lo primero que solicitará es la clave actual de root, en una
instalación de MariaDB sólo debe presionarse ENTER, en una instalación de MySQL se
usa el password que aparece en el último comando, los demás pasos son bien simples

5) Instalación de PHP 7.3

sudo yum install epel-release (si ya estuviera instalado no hay problema)


sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --disable remi-php54
sudo yum-config-manager --enable remi-php73
sudo yum -y install php php-mysqlnd

Hasta aquí ya se tiene una instalación de php con lo mínimo, sin embargo es recomendable
instalar composer, debido a que este es el gestor de dependencias de proyectos PHP por
excelencia y adicionalmente al solicitarlo yum nos instalará automáticamente las extensiones
de php más usuadas lo que es extremadamente útil si se quiere levantar un WP o Laravel

sudo yum -y install composer

6) Últimos ajustes de integración de Apache con PHP

Estos ajustes permiten que Apache ejecute correctamente los archivos .php y habilita los
archivos .htaccess en el servidor web.
sudo nano /etc/httpd/conf/httpd.conf

Buscar la líneas: (CTRL + W)


- DirectoryIndex index.html y cambiar por DirectoryIndex index.php index.html
- Buscar Directory /var/www/html y cambiar el valor de AllowOverride All

sudo systemctl restart httpd.service

7) Instalación de un gestor de Base de Datos (Opcional)

Para los que me conocen en persona, saben que recomiendo el uso de DBNinja
https://www.dbninja.com/ sin embargo si son necios también pueden instalarse
PHPMyAdmin con la documentación que se encuentra en este link:

a) http://www.configserverfirewall.com/linux-tutorials/install-phpmyadmin-centos-7/
b) Para el tutorial usar la versión de estos links: https://www.phpmyadmin.net/files/

Con todo lo anterior, ya se tiene configurado un servidor web simple habilitado para alojar un
sólo sitio web, en la siguiente página dejo unas recomendaciones sobre los permisos de
carpetas del servidor web para no tener incovenientes al subir tu desarrollo.
8) Recomendaciones sobre permisos

El tema de permisos en Linux es muy delicado, estas recomendaciones de permisos que


dejo son efectivas pero bastante simples, siempre puede modificarse la configuración de
permisos de carpeta según como este estructurado tu proyecto, asi que no se debe tomar
estas recomendaciones como definitivas.

a) Una configuración bastante recomendada es hacer a apache y su grupo dueño de la


raíz del servidor web y agregar tu usuario al grupo apache:
sudo chown -R apache:apache /var/www/html
sudo chmod -R 775 /var/www/html
sudo usermod -a -G apache arturo

b) Respecto a la subidas de archivos con PHP (move_uploaded_file) una opción rápida es


darle chmod 777 a la carpeta donde se subirán los archivos, y protegerlos mediante
.htaccess o ubicando los archivos fuera de la carpeta del proyecto
9) Adicionales

- Ruta de logs Apache


La ruta es : /etc/httpd/logs
Dentro de esa carpeta existen 2 archivos que pueden ser leidos con nano:
sudo nano /etc/httpd/logs/error_log (errores de codificación)
sudo nano /etc/httpd/logs/access_log (otros errores, la vida esta llena de errores :v)

- Encontrar la ruta de php.ini


php -i | grep "Loaded Configuration File"

- Aumentar el tamaño de subida por PHP (en php.ini, valores de ejemplo)


upload_max_filesize = 10M
post_max_size = 11M

- Si vas a usar UTF-8 en tus bases de datos, mejor que leas y adoptes esto:
https://ed.team/blog/en-mysql-nunca-uses-utf8-usa-utf8mb4

También podría gustarte