Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Un uso común de un servidor virtual Vultr es alojar sitios web de Wordpress. Esta guía le muestra cómo automatizar la configuración de un servidor virtual desde cero (usando Ansible) e implementar múltiples sitios web independientes de Wordpress (usando Webmin / Virtualmin). Virtualmin / Webmin es una interfaz gráfica de usuario que le permite administrar la implementación de múltiples cuentas de servidor virtual en la misma máquina (completa con la pila LAMP / LEMP). Virtualmin es muy similar a cPanel y Plesk, y en este tutorial usaremos la edición gratuita de GPL. Después de la configuración inicial del servidor Vultr y la instalación de Virtualmin, puede configurar rápidamente varios servidores virtuales desde la interfaz de Virtualmin e instalar directamente Wordpress en ese servidor virtual completo con su propio nombre de dominio.
En este tutorial, en lugar de ingresar manualmente una larga lista de comandos, usaremos Ansible. Ansible es una herramienta de automatización basada en Python que le permite automatizar de manera confiable y repetida las tareas del servidor. Esto significa que una vez que haya seguido este tutorial, podrá implementar otro servidor de la misma manera con solo un par de comandos.
Instale Ansible en su máquina local u otro servidor.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible funciona iniciando sesión en su servidor a través de SSH. El acceso SSH es más seguro si usamos claves en lugar de una contraseña. Primero generemos un par de claves pública y privada.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
En el ssh_keys
directorio ahora habrá dos archivos, ssh_keys
y ssh_keys.pub
. ssh_keys
es su archivo de clave privada y debe mantenerse a salvo. Ahora puede abrir el ssh_keys.pub
, que contiene la clave pública.
Inicie sesión en el panel web de Vultr y haga clic Deploy New Server
.
Seleccione una región, Tipo de servidor (Ubuntu 16.04), Tamaño del servidor, y luego en la parte 6 ( SSH keys
), haga clic Add New
. En la página siguiente, pegue su clave pública, asígnele un nombre y haga clic Add SSH key
. Finalmente, asegúrese de que la clave esté seleccionada y haga clic Deploy now
.
Una vez que el servidor haya terminado de desplegarse, se le mostrará su dirección IP. Deberá iniciar sesión en el servidor DNS de su nombre de dominio y señalarlo a esta dirección.
Se llaman los archivos de automatización de Ansible roles
. Primero configuraremos la estructura del directorio (dentro del ansible
directorio que acaba de crear en el paso 1) y los archivos básicos.
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
Edite el hosts
archivo para que contenga lo siguiente, sustituyendo ip address
el servidor que acaba de crear. Ansible usa python 2, que Ubuntu 16.04 no tiene instalado por defecto. En el hosts
archivo le decimos a Ansible que use Python 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Edite el deploy.yml
archivo para contener lo siguiente. Vamos a utilizar al root
usuario.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Edite el /group_vars/all
archivo para contener lo siguiente. Estas variables le indican a Ansible la ubicación de sus claves SSH, los parámetros del archivo de intercambio, su nombre de dominio completo y la contraseña de root. Recuerde no incluir el archivo en el control de origen ya que contiene su contraseña en texto sin cifrar.
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
Edite el common/handlers/main.yml
archivo para contener lo siguiente.
- name: restart sshd
service: name=ssh state=restarted
La automatización de Ansible es más fácil de entender si la dividimos en tareas. Creemos archivos para cada una de nuestras tareas en el proceso.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
debe apuntar a cada archivo que contenga los comandos Ansible, así que edítelo para que contenga lo siguiente.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
El primer paso para configurar un nuevo servidor es actualizar el caché de repositorio y establecer la zona horaria. Edite el common/handlers/setup.yml
archivo para contener lo siguiente.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Ahora, le daremos al usuario root una contraseña (que necesitaremos para acceder a la interfaz web virtualmin), pero deshabilitaremos los inicios de sesión de contraseña a través de SSH (ya que estamos utilizando el método de autenticación de claves más seguro). Editar users.yml
para contener lo siguiente.
- name: Change passwd
user: name=root password={{ new_password | password_hash('sha512') }} update_password=always
- name: Disable SSH password login
lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
notify: restart sshd
Por seguridad, necesitamos un firewall. Utilizaremos el firewall sin complicaciones para permitir el acceso SSH en el puerto 22
, el acceso web en el puerto 80
y el acceso web seguro en el puerto 443
. Edite el ufw.yml
archivo para contener lo siguiente.
- name: Set default firewall policy to deny all
become: True
ufw: state=enabled direction=incoming policy=deny
tags: firewall
- name: enable SSH in firewall
ufw: rule=allow port=22
sudo: yes
- name: enable HTTP connections for web server
ufw: rule=allow port=80
sudo: yes
- name: enable HTTPS connections for web server
ufw: rule=allow port=443
sudo: yes
- name: enable firewall
ufw: state=enabled
sudo: yes
Opcionalmente, puede incluir un archivo de intercambio. Esto es esencial si su servidor tiene menos de 2 GB de RAM para evitar fallas de memoria. Editar swap.yml
para contener lo siguiente.
- name: Set swap_file variable
set_fact:
swap_file: "{{swap_file_path}}"
tags:
- swap.set.file.path
- name: Check if swap file exists
stat:
path: "{{swap_file}}"
register: swap_file_check
tags:
- swap.file.check
- name: Create swap file
command: fallocate -l {{swap_file_size}} {{swap_file}}
when: not swap_file_check.stat.exists
tags:
- swap.file.create
- name: Change swap file permissions
file: path="{{swap_file}}"
owner=root
group=root
mode=0600
tags:
- swap.file.permissions
- name: Format swap file
sudo: yes
command: "mkswap {{swap_file}}"
when: not swap_file_check.stat.exists
tags:
- swap.file.mkswap
- name: Write swap entry in fstab
mount: name=none
src={{swap_file}}
fstype=swap
opts=sw
passno=0
dump=0
state=present
tags:
- swap.fstab
- name: Turn on swap
sudo: yes
command: swapon -a
when: not swap_file_check.stat.exists
tags:
- swap.turn.on
- name: Set swappiness
sudo: yes
sysctl:
name: vm.swappiness
value: "{{swappiness}}"
tags:
- swap.set.swappiness
Virtualmin tiene su propio archivo de instalación que Ansible puede descargar y ejecutar. Aquí estamos usando la instalación mínima ( LINK
). Los elementos adicionales son para configurar la contraseña del servidor MySQL que no se establece cuando lo instala Virtualmin. Necesitamos detener temporalmente MySQL y agregar el directorio de autenticación antes de cambiar la contraseña. Editar virtualmin.yml
para contener lo siguiente.
- name: download virtualmin install script
get_url: >
url=http://software.virtualmin.com/gpl/scripts/install.sh
dest=/root/install.sh
mode=0755
- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
tags: non-idem
shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
args:
chdir: /root
- name: temp stop mysql
service:
name: mysql
state: stopped
- name: change owner (and group) of mysqld dir
file:
path: "/var/run/mysqld"
state: directory
owner: mysql
group: mysql
- name: virtualmin set mysql password
shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}
- name: restart mysql
service:
name: mysql
state: started
El rol Ansible ahora está terminado y estamos listos para implementar.
Desde la carpeta ansible, ahora podemos simplemente ejecutar el siguiente comando, y Ansible llevará a cabo todas las tareas que hemos creado automáticamente. La primera vez que se conecte, recibirá una advertencia de clave SSH, simplemente escriba " yes
" en el indicador.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Si deseamos utilizar otro servidor, simplemente podemos cambiar la dirección IP en el archivo de hosts y ejecutar ese comando nuevamente para completar exactamente la misma configuración.
La instalación se ha completado y ahora podemos ir a https://192.0.2.1:10000
(use la dirección IP de su servidor). Su navegador emitirá una advertencia de seguridad porque el certificado está autofirmado, así que haga clic advanced
y agregue una excepción. Se le presentará una página de inicio de sesión. El nombre de usuario es root
, y la contraseña es la que ingresó en el group_vars/all
archivo en el paso 3. La primera vez que ingrese a Virtualmin se le presentará el asistente posterior a la instalación. Puede revisar estas configuraciones manualmente o hacer clic cancel
para aceptar los valores predeterminados.
Para poner en funcionamiento su primer servidor de Wordpress, haga clic en el panel de Virtualmin Create Virtual Server
. Deberá ingresar un nombre de dominio, una descripción y una contraseña de administrador. El nombre de dominio debe ser diferente del nombre de dominio completo de Virtualmin, y deberá apuntar el registro DNS a la dirección IP de su servidor.
Haga clic Create Server
. Una vez que Virtualmin haya terminado de crear su servidor, haga clic Install Scripts
en el menú de la izquierda. Seleccione Wordpress
, haga clic Show install options
y en la siguiente página elija la ubicación de la instalación de Wordpress. Solo elige At top level
y haz clic Install Now
.
Eso es todo lo que necesita hacer: puede completar la instalación de Wordpress visitando su http://example.net/wp-admin/install.php
(¿dónde example.net
está el nombre de dominio de este servidor virtual?). Si sus registros DNS aún no se han propagado, puede Services > Preview Website
acceder desde el menú de Virtualmin.
Puede repetir este paso varias veces para crear varios sitios de Wordpress en el mismo servidor Vultr.
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
¿Usando un sistema diferente? Fork es un CMS de código abierto escrito en PHP. El código fuente de Forks está alojado en GitHub. Esta guía le mostrará cómo instalar Fork CM
Typesetter es un CMS de código abierto escrito en PHP enfocado en la facilidad de uso con la edición True WYSIWYG y el almacenamiento de archivos planos. En este artículo, estaremos instalando
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Las instancias de Vultr son una excelente manera de ejecutar su blog de WordPress, pero una extensión más notable de WordPress es WooCommerce, un complemento de comercio electrónico que extiende
Introduction The closer you keep your OpenBSD install to the default and without as many added packages, the more secure it will be. While the more commo
Introducción WordPress es el sistema de gestión de contenido dominante en Internet. Potencia todo, desde blogs hasta sitios web complejos con contenido dinámico.
Ghost es una plataforma de publicación moderna y de código abierto construida en Node.js con un cliente de administración Ember.js, una API JSON y una API de tema impulsada por Handlebars.js. Ghos
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
Using a Different System? Dotclear is a very simple blogging engine. It is open-source and easy to use. This tutorial will go through the installation on
Ghost es el último y más grande advenedizo para rivalizar con WordPress. El desarrollo de temas es rápido y fácil de aprender porque los desarrolladores de Ghost decidieron usar ambos
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable y de código abierto escrito en PHP. Es yo
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Neos es un innovador sistema de gestión de contenido de código abierto que es excelente para crear y editar contenido en línea. Con autores y editores en mente, Neo
¿Usando un sistema diferente? Ghost es una plataforma de blogs de código abierto que ha estado ganando popularidad entre los desarrolladores y usuarios comunes desde su 201
¿Usando un sistema diferente? Fork es un CMS de código abierto escrito en PHP. El código fuente de Forks está alojado en GitHub. Esta guía le mostrará cómo instalar Fork CM
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.
A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.
Una mirada a 26 técnicas analíticas de Big Data: Parte 1
La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.