Anda di halaman 1dari 11

SERVIDOR

WEB EN LINUX

Walter Hidalgo Córdova


Partimos de la idea que ya tenemos una máquina física o virtual instalada
con lo mínimo, y con la tarjeta de red configurada y con conexión a internet.
En este caso es una distribución Linux con CentOS 7 de 64 bits, que
instalamos a partir de la ISO Minimal: CentOS-7-x86_64-Minimal-1503-
01.iso

Nuestro servidor será un servidor de desarrollo por lo que dejaremos un poco


relajado el tema de la seguridad con Linux + Apache + MySQL+ PHP =
LAMP

También vamos a suponer que estamos trabajando con el usuario root.

Que sabemos cuál es la dirección de nuestra máquina (ip addr).


Lo primero que vamos a hacer es actualizar el sistema:

yum update
Luego instalaremos algunas herramientas básicas que utilizaremos:

yum install nano


yum install ftp
yum install wget

Instalación de Apache, nuestro servidor web.


Y ahora empezamos con la instalación propiamente dicha, lo primero será
instalar el servidor web Apache:
yum install httpd

Walter Hidalgo Córdova


systemctl start httpd.service
systemctl enable httpd.service

Ahora comprobamos que el Apache está funcionando:

Sino funciona puede que se tenga activado el FirewallD (el sustituto de


iptables creado por la gente de Fedora), para abrir el puerto del firewall
tendremos que ejecutar:

• firewall-cmd --permanent --zone=public --add-service=http


• firewall-cmd --permanent --zone=public --add-service=https
• firewall-cmd --reload

Ahora instalamos el lenguaje de scripts PHP:

yum -y install php

Walter Hidalgo Córdova


Reiniciamos el Apache para que soporte ahora PHP con la siguiente
instrucción:

systemctl restart httpd.service

Y ahora creamos una pequeña página web en php con el editor “nano”:

nano /var/www/html/probando.php

Comprobamos su funcionamiento en un navegador:

Walter Hidalgo Córdova


Instalamos ahora los módulos de PHP que nos permitirán conectarnos a una
base de datos MySQL.

yum -y install php-mysql

Instalamos algunos módulos de seguridad y útiles de PHP:

yum -y install php-gd php-ldap php-odbc php-pear php-


xml php-xmlrpc php-mbstring php-snmp php-soap curl
curl-devel

Comprobamos que se han instalado los módulos con la instrucción:

php -m

Si queremos ver donde se ubican los ficheros de configuración de PHP:

php --ini

Algunos parámetros que se suelen modificar del fichero “/etc/php.ini” son:

post_max_size = 50M
upload_max_filesize = 100M

Reiniciamos nuevamente Apache para que funcionen los nuevos módulos

systemctl restart httpd.service

Walter Hidalgo Córdova


Instalación de la última versión de PHP

rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

Instalación de MySQL en CentOS 7.


CentOS 7 no incluye MySQL en su repositorio en su lugar utiliza MariaDB,
así que si queremos forzar la instalación de MySQL deberos descargarlo
nosotros previamente

En la página web http://repo.mysql.com/ podemos ver la última versión de


MySQL, en estos momentos la última release es la 7-7, por lo que nuestro
comando será:

wget http://repo.mysql.com/mysql-community-release-el7-
7.noarch.rpm

Walter Hidalgo Córdova


Luego procedemos a la instalación del paquete en el repositorio:

rpm -ivh mysql-community-release-el7-7.noarch.rpm

Si hacemos:

ls -1 /etc/yum.repos.d/mysql-community*

AHORA ya podemos instalar los 80 Mb de MySQL:

yum install mysql-server

Una vez terminada la instalación debemos arrancar el servicio:

systemctl start mysqld

Configuración de MySQL
Primero tratamos el tema de seguridad de la cuenta “root”

mysql_secure_installation

La clave por defecto está en blanco, así que lo primero será crear una clave
para el root, luego vendrán una serie de preguntas de seguridad por si
queremos conectarnos desde el exterior, etc.

Si tenemos activado el FirewallD y queremos acceder a MySQL desde el


exterior debemos abrir el puerto de MySQL:

Walter Hidalgo Córdova


firewall-cmd --permanent --zone=public --add-service=mysql

firewall-cmd --zone=public --add-port=3306/tcp

Si queremos que root pueda conectarse desde otros equipos:

mysql -u root -p
grant all on *.* to root@'%' identified by 'contraseña_que_sea';

flush privileges;

Instalación de PHPMyAdmin
Utilizaremos este software para administrar la base de datos MySQL. Los
repositorios por defecto de CentOS no incluyen PHPMyAdmin así que lo
primero que haremos es incluir el repositorio que si lo incluye
http://pkgs.repoforge.org/rpmforge-release/ (miramos cual es el último):

rpm -iUvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-


release-0.5.3-1.el7.rf.x86_64.rpm
yum -y update
yum install phpmyadmin

Walter Hidalgo Córdova


Ahora la segunda parte sería poder acceder al phpMyAdmin desde un
ordenador externo para ello hay que editar el archivo:

nano /etc/httpd/conf.d/phpMyAdmin.conf

y añadir las de bajo de las “Require ip 127.0.0.1”

Require ip
Luego nuevamente reiniciamos el sistema:

systemctl restart httpd.service

Descarga directa de phpMyAdmin


Si no queremos modificar nuestro repositorio de paquetes y queremos
descargar directamente PHPMyAdmin:

wget
https://files.phpmyadmin.net/phpMyAdmin/4.5.5.1/phpMyAdmin-
4.5.5.1-all-languages.tar.gz
tar -xzvf phpMyAdmin-4.5.5.1-all-languages.tar.gz
Nos creará una carpeta con todo el código de phpMyadmin.

Creando un directorio para un dominio


Una vez tenemos montado el servidor lo que nos interesa es alojar distintos
dominios en el mismo para ello vamos a configurar Apache:

El directorio donde es aconsejable guardar todas las webs será:

/var/www/html/

A partir de aquí podemos ir creando carpetas para cada web, luego tendremos
que configurar los vhosts de Apache.

Walter Hidalgo Córdova


Permisos para apache:
las carpetas y archivos deben tener permisos de lectura para el usuario apache

Soluciones: pones todo como propietario a apache o bien aplicas los


permisos correspondientes para resto de usuarios que no son el propietario:

chown -R apache:apache ./la_carpeta_que_sea


chmod -R 755 ./la_carpeta_que_sea

Walter Hidalgo Córdova


Walter Hidalgo Córdova