Actualizado el lunes, 30 marzo, 2020
Cómo montar un servidor de alto rendimiento con VestaCP en CentOS 7.
Hoy en día la velocidad de un sitio web es fundamental, de hecho cada día tiene más relevancia de cara al SEO. Por ello, vamos a crear dos artículos correlativos donde explicaremos como montar tu propio servidor o VPS de alto rendimiento.
- Cómo montar un servidor de alto rendimiento con VestaCP en CentOS 7.
- Cómo optimizar Nginx con PHP-FPM en VestaCP con Centos 7.
Alguna vez me han preguntado porqué monto mis servidores con CentOS 7… bueno, tambien utilizo Debian, pero la verdad es que CentOS me parece mucho más versátil y abierto a cambios si lo comparamos con Debian, también por costumbre.
No es necesario puntualizar que estas instrucciones son válidas para cualquier servidor o VPS, aunque si necesitas un servidor dedicado totalmente administrado desde 15€, ponte en contacto con nosotros y te informaremos.
Montar un servidor de alto rendimiento con VestaCP
Instalar VestaCP
Partimos de la base que ya tienes VestaCP instalado con Nginx y php-fpm, si no es así… desde su página oficial puedes generar los comandos de instalación. Una buena selección es la que te indico en la siguiente imagen. No instales softaculos, es muy pesado y no es totalmente gratis (está capado, muy capado).
Configuración de VestaCP
Una vez instalado, lo primero que debemos hacer es actualizar e instalar el repositorio epel.
yum update yum install epel-release yum update
Dependiendo de la versión que tengas de CentOS 7, se habrá instalado php 5.4, o php 5.6, esto es inadmisible. Si o si, debes instalar php 7.1 o superior. Mi recomendación a dia de hoy es php 7.2, ya que es la máxima que es 100% compatible con todos los plugins y temas de WordPress modernos.
Actualizar PHP en VestaCP
Para actualizar la versión de php debes habilitar el repositorio remi con la versión php que más te interese.
PHP 7.1
yum-config-manager --enable remi-php71
PHP 7.2
yum-config-manager --enable remi-php72
PHP 7.3
yum-config-manager --enable remi-php73
PHP 7.4
yum-config-manager --enable remi-php74
Actualizamos el sistema y reiniciamos php-fpm.
yum update
systemctl restart php-fpm
Instalar Opcache en VestaCP
La instalación de Opcache en VestaCP con Centos 7, es muy simple. Sigue los pasos indicados.
yum install php-opcache systemctl restart php-fpm systemctl restart nginx
Fácil verdad?. Si quieres modificar las opciones de opcache revisa el articulo anterior.
Actualizar MariaDB en VestaCP
De manera predeterminada, CentOS 7 viene con MariaDB 5.5. Es altamente recomendable actualizar como mínimo a MariaDB 10.3.
Primero hacemos una copia de seguridad por si acaso.
cp -a /var/lib/mysql/ /var/lib/mysql.bak
También necesitamos hacer un dump en temporales (inserta tu password root).
mysqldump -u root -Passdelroot --all-databases > /tmp/all-database.sql
Creamos el repositorio de MariaDB 10.3.
nano /etc/yum.repos.d/MariaDB10.repo
Copia y pega lo siguiente:
# MariaDB 10.3 CentOS repository list - sololinux.es # [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Guarda el archivo y cierra el editor nano.
OJO!!!, antes de actualizar es conveniente borrar la versión anterior.
yum remove mariadb-server mariadb mariadb-libs
Limpiamos la cache de los repositorios de CentOS 7.
yum clean all
Instalamos la nueva versión de MariaDB.
yum -y install MariaDB-server MariaDB-client
Una vez termine la actualización, iniciamos y habilitamos MariaDB 10.3.
systemctl start mariadb systemctl enable mariadb # o systemctl enable mariadb.service
Importamos los datos anteriores (en caso de que los tuviéramos).
mysql_upgrade
Para concluir esta sección, actualizamos el sistema y verificamos la versión instalada de MariaDB.
yum update mysql -V
ejemplo de salida…
[root@miserver ~]# mysql -V
mysql Ver 15.1 Distrib 10.3.22-MariaDB, for Linux (x86_64) using readline 5.1
Instalar Redis en VestaCP
Redis es sistema de almacenamiento de datos estructurados en memoria, muy útil como memoria caché. Instalamos Redis ya que su rendimiento es superior a otras alternativas.
yum install redis
Iniciamos Redis y lo habilitamos para que arranque con el sistema.
systemctl start redis systemctl enable redis.service # o systemctl enable redis
Habilitar Redis en WordPress con VestaCP
Si utilizas WordPress para crear tus sitios, es interesante agregar Redis como su sistema de almacenamiento en caché.
Lo instalamos:
yum install php-devel
Ahora agregamos la extensión PHPRedis.
pecl install redis
Pulsa enter cuando aparezcan mensajes similares a…
enable igbinary serializer support? [no]
Para concluir es necesario agregar la extension a nuestro php.ini.
nano /etc/php.ini
Al final del archivo agrega la siguiente linea.
extension=redis.so
Un plugin de cache que funciona muy bien con Redis es «W3 Total Cache«. En su configuración elije ‘Redis’ como caché de página y caché de base de datos, después marca la casilla de verificación ‘habilitar’ en cada opción antes de hacer clic en el botón ‘Guardar todas las configuraciones’. Esta configuración se debe hacer antes de reiniciar php-fpm y Nginx.
Como punto final al articulo reiniciamos php-fpm y nginx.
systemctl restart php-fpm systemctl restart nginx
Canales de Telegram: Canal SoloLinux – Canal SoloWordpress
Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.
Felicitaciones, no se quien eres pero siempre me ayudas un muchísimo, te dejo este comentario para que sepas lo mucho que te queremos tus lectores!
Muchas gracias Pedro 😉
Hola, me aparece este mensaje de error, como lo podría arreglar?
Error: Paquete: php-devel-7.4.6-1.el7.remi.x86_64 (remi-php74)
Necesita: php-cli(x86-64) = 7.4.6-1.el7.remi
Instalado: php-cli-7.4.7~RC1-1.el7.remi.x86_64 (@remi-modular-test)
php-cli(x86-64) = 7.4.7~RC1-1.el7.remi
Disponible: php-cli-5.4.16-48.el7.x86_64 (base)
php-cli(x86-64) = 5.4.16-48.el7
Disponible: php-cli-5.4.45-18.el7.remi.x86_64 (remi)
php-cli(x86-64) = 5.4.45-18.el7.remi
Disponible: php-cli-5.5.38-11.el7.remi.x86_64 (remi-php55)
php-cli(x86-64) = 5.5.38-11.el7.remi
Disponible: php-cli-5.5.38-12.el7.remi.x86_64 (remi-php55)
php-cli(x86-64) = 5.5.38-12.el7.remi
Disponible: php-cli-5.6.40-20.el7.remi.x86_64 (remi-php56)
php-cli(x86-64) = 5.6.40-20.el7.remi
Disponible: php-cli-5.6.40-21.el7.remi.x86_64 (remi-php56)
php-cli(x86-64) = 5.6.40-21.el7.remi
Disponible: php-cli-7.4.5-1.el7.remi.x86_64 (remi-php74)
php-cli(x86-64) = 7.4.5-1.el7.remi
Disponible: php-cli-7.4.6-1.el7.remi.x86_64 (remi-php74)
php-cli(x86-64) = 7.4.6-1.el7.remi
Podría intentar utilizar el comando –skip-broken para sortear el problema
Podría intentar ejecutar: rpm- Va –nofiles –nodigest
Te indica que tienes instalada la versión testing de php-cli. No creo que sea un problema grave, pero es tu decisión.
Gracias Sergio!
Es la versión que viene por defecto en vestacp, la verdad es que llevó unas cuentas horas y sigo sin poder sacarlo, ahaha
Me has dado una idea de por donde poder sacarlo, en resumen, lo que debo hacer es antes de instalar vestacp, desactivar el repositorio de pruebas y poner el estable, de forma que todas las dependencias se instalen con el repositorio estable, no?
yum-config-manager –disable remi-test
yum-config-manager –enable remi-php74
(resto del tutorial)…?
He intentado hacerlo asi, pero me da problemas de dependencias, reinstalaré el vps y si me funciona, lo comento por aqui, que le puede ser de ayuda a otros ??
Te recomiendo instalar epel y remi (y configurar), antes que VestaCP.
Solución para los que se hayan encontrado el mismo problema:
yum install epel-release yum-utils
yum-config-manager –disable remi-php5*
yum-config-manager –disable remi-test
yum-config-manager –enable remi-php74
yum remove php php-*
yum install roundcube phpmyadmin php-fpm php-pear -y
service httpd restart or service php-fpm restart
Jorge, si ves alguna mejora en esta solución, te agradeceríamos tu sugerencia, de momento todo funciona pero tengo miedo haberme cargado alguna dependencia necesaria, ahaha
a mi no me fue bien con ubuntu y centos, en uno no volvía a arrancar mas el iptables y el el otro el file2ban, y no encontré una solución.. me decidí instalar debian 9 y hasta ahora todo bien, pero no logro que redireccione los sitios a https. Cree un archivo .htaccess con las instrucciones pero aun así no lo hace y el certificado esta instalado… será que en debian hay que instalar o configurar algo mas? …soy nuevo en esto, antes solo hacia paginas web y las subía a los típicos hosting todo listo pero comencé a estudiar para el examen lpic1 para aprender mas de linux y me pico el bichito de hacer todo yo con las herramientas opensource geniales que tenemos a la mano, pero no logro arrancar con el pie derecho….de todas formas gracias!!! por estos artículos tan geniales con los que podemos aprender mas cada día.
Hola Cris D.
Que tipo de servidor has montado, Nignx + phpfpm, o Apache + Nignx?
Pd: Sobre CentOS y Fail2ban, supongo que te estarías bloqueando a ti mismo.