WebApps / Node.js
Este tutorial le mostrará cómo crear una aplicación web simple “Hello World” usando Node.js.
Si no tiene una sección Aplicaciones web en su Panel de control de alojamiento, entonces este tutorial no es adecuado para su entorno de alojamiento en particular. Puede solicitar más información a su proveedor de alojamiento o puede buscar ayuda a través de nuestro sistema de emisión de boletos.
1. El primer paso es crear un directorio para la aplicación en el directorio privado de su cuenta. Las aplicaciones web solo se pueden implementar en directorios en el directorio privado de la cuenta. Recomendamos crear un directorio separado para la aplicación para evitar mezclar su contenido con otras aplicaciones u otros archivos en el directorio privado. Puede crear el directorio utilizando el Administrador de archivos en el Panel de control de su alojamiento.
2. Cree la aplicación utilizando la sección Aplicaciones web del Panel de control de alojamiento.
- Elija Node.js como Motor y Actual como Versión. Esto actualizará automáticamente su versión de Node.js tan pronto como haya una nueva disponible en el servidor.
- Introduce un nombre para tu aplicación. Es solo para referencia interna a la aplicación. En este ejemplo, es app_name.
- Choose the subdomain you wish to access it at.
- Introduzca la ruta de acceso web. Por ejemplo, si ingresa /app_name, podrá acceder a la aplicación en http://subdomain.domain.com/app_name. No necesita crear el directorio.
- El puerto se asignará automáticamente y se mostrará en la lista de aplicaciones.
- Seleccione el directorio de implementación ingresando el directorio que creó en el paso 1.
- Ingrese el comando de inicio de su aplicación. En este ejemplo, será node app.js.
3. Cree un archivo llamado app.js en el directorio del paso 1 y coloque el código de la aplicación “Hello World” a continuación en el archivo app.js. Puede hacerlo a través del Administrador de archivos en el Panel de control de alojamiento.
// requiring the HTTP interfaces in node
var http = require('http');
// create an http server to handle requests and response
http.createServer(function (req, res) {
// sending a response header of 200 OK
res.writeHead(200, {'Content-Type': 'text/plain'});
// print out Hello World
res.end('Hello World\n');
// listen on assigned port
}).listen(process.env.PORT);
4. Habilite la aplicación usando la sección Aplicaciones web en el Panel de control de alojamiento haciendo clic en el botón del círculo rojo para la aplicación allí.
5. Su aplicación aparecerá en la lista. Puede acceder a él haciendo clic en su dirección en la columna URL de la lista.
El comando sureapp es una poderosa herramienta CLI (interfaz de línea de comandos) que le permite crear y administrar aplicaciones web en su cuenta. Para usar la herramienta sureapp, debe conectarse a su cuenta a través de SSH. Puede conectarse a su cuenta a través de SSH como se describe en la sección SSH de nuestra documentación en línea.
Estas son algunas de las funcionalidades que ofrece la herramienta sureapp:
- Obteniendo ayuda
- Creación de una aplicación web
- Inicio de sesión en un shell de aplicación web
- Administrar una aplicación web
- Modificar la configuración de una aplicación web
- Administrar el estado de una aplicación web
- Administrar las variables de entorno de una aplicación web
- Visualización de la configuración de una aplicación web
- Ver los registros de una aplicación web
- Eliminar una aplicación web
- Administrar el supervisor de aplicaciones web
Nota: Si no tiene una sección de WebApps en su Panel de control, este tutorial no es adecuado para su entorno de alojamiento en particular. Puede enviar un ticket de soporte a través de nuestro sistema de tickets si necesita ayuda.
Obteniendo ayuda
Si llama al comando sureapp sin ningún argumento, verá una lista de sus comandos.
Para obtener ayuda con un comando específico y ver sus subcomandos, debe llamar:
sureapp help command
donde debe reemplazar el comando con el comando real para el que desea ver información de ayuda.
Aquí hay una lista de los comandos disponibles en la herramienta CLI de sureapp:
- proyecto: este comando le permite crear, modificar, eliminar y enumerar proyectos.
- servicio : este comando le brinda la capacidad de ver y administrar los servicios de la aplicación.
- supervisor: este comando le permite controlar al supervisor del servicio.
- meta : este comando muestra metainformación.
- log: este comando enumera y le permite ver los registros de servicio.
- env: este comando le permite controlar el entorno del proyecto.
For example, if you would like to see the subcommands and the help information of the sureapp project command, you need to call:
sureapp help project
Then, to see the help information of the sureapp project create command for example, you need to call:
sureapp help project create
Creación de una aplicación web
En general, las aplicaciones web se pueden crear a través de la sección WebApps del Panel de control. De esta manera, todas las opciones necesarias se pueden configurar a través de una interfaz visual. Sin embargo, también puede usar la herramienta CLI sureapp para crear aplicaciones web. Esto se puede hacer con el comando de creación de proyecto sureapp.
Para crear una aplicación web a través de la línea de comandos, se recomienda que primero cree el subdominio en el que desea ejecutar la aplicación a través de la sección Subdominios del Panel de control, así como el directorio de implementación de la aplicación web. Para ver una lista de las opciones disponibles para el comando, llame al comando sin argumentos:
sureapp project create
Para crear una aplicación web a través de la herramienta CLI sureapp, es obligatorio especificar el nombre de la aplicación web y al menos las siguientes opciones:
- –motor: esta opción le permite especificar el motor de la aplicación. Su valor puede ser nodo o personalizado.
- –engine-version: esta opción le permite especificar la versión del motor de la aplicación. Si la opción –engine está configurada como personalizada, esta opción debe configurarse como – (guión). Alternativamente, si la opción –engine está configurada en nodo, esta opción se puede configurar en actual, lts o cualquiera de las versiones disponibles. Para ver una lista de motores y versiones disponibles, llame al comando sureapp metamotores.
- –release-dir: esta opción le permite especificar el directorio de implementación de la aplicación. Este directorio debe ser un subdirectorio del directorio /private en su cuenta. Este directorio debe contener los archivos de su aplicación. Debe especificar la ruta completa al directorio de implementación de su aplicación.
- –subdominio: esta opción le permite especificar el subdominio donde se podrá acceder a la aplicación una vez que se esté ejecutando. El subdominio no se creará automáticamente si no existe. Debe crear el subdominio para su aplicación a través de la sección Subdominios del Panel de control.
- –domain: esta opción le permite especificar el dominio en el que su aplicación estará disponible una vez que se esté ejecutando. Puede estacionar nombres de dominio en su cuenta a través de la sección Estacionamiento de dominios del Panel de control.
- –url-path: esta opción le permite especificar la ruta de la URL en la que su aplicación estará disponible una vez que se esté ejecutando. Debe especificar la URL sin el subdominio y el dominio.
Además, también puede especificar las siguientes opciones:
- –notes STR: esta opción le permite agregar notas de texto libre.
- –start-cmd STR: esta opción le permite definir un comando de inicio.
- –rlimit-cpu INT: esta opción le permite definir el límite de tiempo de espera de la CPU en segundos.
- –rlimit-nproc INT: esta opción le permite establecer la cantidad máxima de procesos (e hilos) para el proyecto.
- –rlimit-core INT: esta opción le permite establecer el límite superior en el tamaño (en bytes) de los archivos de volcado del núcleo.
- –rlimit-data INT: esta opción le permite definir el tamaño máximo (en bytes) del segmento de datos del proceso.
- –rlimit-as INT: esta opción le permite establecer el tamaño máximo de los bytes de memoria virtual del proceso.
- –rlimit-fsize INT: esta opción le permite definir el tamaño máximo (en bytes) de los archivos que puede crear el proceso.
- –rlimit-fileno INT: esta opción le permite establecer la cantidad máxima de archivos abiertos por el proceso.
- –rlimit-stack INT: esta opción le permite definir el tamaño máximo (en bytes) de la pila de procesos.
Por ejemplo, si desea crear una aplicación web que se ejecutará en la versión actual de Node.js, disponible en http://www.yourdomain.com/path/to/your/webapp/, que se ejecuta desde /home /your_username/private/your_webapp_dir/, y con el nombre MyWebApp, debe llamar al comando sureapp project create de la siguiente manera:
sureapp project create --engine node --engine-version current --subdomain www --domain yourdomain.com --release-dir /home/your_username/private/your_webapp_dir/ --url-path /path/to/your/webapp/ MyWebApp
Please note that all options are case-sensitive.
Inicio de sesión en un shell de aplicación web
Puede iniciar sesión en el shell de una aplicación web con el siguiente comando:
sureapp project shell MyWebApp
Este comando lo iniciará en el shell de la aplicación web MyWebApp . Debe reemplazar MyWebApp con el nombre real de la aplicación web que desea administrar. La mayoría de los comandos de administración de la herramienta sureapp funcionan solo después de iniciar sesión en el shell de la aplicación web.
Administrar una aplicación web
Modificar la configuración de una aplicación web
Una vez que inicie sesión en el shell de una aplicación web, puede modificar su configuración con el comando de modificación del proyecto sureapp. El comando toma los mismos argumentos que el comando sureapp project create que se describe en la sección Creación de una aplicación web de este artículo.
Por ejemplo, si desea cambiar el motor de una aplicación web a personalizado, debe iniciar sesión en el shell de la aplicación web y llamar:
sureapp project modify --engine custom --engine-version -
Administrar el estado de una aplicación web
Puede habilitar, deshabilitar, iniciar, detener, señalizar y verificar el estado de una aplicación web con el comando sureapp service. El comando tiene varios subcomandos:
- estado: este subcomando le permite ver el estado actual de la aplicación.
- administrar: este subcomando le permite cambiar el estado de la aplicación.
- señal: este subcomando le permite enviar señales a la aplicación.
El comando de administración de servicios sureapp toma las siguientes opciones:
- –enable: esta opción le permite activar el servicio para el proyecto de aplicación web especificado.
- –disable: esta opción le permite detener cualquier instancia en ejecución y deshabilitar el proyecto de la aplicación web.
- –start: esta opción le permite iniciar la aplicación web tal como se inicia a través de la sección Aplicaciones web del Panel de control.
- –stop: esta opción le permite detener la aplicación cuando se detiene a través de la sección Aplicaciones web del Panel de control.
- –once: esta opción le permite ejecutar la aplicación web una vez sin reiniciarla si se cierra.
- –pause : esta opción le permite pausar la aplicación temporalmente (hasta que se reanude).
- –resume: esta opción le permite reanudar una aplicación en pausa.
El comando de señal de servicio de sureapp toma las siguientes opciones para enviar la señal correspondiente al árbol de procesos de la aplicación:
- –sigalrm, –SIGALRM : esta opción envía la señal SIGALRM.
- –sighup, –SIGHUP : esta opción envía la señal SIGHUP.
- –sigint, –SIGINT : esta opción envía la señal SIGINT.
- –sigkill, –SIGKILL : esta opción envía la señal SIGKILL.
- –sigquit, –SIGQUIT : esta opción envía la señal SIGQUIT.
- –sigterm, –SIGTERM : esta opción envía la señal SIGTERM.
- –sigwinch, –SIGWINCH : esta opción envía la señal SIGWINCH.
- –sigusr1, –SIGUSR1 : esta opción envía la señal SIGUSR1.
- –sigusr2, –SIGUSR2 : esta opción envía la señal SIGUSR2.
Por ejemplo, si desea habilitar una aplicación web, debe iniciar sesión en el shell de la aplicación web y llamar:
sureapp service manage --enable
Administrar las variables de entorno de una aplicación web
Una vez que inicie sesión en el shell de la aplicación web, puede administrar las variables de entorno de la aplicación web con el comando sureapp env. El comando tiene varios subcomandos:
- set: este subcomando le permite establecer variables de entorno.
- unset : este subcomando le permite desactivar las variables de entorno.
- list : este subcomando enumera las variables de entorno del proyecto.
Por ejemplo, si desea establecer el valor de NEWVALUE en la variable VAR1 para una aplicación web, debe iniciar sesión en el shell de la aplicación web y llamar:
sureapp env set VAR1 NEWVALUE
Visualización de la configuración de una aplicación web
Una vez que inicie sesión en el shell de la aplicación web, puede obtener los valores de configuración de la aplicación web en un formato legible por máquina con el comando de configuración meta sureapp. El comando tiene varias opciones, según el formato en el que le gustaría obtener el resultado:
- –json: esta opción proporcionará los valores de configuración de la aplicación web en un formato JSON bastante impreso.
- –perl: esta opción proporcionará los valores de configuración de la aplicación web en formato Perl Data::Dumper.
- –yaml: esta opción proporcionará los valores de configuración de la aplicación web en formato YAML.
Por ejemplo, si desea obtener la configuración de una aplicación web en un formato JSON bastante impreso, debe iniciar sesión en el shell de la aplicación web y llamar:
sureapp meta config --json
Ver los registros de una aplicación web
La herramienta CLI sureapp le permite ver y monitorear los registros de una aplicación web en tiempo real. Una vez que inicie sesión en el shell de la aplicación web, puede ver y monitorear los registros con el comando sureapp log. El comando tiene varios subcomandos:
- list: este subcomando enumera los archivos de registro del proyecto.
- ver : este subcomando le permite ver el contenido de un archivo de registro específico.
- seguir: este subcomando le permite seguir (a la cola) un archivo de registro en tiempo real.
Por ejemplo, si desea monitorear los registros de una aplicación web, debe iniciar sesión en el shell de la aplicación web y llamar:
sureapp log follow
Deleting a web app
En general, las aplicaciones web se pueden eliminar a través de la sección WebApps del Panel de control. Sin embargo, también puede eliminar aplicaciones web a través de la línea de comando utilizando el comando de eliminación de proyecto de sureapp de la herramienta CLI de sureapp.
Por ejemplo, si desea eliminar una aplicación web llamada MyWebApp, debe llamar al:
sureapp project remove MyWebApp
Administrar el supervisor de aplicaciones web
El supervisor de aplicaciones web es una aplicación del sistema que se asegura de que sus aplicaciones web se estén ejecutando. El supervisor de aplicaciones web puede iniciar, detener o reiniciar una aplicación web cuando sea necesario. También gestiona los procesos iniciados por las aplicaciones web. La aplicación de supervisor de aplicaciones web en sí se puede administrar a través de la línea de comandos con el comando sureapp supervisor. El comando tiene varios subcomandos:
- start: este comando le permite iniciar el servicio de supervisor.
- stop: este comando le permite detener el servicio de supervisor.
- restart: este comando le permite reiniciar el servicio de supervisor.
- status: este comando le permite comprobar el estado del servicio de supervisor.
- tree: este comando le permite ver el árbol de procesos del servicio de supervisor.
Por ejemplo, si desea verificar si el supervisor de aplicaciones web se está ejecutando, debe llamar a:
sureapp supervisor status
Este artículo le mostrará cómo ver los registros de sus aplicaciones web.
Para ver los registros, debe iniciar sesión en el shell de la aplicación y ejecutar los comandos que se enumeran a continuación. Puede ver cómo iniciar sesión en el shell de la aplicación en el artículo Sureapp – herramienta CLI de administración de aplicaciones de nuestra documentación en línea.
Comando | Descripción |
sureapp log follow | seguir el registro actual |
sureapp log list | enumerar los archivos de registro de la aplicación |
sureapp log view [logfile] | ver un archivo de registro, el valor predeterminado es el registro actual |
Este tutorial le mostrará cómo instalar y configurar Django en un entorno virtual de Python dentro de una aplicación web.
Si no tiene una sección WebApps en su panel de control de alojamiento, entonces este tutorial no es adecuado para su entorno de alojamiento particular. Puede enviar un ticket de soporte a través de nuestro sistema de tickets si necesita ayuda.
Configuraremos un entorno de producción de Django. Usaremos Python 3, pip 3, Django,virtualenv, Python's MySQL client (mysqlclient), WhiteNoise, Gunicorn, y uWSGI
con el fin de brindarle las herramientas necesarias para ejecutar aplicaciones web con Django.
1. El primer paso es crear un directorio para Django en el directorio privado de su cuenta
- Recomendamos que las aplicaciones web solo se implementen en directorios en el directorio privado de la cuenta. Debe crear un directorio separado allí para la aplicación para evitar mezclar su contenido con otras aplicaciones u otros archivos en el directorio privado. Puede crear el directorio utilizando el Administrador de archivos en el Panel de control de su alojamiento. En este ejemplo, el directorio se llama “django”.
2. Cree la aplicación utilizando la sección WebApps del Panel de control de hosting
- Elija Personalizado como motor.
- Introduce un nombre para tu aplicación. Es solo para referencia interna a la aplicación. En este ejemplo, es Django.
- Elija un subdominio en el que desea acceder a la aplicación. En este ejemplo, elegimos el subdominio “www”: www.mydomain.com.
- Introduzca la ruta de acceso web. Por ejemplo, si ingresa /django, podrá acceder a la aplicación en http://www.mydomain.com/django. No necesita crear el directorio. En este ejemplo, ingresamos / (barra inclinada) como ruta de acceso web, por lo que se puede acceder a la aplicación en http://www.mydomain.com.
- El puerto se asignará automáticamente. Será transparente para sus usuarios. Puede ver el puerto en la lista de aplicaciones después de crear el proyecto.
- Usamos 10101 como puerto asignado automáticamente en nuestro ejemplo.
Seleccione el directorio de implementación. Ingrese el directorio que creó en el paso 1 (/private/django). - Agregaremos el comando de inicio de la aplicación web una vez que Django esté completamente configurado.
3.Instalando Django
- Conéctese a su cuenta a través de SSH. Puede consultar nuestra documentación en línea para obtener más información sobre cómo hacer esto:
Iniciar sesión en su cuenta a través de SSH usando Putty
Iniciar sesión en su cuenta a través de SSH usando Terminal en Mac OS
- A través de su panel de control de hosting > sección Acceso SSH > Herramientas adicionales, asegúrese de que la función “Herramientas de compilación (gcc, g++)” esté habilitada.
- En nuestros servidores, Python 2 es el intérprete principal de Python, por lo que los comandos “python” y “pip” usan Python 2 de manera predeterminada. La última versión de Django requiere Python 3. La ruta a Python 3 es /usr/bin/python3. El alias de este binario es “python3”. Puede agregar alias a /home/myusername/.bashrc
- Su próximo paso es instalar Django. Es hora de usar Sureapp , nuestra herramienta CLI de administración de aplicaciones. Ingrese el shell de su aplicación web con el siguiente comando (reemplace Django con el nombre de su aplicación web):
myusername@s501:/home/myusername$ sureapp project shell Django
- A continuación, ejecute el siguiente comando para agregar una nueva ruta de ejecutables para este proyecto en particular:
myusername@s501 [django:custom/-] /home/myusername/private/django$ echo “” >> /home/$USER/.bashrc ; echo “# Additional executables path” >> /home/$USER/.bashrc ; echo “export PATH=$HOME/.local/bin:\$PATH” >> /home/$USER/.bashrc ; . /home/$USER/.bashrc
- Instale virtualenv con el siguiente comando:
myusername@s501 [django:custom/-] /home/myusername/private/django$ pip3 install virtualenv
- virtualenv es un entorno virtual donde puede instalar software y paquetes de Python en un espacio contenido, que aísla el software y los paquetes instalados del resto del entorno global de su cuenta. Múltiples entornos virtuales le permiten ejecutar varias aplicaciones utilizando diferentes versiones de software y paquetes, evitando así posibles conflictos.
- Cree un nuevo directorio, que usaremos como hogar para nuestro entorno virtual. En este ejemplo, usaremos /home/myusername/private/django/django1
- Configure el nuevo entorno virtual con el siguiente comando:
myusername@s501 [django:custom/-] /home/myusername/private/django$ virtualenv -p /usr/bin/python3 /home/$USER/private/django/django1
- Active el entorno recién creado:
myusername@s501 [django:custom/-] /home/myusername/private/django$ source django1/bin/activate
- Sabrá que el entorno virtual está activado por el nuevo prefijo (django1):
- Instale el cliente MySQL de Django y Python. Ejecute los comandos en el directorio /home/myusername/private/django/django1:
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1$ pip3 install Django
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1$ pip3 install mysqlclient
- Ejecute el siguiente comando:
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1$ django-admin startproject mysite
4. Configurar Django para usar MySQL en lugar de SQLite
- Cree una nueva base de datos MySQL a través de la sección Bases de datos MySQL en su Panel de control de hosting. Se recomienda que también cree un usuario de base de datos independiente. Puede encontrar más información en nuestro artículo Bases de datos MySQL . En nuestro ejemplo, usamos myusername_databasename como nombre de la base de datos, djangouser como nombre de usuario de la base de datos y djangodbpassword como contraseña.
- Usando el Administrador de archivos en su Panel de control de alojamiento, o usando su editor de texto de línea de comando favorito (por ejemplo, nano), abra /home/myusername/private/django/django1/mysite/mysite/settings.pypara editar. Encuentre el siguiente bloque de código allí:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.sqlite3’,
‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
}
}
- Comente (o elimine) las líneas anteriores y agregue lo siguiente en su lugar:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘myusername_databasename’,
‘USER’: ‘djangouser’,
‘PASSWORD’: ‘djangodbpassword’,
‘HOST’: ‘localhost’,
‘PORT’: ‘3306’,
}
}
- Reemplace la configuración de conexión de la base de datos con su propio nombre de base de datos, nombre de usuario y contraseña. Para usar el modo estricto de MySQL, que Django recomienda encarecidamente, también puede especificar el modo MySQL:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘myusername_databasename’,
‘USER’: ‘djangouser’,
‘PASSWORD’: ‘djangodbpassword’,
‘HOST’: ‘localhost’,
‘PORT’: ‘3306’,
‘OPTIONS’: {
‘init_command’: “SET sql_mode=’STRICT_TRANS_TABLES'”,
},
}
}
- navegue a /home/myusername/private/django/django1/mysite y ejecute el siguiente comando, para que los datos necesarios se migren a su base de datos:
(django1) myusername@s501 [Django:custom/-] /home/myusername/private/django/django1/mysite$ python3 manage.py migrate
- Con el siguiente comando, puede agregar un usuario administrador, para que pueda acceder a la interfaz de administración de Django:
(django1) myusername@s501 [Django:custom/-] /home/myusername/private/django/django1/mysite$ python3 manage.py createsuperuser
- ¡Felicidades! Has instalado correctamente Django y lo has configurado para usar una base de datos MySQL en modo sql “STRICT_TRANS_TABLES”. Ejecute el servidor web de desarrollo y verifique que el sitio funcione como espera en http://www.mydomain.com/admin/
(django1) myusername@s501 [Django:custom/-] /home/myusername/private/django/django1/mysite$ python3 manage.py runserver 0:10101
- En el comando anterior, asegúrese de reemplazar el puerto 10101 con el puerto asignado a su aplicación web.
5. Preparándose para la producción – Gunicorn+WhiteNoise o uWSGI
5.1. Gunicorn y WhiteNoise
- Gunicorn es un servidor Python WSGI HTTP recomendado para usar con Django en nuestros servidores. Para usarlo con su proyecto “django1”, ingrese el shell de su proyecto usando la herramienta Sureapp CLI y active su entorno virtual como se explica en los pasos descritos anteriormente. Además, como Django no admite el servicio de archivos estáticos en producción, puede integrar el proyecto WhiteNoise en su aplicación Django:
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1/mysite$ pip3 install whitenoise
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1/mysite$ pip3 install gunicorn
- Agregue las siguientes líneas al final de /home/myusername/private/django/django1/mysite/mysite/settings.py:
import os
STATIC_ROOT = os.path.join(BASE_DIR, ‘staticfiles’)
STATICFILES_STORAGE = ‘whitenoise.storage.CompressedManifestStaticFilesStorage’
- Además, justo después de la primera línea en la sección MIDDLEWARE, agregue
‘whitenoise.middleware.WhiteNoiseMiddleware’,
- entonces se ve asi:
MIDDLEWARE = [
‘django.middleware.security.SecurityMiddleware’,
‘whitenoise.middleware.WhiteNoiseMiddleware’,
‘django.contrib.sessions.middleware.SessionMiddleware’,
‘django.middleware.common.CommonMiddleware’,
‘django.middleware.csrf.CsrfViewMiddleware’,
‘django.contrib.auth.middleware.AuthenticationMiddleware’,
‘django.contrib.messages.middleware.MessageMiddleware’,
‘django.middleware.clickjacking.XFrameOptionsMiddleware’,
]
- También debe actualizar la configuración ALLOWED_HOSTS en settings.py, para que se vea así:
ALLOWED_HOSTS = [‘localhost’,’mydomain.com’]
- En un sitio de producción, asegúrese de desactivar el modo DEBUG en settings.py:
DEBUG = False
- Como último paso antes de iniciar su aplicación, ejecute el siguiente comando, para que los archivos estáticos se copien en la raíz de su proyecto:
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1/mysite$ ./manage.py collectstatic
- Inicie sesión en su panel de control de alojamiento y navegue a la sección WebApps. Haga clic en el botón Editar para su aplicación web e ingrese lo siguiente como comando de inicio:
source /home/myusername/private/django/django1/bin/activate && cd /home/myusername/private/django/django1/mysite && gunicorn mysite.wsgi
- Haga clic en el botón Actualizar para guardar los cambios y luego haga clic en el círculo rojo para habilitar la aplicación web. Haga clic en el botón Refrescar para comprobar si la aplicación web se habilitó correctamente.
- Puede visitar http://www.mydomain.com/admin para asegurarse de que Django se está ejecutando como se esperaba.
5.2. uWSGI: un contenedor de servidor de aplicaciones recomendado para usar con Django
- En lugar de instalar Gunicorn y WhiteNoise, simplemente puede instalar y ejecutar su aplicación a través de uWSGI. Para instalar uWSGI, ejecute el siguiente comando:
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1$ pip3 install uwsgi
- Actualice la configuración ALLOWED_HOSTS en /home/myusername/private/django/django1/mysite/mysite/settings.py para incluir la dirección IP predeterminada de su cuenta:
ALLOWED_HOSTS = [‘localhost’,’mydomain.com’,’DEFAULT_IP_ADDRESS’]
- En un sitio de producción, asegúrese de desactivar el modo DEBUG en settings.py:
DEBUG = False
- As a last step before starting your app, run the following command, so the static files are copied to your project’s root:
(django1) myusername@s501 [django:custom/-] /home/myusername/private/django/django1/mysite$ ./manage.py collectstatic
- Cree /home/myusername/private/django/django1/uwsgi.ini y agréguele el siguiente código (la siguiente es una configuración de ejemplo, y la configuración se puede modificar según sea necesario):
[uwsgi]
chdir=/home/myusername/private/django/django1/mysite
home=/home/myusername/private/django/django1
http-socket=:10101
module=mysite.wsgi:application
die-on-term = true
master=1
vacuum=1
max-requests=5000
processes=8
threads=4
static-map=/static=/home/myusername/private/django/django1/mysite/staticfiles
- Deberá actualizar al menos las opciones chdir, home, static-map y http-socket, para que se definan el puerto y las rutas adecuadas.
- En su panel de control de alojamiento > sección WebApps, edite su aplicación web y agregue lo siguiente como comando de inicio:
source /home/myusername/private/django/django1/bin/activate && uwsgi /home/myusername/private/django/django1/uwsgi.ini
- Haga clic en el botón Actualizar para guardar los cambios y luego haga clic en el círculo rojo para habilitar la aplicación web. Haga clic en el botón Refrescar para comprobar si la aplicación web se habilitó correctamente.
- Puede visitar http://www.mydomain.com/admin para asegurarse de que Django se está ejecutando como se esperaba.
Este tutorial le mostrará cómo instalar y configurar el micromarco Flask en un entorno virtual de Python dentro de una aplicación web.
Si no tiene una sección WebApps en su panel de control de alojamiento, entonces este tutorial no es adecuado para su entorno de alojamiento particular. Puede ponerse en contacto con nosotros si necesita más ayuda.
La documentación oficial de Flask se puede encontrar en https://flask.palletsprojects.com/en/1.1.x/.
Configuraremos un entorno Flask simple y lo usaremos para ejecutar un script “Hello World”.
1. El primer paso es crear un directorio para Flask en el directorio privado de su cuenta
- Se recomienda encarecidamente que las aplicaciones web solo se implementen en directorios dentro del directorio privado de la cuenta. Le recomendamos que cree un directorio separado allí para la aplicación para evitar mezclar su contenido con otras aplicaciones u otros archivos en el directorio privado. Puede crear el directorio utilizando el Administrador de archivos en el Panel de control de su alojamiento. En este ejemplo, el directorio se llama “frasco”.
- Además, crearemos un subdominio “flask” donde nuestra aplicación será de acceso público. Puede configurar su nuevo subdominio desde la sección Subdominios del Panel de control.
2. Cree la aplicación utilizando la sección WebApps del Panel de control de hosting
- Elija Personalizado como motor.
- Introduce un nombre para tu aplicación. Es solo para referencia interna a la aplicación. En este ejemplo, es Flask.
- Elija un subdominio en el que desea acceder a la aplicación. En este ejemplo, elegimos el subdominio “frasco”: frasco.midominio.com.
Introduzca la ruta de acceso web. Por ejemplo, si ingresa /flask, podrá acceder a la aplicación en http://flask.mydomain.com/flask. No necesita crear el directorio. En este ejemplo, ingresamos / (barra inclinada) como ruta de acceso web, por lo que se puede acceder a la aplicación en http://flask.mydomain.com. - El puerto se asignará automáticamente. Será transparente para sus usuarios. Puede ver el puerto en la lista de aplicaciones después de crear el proyecto.
- Usamos 7190 como puerto asignado automáticamente en nuestro ejemplo.
- Seleccione el directorio de implementación. Ingrese el directorio que creó en el paso 1 (/private/flask).
- Agregaremos el comando de inicio de la aplicación web una vez que se haya instalado Flask y hayamos preparado nuestros scripts “Hello World”.
3. Instalación de Flask
- Conéctese a su cuenta a través de SSH. Puede consultar nuestra documentación en línea para obtener más información sobre cómo hacer esto:
Iniciar sesión en su cuenta a través de SSH usando Putty
Iniciar sesión en su cuenta a través de SSH usando Terminal en Mac OS
- A través de su panel de control de hosting > sección Acceso SSH > Herramientas adicionales, asegúrese de que la función “Herramientas de compilación (gcc, g++)” esté habilitada.
- En nuestros servidores, Python 2 es el intérprete principal de Python, por lo que los comandos “python” y “pip” usan Python 2 de manera predeterminada. Sin embargo, Flask requiere Python 3. La ruta a Python 3 es /usr/bin/python3. El alias de este binario es “python3” y, a la inversa, se puede acceder al instalador del paquete de Python 3 con “pip3”. Puede agregar alias personalizados adicionales al archivo /home/myusername/.bashrc, donde “myusername” es el nombre de usuario de su cuenta de hosting.
- Su próximo paso es instalar Flask. Es hora de usar Sureapp , nuestra herramienta CLI de administración de aplicaciones. Ingrese el shell de su aplicación web con el siguiente comando (reemplace Flask con el nombre de su aplicación web):
myusername@s501:/home/myusername$ sureapp project shell Flask
A continuación, ejecute el siguiente comando para agregar una nueva ruta de ejecutables para este proyecto en particular:
myusername@s501 [Flask:custom/-] /home/myusername/private/flask$ echo “” >> /home/$USER/.bashrc ; echo “# Additional executables path” >> /home/$USER/.bashrc ; echo “export PATH=$HOME/.local/bin:\$PATH” >> /home/$USER/.bashrc ; . /home/$USER/.bashrc
- Instale virtualenv con el siguiente comando:
myusername@s501 [Flask:custom/-] /home/myusername/private/flask$ pip3 install virtualenv
- virtualenv es un entorno virtual donde puede instalar software y paquetes de Python en un espacio contenido, que aísla el software y los paquetes instalados del resto del entorno global de su cuenta. Múltiples entornos virtuales le permiten ejecutar varias aplicaciones utilizando diferentes versiones de software y paquetes, evitando así posibles conflictos.
- Puede configurar el nuevo entorno virtual en el directorio de trabajo actual con el siguiente comando:
myusername@s501 [Flask:custom/-] /home/myusername/private/flask$ virtualenv -p /usr/bin/python3 /home/$USER/private/flask
- Active el entorno recién creado:
myusername@s501 [Flask:custom/-] /home/myusername/private/flask$ source bin/activate
- Sabrá que el entorno virtual está activado por el nuevo prefijo de su indicador de shell (frasco):
- En este punto, puede instalar Flask. Ejecute el siguiente comando en el directorio /home/myusername/private/flask:
(flask) myusername@s501 [Flask:custom/-] /home/myusername/private/flask$ pip3 install Flask
4. Setting up the Flask “Hello World” scripts
- Para confirmar que Flask está instalado y ejecutándose en la cuenta, debe crear los siguientes dos archivos en el directorio del proyecto Flask:
- hello.py con los siguientes contenidos:
de matraz importación Matraz
aplicación = Flask(__name__)
@app.route(‘/’)
def hello_world():
return ‘Hello World!’
- hello.sh con los siguientes contenidos:
#!/bin/sh
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
source /home/myusername/private/flask/bin/activate
exec env FLASK_APP=/home/myusername/private/flask/hello.py flask run –port=$PORT
- Cuando esté listo, vaya a la sección WebApps. Haga clic en el botón Editar para su aplicación web Flask e ingrese lo siguiente como su comando de inicio:
sh hello.sh
- Haga clic en el botón Actualizar para guardar los cambios y luego haga clic en el círculo rojo para habilitar la aplicación web. Haga clic en el botón Refrescar para comprobar si la aplicación web se habilitó correctamente.
- Ahora puede visitar http://flask.mydomain.com en su navegador para asegurarse de que Flask se está ejecutando como se esperaba; si todo se configuró correctamente, debería ver “¡Hola mundo!” saludo en la pagina.
Este tutorial le mostrará cómo instalar el CMS y la plataforma de blogs Ghost.
Si no tiene una sección WebApps en su panel de control de alojamiento, entonces este tutorial no es adecuado para su entorno de alojamiento particular. Puede ponerse en contacto con nosotros a través de nuestro sistema de venta de entradas para obtener más ayuda.
1. Cree una aplicación utilizando la sección WebApps del Panel de control de hosting
- Elija Node.js LTS como motor. De esta forma, la aplicación utilizará la última versión de Node.js LTS, que casi siempre será la versión actual de Node.js recomendada por Ghost.
- Introduce un nombre para tu aplicación. Es solo para referencia interna a la aplicación. En este ejemplo, es ghost.
- Elija un subdominio en el que desee acceder a Ghost. En este ejemplo, elegimos el subdominio predeterminado “www”.
- Introduzca la ruta de acceso web. Por ejemplo, si ingresa /ghost, podrá acceder a la aplicación en https://www.example.com/ghost. No necesita crear el directorio. En este ejemplo, ingresamos / (barra inclinada) como ruta de acceso web, por lo que se puede acceder a la aplicación en https://www.example.com.
- El puerto se asignará automáticamente. Será transparente para sus usuarios. Puede ver el puerto en la lista de aplicaciones después de crear el proyecto.
- Deje el directorio de implementación como /private. Lo cambiará más adelante al configurar la aplicación.
2. Crear una base de datos MySQL para Ghost
- Cree una nueva base de datos MySQL a través de la sección Bases de datos MySQL en su Panel de control de hosting. Se recomienda que también cree un usuario de base de datos independiente. Puede encontrar más información en nuestro artículo Bases de datos MySQL . En nuestro ejemplo, usamos myusername_ghost como nombre de la base de datos, ghostuser como nombre de usuario de la base de datos y ghostpassword como contraseña.
3. Habilite un certificado SSL y fuerce las conexiones HTTPS.
Puede habilitar fácilmente un certificado gratuito de Let’s Encrypt utilizando la sección SSL/HTTPS –> certificados de Let’s Encrypt del panel de control de alojamiento, como se describe en la sección certificados de Let’s Encrypt de nuestra documentación en línea. Después de eso, puede usar la sección SSL/HTTPS > Forzar HTTPS para forzar las conexiones HTTPS al dominio/subdominio donde se ejecutará Ghost.
4. Instala Ghost.
Primero debe conectarse a su cuenta a través de SSH. Puede consultar nuestra documentación en línea para obtener más información sobre cómo hacer esto:
Iniciar sesión en su cuenta a través de SSH usando Putty
Iniciar sesión en su cuenta a través de SSH usando Terminal en Mac OS
Una vez que se haya conectado a través de SSH, puede ingresar al shell de su aplicación web con el siguiente comando (reemplace ghost con el nombre de su aplicación web):
fantasma de shell del proyecto sureapp
A continuación, ejecute el siguiente comando para instalar la utilidad de línea de comandos de Ghost:
npm install ghost-cli@latest -g
Para instalar Ghost con una base de datos MySQL 5, ejecute el siguiente comando:
ghost install –url https://$SUBDOMAIN.$DOMAIN$URL_PATH –port $PORT –db mysql –dbhost localhost –dbname myusername_ghost –dbuser ghostuser –dbpass ghostpassword –dir /home/$USER/private/ghost –process local –no-setup-linux-user –stack false –no-start
Si desea utilizar una base de datos MySQL 8, también deberá especificar el puerto de conexión de la base de datos como 3308:
ghost install –url https://$SUBDOMAIN.$DOMAIN$URL_PATH –port $PORT –db mysql –dbhost localhost –dbport 3308 –dbname myusername_ghost –dbuser ghostuser –dbpass ghostpassword –dir /home/$USER/private/ghost –process local –no-setup-linux-user –stack false –no-start
Debe reemplazar las partes en negrita con los valores respectivos para su aplicación web.
dbname: el nombre de la base de datos MySQL que creó en el paso 2
dbuser: el usuario de MySQL que creó en el paso 2
dbpass: la contraseña para el usuario de MySQL
dir: el directorio donde se debe instalar Ghost. Debe ser un subdirectorio vacío del directorio privado de su cuenta. Si el directorio no existe, el instalador lo creará por usted.
El instalador debe terminar con el siguiente resultado:
¡Ghost se instaló correctamente! Para completar la configuración de su publicación, visite:
https://www.example.com/ghost/
La URL de configuración de Ghost no funciona porque aún no hemos iniciado ni configurado la aplicación web.
5. Configure e inicie la aplicación web.
Realice los siguientes cambios en la aplicación web:
- Cambie el directorio de implementación a la ubicación donde se instaló Ghost. En este ejemplo es /privado/ghost.
Introduce lo siguiente en el campo “Comando de inicio”:
node current/index.js
- Agregue la siguiente variable de entorno:
NODE_ENV production
De esta forma, Ghost se ejecutará en modo de producción.
Guarde los cambios y haga clic en el botón rojo ‘Habilitar la aplicación’. Ghost debería comenzar después de unos segundos y puede completar la configuración visitando la URL proporcionada por el instalador (https://www.example.com/ghost/ en nuestro ejemplo). Para invitar al personal, primero debe configurar el servicio de correo electrónico siguiendo las instrucciones proporcionadas en el siguiente paso.
6. Configuración del servicio de correo electrónico
Para que Ghost pueda enviar correos electrónicos, puede configurarlo para usar el binario Sendmail en el servidor. Para hacer esto, debe editar el archivo de configuración de Ghost config.production.json que se encuentra en el directorio de instalación de Ghost. Puede editar fácilmente el archivo a través de la interfaz del Administrador de archivos del Panel de control de alojamiento. Cambie las siguientes líneas en config.production.json:
"mail": { "transport": "Direct" },
to
"mail": { "transport": "sendmail", "options": { "path": "/usr/lib/sendmail" } },
Para que el cambio surta efecto, reinicie la aplicación web haciendo clic en el botón verde “Deshabilitar la aplicación” y luego en el botón rojo “Habilitar la aplicación”.
Este tutorial le mostrará cómo instalar y configurar un proyecto de Ruby on Rails dentro de una aplicación web.
Si no tiene una sección de aplicaciones web en su panel de control de hospedaje, entonces este tutorial no es adecuado para su entorno de hospedaje en particular. Puede solicitar más información a su proveedor de alojamiento o puede buscar ayuda a través de nuestro sistema de emisión de boletos.
Importante: a lo largo de este tutorial, se utiliza “ejemplo” como nombre de usuario de la cuenta. Dondequiera que vea ‘ejemplo’, debe reemplazarlo con el nombre de usuario real de su cuenta de alojamiento.
Configuraremos un entorno de Ruby mediante Ruby Version Manager (RVM). RVM le permite administrar y trabajar con múltiples entornos de Ruby y le permite cambiar entre ellos. De esta forma, puede tener varios proyectos en la misma cuenta, cada uno con una versión diferente de Ruby y diferentes gemas.
1.Conéctese a su cuenta a través de SSH
- A través de su Panel de control de hosting > Sección Acceso SSH > Herramientas adicionales, asegúrese de que las funciones Herramientas de compilación (gcc, g++) y Herramientas de red estén habilitadas.
- Conéctese a su cuenta a través de SSH. Puede consultar nuestra documentación en línea para obtener más información sobre cómo hacer esto:
Iniciar sesión en su cuenta a través de SSH usando Putty
Iniciar sesión en su cuenta a través de SSH usando Terminal en Mac OS
2. Instalar y configurar Ruby Version Manager (RVM)
La mayoría de los pasos de instalación se han obtenido de la documentación de instalación de RVM.
- Los paquetes RVM están firmados con GnuPG. Debe configurar GnuPG y descargar las claves públicas necesarias. Para configurar un directorio personalizado para almacenar las claves, ejecute el siguiente comando:
echo “export GNUPGHOME=$HOME/private/.gnupg” >> ~/.bashrcReload your bash profile:
source ~/.bashrcDownload and import the keys:
curl -sSL https://rvm.io/mpapis.asc | gpg –import – && curl -sSL https://rvm.io/pkuczynski.asc | gpg –import – && gpgconf –kill gpg-agent
- Para descargar y ejecutar el script de instalación de RVM, ejecute el siguiente comando:
curl -sSL https://get.rvm.io | grep -v ‘partition=`df’ | bash -s — –path ~/private/.rvm –ignore-dotfiles
Deberías obtener el siguiente resultado:
RVM se instaló en el directorio ~/private/.rvm de su cuenta
* Para comenzar a usar RVM, debe ejecutar el comando que se indica a continuación en todas las ventanas de shell abiertas (en casos excepcionales, debe volver a abrir todas las ventanas de shell):
source ~/private/.rvm/scripts/rvm
- Agregue los scripts de inicialización de RVM al archivo de configuración de bash:
echo “source $HOME/private/.rvm/scripts/rvm” >> ~/.bashrc
- Cierra todas tus sesiones SSH y vuelve a conectarte. Puede probar si RVM se cargó correctamente en su nueva sesión ejecutando:
type rvm | head -n 1
Deberías obtener el siguiente resultado:
rvm is a function
- RVM usa la utilidad /bin/df para comprobar si hay suficiente espacio libre en disco en el servidor antes de instalar una nueva versión de Ruby. Desafortunadamente, no se permite el acceso a /bin/df y la instalación falla con un error. A partir de la versión 1.29.9, no hay forma de desactivar esta verificación. Por lo tanto, debe parchear RVM eliminando las llamadas a __rvm_calculate_space_free. Puedes hacer esto con el siguiente comando:
sed -i “/__rvm_calculate_space_free/c\__free_space=9999M” ~/private/.rvm/scripts/functions/manage/base_install ~/private/.rvm/scripts/migrate
El parche establece un valor arbitrario de 9999M para la variable __free_space.
En caso de que actualice RVM a una versión más reciente, es posible que deba volver a aplicar el parche.
- Autolibs es una función integrada en RVM que instala automáticamente las dependencias del sistema. Como su usuario no tiene sudo o acceso de root, esto no es posible, por lo tanto, debe deshabilitar la función de autolibs con el siguiente comando:
rvm autolibs 0
En caso de que falle la instalación de alguna gema o su proyecto no se ejecute debido a una dependencia faltante, puede comunicarse con nuestro equipo de soporte para obtener ayuda. Puede verificar si faltan dependencias con el siguiente comando:
rvm requirements
3. Instala Ruby
RVM podría quedarse sin memoria al compilar Ruby. Por lo tanto, debe limitar la compilación a 3 subprocesos simultáneos agregando la siguiente configuración a ~/private/.rvm/scripts/functions/rvmrc:
echo “rvm_make_flags=( -j 3 )” >> ~/private/.rvm/scripts/functions/rvmrcTo make sure that all changes were applied, reload RVM:
rvm reload
Ahora puede instalar la última versión estable de Ruby ejecutando:
rvm install ruby –latest
RVM compilará Ruby desde la fuente e instalará un conjunto de gemas global. En el momento de escribir este artículo, la versión estable más reciente de Ruby es 3.1.2. Usaremos esta versión en los ejemplos que siguen. Puedes cambiar a esa versión de Ruby con:
rvm use 3.1.2
4. Instale Rails y cree un proyecto.
Puede instalar Rails directamente en el conjunto de gemas global. Sin embargo, muchos desarrolladores prefieren mantener el conjunto de gemas global escaso e instalar Rails en conjuntos de gemas específicos del proyecto, de modo que cada proyecto tenga la versión adecuada de Rails.
- Necesita crear un directorio para almacenar su proyecto. Todos los proyectos de aplicaciones web deben estar ubicados en el directorio ~/private. Cree un nuevo directorio llamado ‘blog’ y cambie a ese directorio:
mkdir ~/private/blog
cd ~/private/blog
- Cree un conjunto de gemas específico del proyecto:
rvm use ruby-3.1.2@blog –ruby-version –create
El nombre de nuestro proyecto y nuestro conjunto de gemas es blog.
La opción “—ruby-version” crea archivos .ruby-version y .ruby-gemset en el directorio raíz. RVM reconoce estos archivos en el directorio raíz de una aplicación y carga la versión requerida de Ruby y el conjunto de gemas correcto cada vez que ingresa al directorio.
- Continúe con la instalación de Rails:
gem install rails
Rails se instalará en el blog de gemset.
Esto puede llevar un tiempo ya que Rails tiene muchas dependencias de gemas.
- Ahora cree un nuevo proyecto de Rails:
rails new .
Con ‘.’ (un punto) como nombre del proyecto, el comando crea un nuevo proyecto en el directorio actual y el nombre del proyecto es el mismo que el nombre del directorio.
Es posible que se le pregunte si se debe sobrescribir .ruby-version. Los archivos antiguos y nuevos tienen el mismo contenido, por lo que tanto ‘sí’ como ‘no’ son opciones válidas.
En caso de que algunas gemas no se hayan instalado correctamente localmente, puede solucionarlo ejecutando el siguiente comando:
bundle install
5. Crear y configurar la aplicación web
Abra la sección Aplicaciones web de su Panel de control de alojamiento y cree una nueva aplicación con la siguiente configuración:
• Elija Personalizado como motor.
• Introduzca un nombre para su aplicación. Es solo para referencia interna a la aplicación. En este ejemplo, es Blog.
• Elija un subdominio en el que desea acceder a la aplicación. En este ejemplo, elegimos el subdominio “www”: www.example.com.
• Deje la ruta de acceso web predeterminada / (barra inclinada). Por ejemplo, si ingresa /rails, podrá acceder a la aplicación en http://www.example.com/rails. No necesita crear el directorio.
• Se asignará automáticamente un puerto al nuevo proyecto. Será transparente para sus usuarios. Se mostrará en la lista de aplicaciones después de crear el proyecto. Debe anotarlo, ya que lo necesitará en el siguiente paso. En este ejemplo, es 44181.
• Para el directorio de implementación, seleccione el directorio donde se encuentra el proyecto. En este caso es /private/blog.
• El servidor web de Rails se puede iniciar con el siguiente comando:
rails server
Sin embargo, para ejecutar una aplicación Ruby como una aplicación web con RVM, primero debe cargar el entorno RVM correspondiente y luego ejecutar el ejecutable de su aplicación. Para cada ruby y gemset instalado, RVM crea archivos de entorno. Puede enumerar el archivo de entorno para este proyecto ejecutando el siguiente comando en el directorio del proyecto:
rvm env –path
RVM devolverá la ruta al archivo de entorno:
/home/example/private/.rvm/environments/ruby-3.1.2@blog
Puede usar el comando ‘fuente’ para cargar este archivo de entorno al iniciar Rails. Ambos comandos combinados son:
source /home/example/private/.rvm/environments/ruby-3.1.2@blog && rails server
Debe ingresar este comando combinado en el campo Comando de inicio de la aplicación web.
Una vez que haya terminado, el proyecto debería verse así:
Antes de iniciar la aplicación web, debe configurar la aplicación Rails para usar el puerto correcto. La configuración del puerto se encuentra en ~/private/blog/config/puma.rb. Cambie el puerto predeterminado 3000 al de su aplicación web (en este ejemplo 44181):
puerto ENV.fetch(“PUERTO”) { 44181 }
- Agregue la siguiente línea a su archivo ~/private/blog/config/application.rb en el bloque de código “class Application < Rails::Application” para permitir solicitudes de su dominio/subdominio a su aplicación Ruby on Rails:
config.hosts << “www.ejemplo.com” - Inicie la aplicación web haciendo clic en el botón rojo ‘Habilitar esta aplicación’. Si todo funciona correctamente, debería ver lo siguiente cuando abra la URL de la aplicación en un navegador:
Este tutorial le mostrará cómo usar el MongoDB ya instalado en el servidor, así como también instalar una instancia personalizada de MongoDB.
Si no tiene una sección Aplicaciones web en su Panel de control de alojamiento, entonces este tutorial no es adecuado para su entorno de alojamiento en particular. Puede solicitar más información a su proveedor de alojamiento o puede buscar ayuda a través de nuestro sistema de tickets.
1.Uso de los paquetes MongoDB del servidor de alojamiento para iniciar una instancia de MongoDB
Puede ejecutar una instancia de MongoDB utilizando los archivos binarios de MongoDB instalados en el servidor de alojamiento de forma predeterminada. Si los parámetros port y dbpath no están definidos en el comando de inicio, la instancia de MongoDB se ejecutará con los parámetros predeterminados: puerto 27017 y dbpath /data/db. Como el puerto de la aplicación se asigna automáticamente y las cuentas de alojamiento no tienen acceso a /data/db, solo necesita establecer diferentes parámetros de puerto y dbpath al iniciar su instancia de MongoDB. Primero, debe crear el directorio de datos de la base de datos. En este ejemplo, usaremos /home/myusername/private/mongodb/data/db. Asegúrese de que exista el directorio de datos de la base de datos. A través de la sección Aplicaciones web en su Panel de control de alojamiento, cree una nueva aplicación para ejecutar la instancia de MongoDB. En este ejemplo, llamamos a la aplicación MongoDB.
El comando de inicio es:
mongod –dbpath /home/myusername/private/mongodb/data/db –port $PORT
Después de habilitar la aplicación haciendo clic en el círculo rojo, haga clic en el botón Actualizar hasta que el círculo sea verde, el Estado sea OK y el Estado sea Activo. Luego puede visitar http://www.mydomain.com/mongodb para verificar si la aplicación se está ejecutando. Debería recibir un mensaje que dice “Parece que está intentando acceder a MongoDB a través de HTTP en el puerto del controlador nativo”.
2. Instalar una instancia MongoDB personalizada
If you want your project to use a version of MongoDB that is different than the one installed on the server by default, then you need to follow the steps below:
1) Conéctese a su cuenta a través de SSH.
2) Navegue hasta la ubicación desde la que se ejecutará MongoDB. En este ejemplo, usamos /home/myusername/.local/bin.
myusername@s501:/home/myusername$ cd .local/bin3) Descargue los archivos binarios para la versión deseada de MongoDB. Puede descargar los archivos binarios desde https://www.mongodb.com/download-center/community. Debe seleccionar la versión, elegir “Debian 10.0” como plataforma, elegir “shell (tgz)” como paquete y hacer clic en el botón “copiar enlace” para copiar el enlace de descarga. En este ejemplo, el enlace de descarga es “https://fastdl.mongodb.org/linux/mongodb-shell-linux-x86_64-debian10-5.0.3.tgz”. Luego, descargue el archivo al servidor con curl ejecutando:
myusername@s501:/home/myusername/.local/bin$ curl -O https://fastdl.mongodb.org/linux/the_name_of_the_current_package.tgz
4) Extraiga los archivos del archivo descargado con tar. Por ejemplo, a través del shell, puede extraer con un comando tar:
myusername@s501:/home/myusername/.local/bin$ tar -zxvf the_name_of_the_current_package.tgz5) Copie los archivos binarios extraídos en la ubicación desde la que se ejecutará MongoDB (por ejemplo, /home/myusername/.local/bin).
myusername@s501:/home/myusername/.local/bin$ cp -R -n the_name_of_the_current_package/bin/* .
![]() | Al momento de escribir, el nombre del paquete actual en la página de descarga de mongoDB es mongodb-shell-linux-x86_64-debian 10-5.0.3.tgz, por lo que los comandos que deben ejecutarse son los siguientes: cd ~/local/bin |
6) Asegúrese de que la ubicación de los archivos binarios esté en la variable PATH. Debería tener la siguiente línea en el archivo rc de su shell (/home/myusername/.bashrc):
export PATH=$HOME/.local/bin:$PATHSi desea ejecutar los archivos binarios de MongoDB desde una ubicación diferente, asegúrese de agregar esa ubicación a la variable PATH:
export PATH=<directorio-de-instalación-mongodb>/bin:$PATH
7) Cree el directorio de implementación para la aplicación web que ejecutará su instancia MongoDB personalizada, p. /home/minombredeusuario/privado/mongodb. En el directorio de implementación, debe crear el directorio de datos de la base de datos, p. /home/minombredeusuario/privado/mongodb/data/db.
8) En la sección Aplicaciones web del Panel de control de alojamiento, cree una nueva aplicación. Nuestra aplicación de ejemplo se llama MongoDB.
El comando de inicio es:
/home/myusername/.local/bin/mongod –dbpath /home/myusername/private/mongodb/data/db –port $PORT
9) Haga clic en el botón Crear. Luego haga clic en el círculo rojo para iniciar la aplicación. Haga clic en el botón Actualizar para actualizar el Estado y el Estado de la aplicación. Cuando el estado es correcto y el estado es activo, su instancia personalizada de MongoDB se está ejecutando.
3. Habilitación de la autenticación
Habilitar el control de acceso en una implementación de MongoDB impone la autenticación, lo que requiere que los usuarios se identifiquen. Al acceder a una implementación de MongoDB que tiene el control de acceso habilitado, los usuarios solo pueden realizar acciones según lo determinen sus roles. El siguiente procedimiento primero agrega un administrador de usuarios a una instancia de MongoDB que se ejecuta sin control de acceso y luego habilita el control de acceso.
1) A través de su shell, conéctese a la instancia de MongoDB.
mongo –port $PORT
2) Crea el administrador de usuarios.
use admin
db.createUser(
{
user: “myUserAdmin”,
pwd: “abc123”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)
3) Desconecte la carcasa mongo.
4) Reinicie la instancia de MongoDB con control de acceso. Para hacer esto, vaya a la sección Aplicaciones web del Panel de control de alojamiento y haga clic en el círculo verde para detener la aplicación. Luego actualice el comando de inicio de la aplicación MongoDB agregando el parámetro “auth”:
/home/myusername/.local/bin/mongod –auth –dbpath /home/myusername/private/mongodb/data/db –port $PORT
5) Haga clic en el botón Actualizar para guardar los cambios y luego haga clic en el círculo rojo para reiniciar la instancia MongoDB personalizada con control de acceso.
4. Conexión a la base de datos
El formato estándar del esquema de conexión URI de MongoDB se ve así:
mongodb://[username:password@]host1[:port1][,…hostN[:portN]]][/[database][?options]]
Siguiendo este ejemplo, podría acceder a la base de datos creada en este tutorial con la siguiente cadena de conexión:
mongodb://myUserAdmin:abc123@localhost:36375/admin
En este tutorial, le mostraremos cómo configurar un servidor de base de datos PostgreSQL en su cuenta utilizando la plataforma WebApps.
Si no ve una sección de WebApps en el Panel de control de su cuenta de alojamiento, es posible que este tutorial no sea adecuado para su entorno de alojamiento en particular. Póngase en contacto con nuestro equipo de soporte para obtener más información.
Necesita acceso SSH al servidor para realizar los cambios descritos en este tutorial. Si aún no ha configurado SSH para su cuenta, debe hacerlo ahora.
Configuración rápida
Si desea configurar rápidamente un servidor PostgreSQL que se ejecute en su cuenta, puede descargar este script de shell de configuración de PostgreSQL en su cuenta y ejecutarlo. El script configurará el proyecto WebApps y la instancia de PostgreSQL en su cuenta y podrá comenzar a usarlos de inmediato.
Para ejecutar el script de configuración, debe cambiar sus permisos a 755 después de descargarlo en su cuenta. A continuación, podrá ejecutarlo desde la línea de comandos:
mv 4166.sh setup_postgresql.sh
chmod 755 setup_postgresql.sh
./setup_postgresql.sh postgres1
En ese caso, puede omitir las secciones “Configuración del servidor PostgreSQL” y “Proyecto de aplicaciones web personalizadas” de este artículo e ir directamente a la sección Creación de bases de datos y funciones .
Configuración del servidor PostgreSQL
Los binarios de PostgreSQL ya están instalados en el servidor. Solo tiene que configurar una instancia de PostgreSQL para manejar sus bases de datos utilizando la plataforma WebApps.
Para hacerlo, primero debe crear la estructura de directorios para almacenar sus datos en el servidor. Puede usar el directorio privado/ que está disponible en cada cuenta de hosting para esto:
sureapp_project="postgres1"
pg_app_dir="/home/$USER/private/$sureapp_project"
mkdir -m 0700 “$pg_app_dir”
mkdir -m 0700 “$pg_app_dir/run”
mkdir -m 0700 “$pg_app_dir/sureapp”
touch “$pg_app_dir/.psql_history”
chmod 0600 “$pg_app_dir/.psql_history”
El siguiente paso es inicializar su clúster de base de datos y configurar un rol de superusuario. Por defecto, el nombre de usuario del rol de superusuario es el mismo que el nombre de usuario de su cuenta de hosting (“ejemplo” en este caso):
superuser_pass="$(pwgen 24 1)"
touch "$pg_app_dir/.superuser-pwfile"
chmod 0600 "$pg_app_dir/.superuser-pwfile"
echo "$superuser_pass" > "$pg_app_dir/.superuser-pwfile"
for pg_install_dir in $(find /usr/lib/postgresql -maxdepth 1 -type d -o -type l 2>/dev/null | sort -Vr)
do
[ -x “$pg_install_dir/bin/initdb” ] && break
done
“$pg_install_dir/bin/initdb” -D “$pg_app_dir/pgdata” –auth=md5 –pwfile=”$pg_app_dir/.superuser-pwfile” && rm -f “$pg_app_dir/.superuser-pwfile”
touch “$pg_app_dir/.pgpass”
chmod 0600 “$pg_app_dir/.pgpass”
printf “*:*:*:%s:%s\n” “$USER” “$superuser_pass” > “$pg_app_dir/.pgpass”
Ahora, debe configurar el servidor PostgreSQL para escuchar las solicitudes mediante un socket UNIX en la ubicación correcta de su cuenta:
sed -i "s~^#*unix_socket_directories = .*\(\s*#.*\)~unix_socket_directories = '$pg_app_dir/run' \1~g" "$pg_app_dir/pgdata/postgresql.conf"
sed -i "s~^#*unix_socket_permissions = .*\(\s*#.*\)~unix_socket_permissions = 0700 \1~g" "$pg_app_dir/pgdata/postgresql.conf"
sed -i "s~^#*listen_addresses = .*\(\s*#.*\)~listen_addresses = '' \1~g" "$pg_app_dir/pgdata/postgresql.conf"
Para facilitar el inicio del servicio PostgreSQL, los siguientes comandos crearán un script de inicio:
printf '#!/bin/sh\nexec %s/bin/postgres -D %s/pgdata\n' "$pg_install_dir" "$pg_app_dir" > "$pg_app_dir/start.sh"
chmod 0700 "$pg_app_dir/start.sh"
Para utilizar varias herramientas de administración de PostgreSQL, como psql, también debe realizar algunos cambios en su archivo .bashrc:
grep -q '^PGHOST=' "/home/$USER/.bashrc" || cat <<BASHRC >> "/home/$USER/.bashrc"
# $sureapp_project client configuration
PGHOST=”$pg_app_dir/run”
export PGHOST
PGPASSFILE=”$pg_app_dir/.pgpass”
export PGPASSFILE
PSQL_HISTORY=”$pg_app_dir/.psql_history”
export PSQL_HISTORY
BASHRC
. “/home/$USER/.bashrc”
Proyecto de aplicaciones web personalizadas
Para ejecutar el servidor de la base de datos, debe configurar un servicio PostgreSQL. Hay dos maneras de hacer esto:
- Puede crear el proyecto en la página WebApps del Panel de control de su cuenta de hosting;
- Puede utilizar la interfaz de línea de comandos de la plataforma WebApps para crear el proyecto.
Las siguientes secciones describen cómo hacer esto.
En la página WebApps del Panel de control
Si elige la forma del Panel de control, debe crear una nueva aplicación con la siguiente configuración:
- Motor: personalizado
- Nombre: postgres1 : el nombre de su aplicación.
- Dominio: example.com : puede elegir cualquier dominio de la lista. No afectará el funcionamiento del servidor PostgreSQL.
- Subdominio: www : de nuevo, puede elegir cualquier subdominio. No tendrá ningún efecto porque la instancia de PostgreSQL no estará escuchando en un puerto TCP.
- Ruta de acceso web: /Efu6dunox0vieyelahch2eaf: la ruta de acceso web debe ser simplemente una ruta ficticia que es poco probable que utilice su sitio web. Aquí, usamos “/Efu6dunox0vieyelahch2eaf” para el ejemplo, pero puede usar cualquier cadena aleatoria. No debe dejar el ‘/’ predeterminado aquí porque eso evitaría que su sitio web funcione correctamente.
- Directorio de implementación: /private/postgres1/sureapp : si ha cambiado el directorio de datos base para PostgreSQL en el script anterior, debe ingresar la ruta correcta aquí.
- Comando de inicio: /home/example/private/postgres1/start.sh : aquí, debe reemplazar “example” con el nombre de usuario real de su cuenta de hosting.
Después de crear y habilitar la aplicación, podrá usar el nuevo servidor de base de datos PostgreSQL.
Uso de la interfaz de línea de comandos de la plataforma WebApps
Los proyectos de WebApps se pueden manipular con el cliente de línea de comandos sureapp . Para crear e iniciar el nuevo proyecto PostgreSQL, debe usar los siguientes comandos:
sureapp project create \
--engine "custom" \
--engine-version "-" \
--release-dir "$pg_app_dir/sureapp" \
--start-cmd "$pg_app_dir/start.sh" \
"$sureapp_project"
sureapp service manage --enable "$sureapp_project"
sureapp service manage --start "$sureapp_project"
Después de ejecutar estos comandos, el servidor PostgreSQL se ejecutará y podrá usarlo.
Creación de bases de datos y roles
Una vez que el servidor se está ejecutando, debe configurar un nuevo rol de usuario y una base de datos para su aplicación. Para hacer eso, puede usar los siguientes comandos a través de SSH:
. "/home/$USER/.bashrc" # For $PGHOST
createuser -e -DEPRS "pgusername"
createdb -e -O "pgusername" "pgdatabase"
Debe reemplazar el nombre de usuario y el nombre de la base de datos en el ejemplo con los detalles reales que va a configurar en su aplicación.
Copias de Seguridad
Creamos copias de seguridad automáticas del sistema cada 12 horas para que no tengas que preocuparte por la pérdida de datos. Estas copias de seguridad le permiten restaurar sus datos desde una copia de seguridad si algo sale mal en su sitio.
Los motores de bases de datos como PostgreSQL y MySQL almacenan datos de una manera especial en el servidor, por lo que se debe tener especial cuidado para garantizar que los archivos de copia de seguridad sean consistentes y utilizables.
Para MySQL, que está integrado con nuestro entorno de alojamiento, esto ya lo hace automáticamente el Panel de control. Nuestro sistema realiza una copia de seguridad de todos los datos de MySQL a intervalos regulares y se pueden restaurar fácilmente utilizando la página “Restaurar” del Panel de control.
Para las bases de datos PostgreSQL que se ejecutan en la plataforma WebApps, debe configurar un procedimiento de copia de seguridad por separado. El siguiente código creará dos secuencias de comandos en el proyecto WebApps, backup.sh y restore.sh, que se encargarán de las copias de seguridad (tenga en cuenta que si ha utilizado nuestra secuencia de comandos de configuración rápida, estos archivos ya están creados para usted):
mkdir -m 0700 "$pg_app_dir/backup"
cat <<BACKUP_SH > "$pg_app_dir/backup.sh"
#!/bin/sh
set -e
die() { printf "%s\n" "\$*" 1>&2 && exit 1; }
PGPASSFILE="$pg_app_dir/.pgpass"
export PGPASSFILE
"$pg_install_dir/bin/pg_dumpall" --clean --host "$pg_app_dir/run" | gzip --stdout -- > "$pg_app_dir/backup/pgdump.sql.gz" || die "PostgreSQL backup failed: $sureapp_project"
BACKUP_SH
chmod 700 "$pg_app_dir/backup.sh"
cat <<RESTORE_SH > "$pg_app_dir/restore.sh"
#!/bin/sh
set -e
die() { printf "%s\n" "\$*" 1>&2 && exit 1; }
PGPASSFILE="$pg_app_dir/.pgpass"
export PGPASSFILE
archive="$pg_app_dir/backup/pgdump.sql.gz"
[ -f "\$archive" ] || die "Backup file does not exist: \$archive"
zgrep -m1 "Dumped" "\$archive" || die "Backup file does not contain PostgreSQL data: \$archive"
gzip --decompress --stdout "\$archive" | "$pg_install_dir/bin/psql" --quiet --host "$pg_app_dir/run" postgres
RESTORE_SH
chmod 700 "$pg_app_dir/restore.sh"
Una vez creados los scripts, puede configurar un trabajo cron que ejecute el script backup.sh cada 12 horas. Esto se puede hacer en la página “Trabajos cronológicos” del Panel de control.
Este trabajo cron sobrescribirá el archivo de respaldo pgdump.sql.gz cada vez. De esta forma, cada nueva copia de seguridad del sistema contendrá la copia más reciente del archivo.
Con suerte, no tendrá que usar el script restore.sh . Sin embargo, si lo hace, eliminará los datos actuales en su instancia de PostgreSQL y restaurará los datos del archivo pgdump.sql.gz .
Para restaurar desde una copia de seguridad en particular, puede restaurar el archivo pgdump.sql.gz desde una de las copias de seguridad del sistema utilizando la página “Restaurar” del Panel de control. Después de eso, ejecutar restore.sh en la línea de comandos restaurará los datos del archivo en su instancia de PostgreSQL:
./restore.sh
Configuración PHP
Si va a utilizar una aplicación PHP con PostgreSQL, debe actualizar el archivo de configuración php.ini . Puede omitir este paso si no va a utilizar PHP.
PHP puede usar dos bibliotecas para conectarse a PostgreSQL. Son la extensión de la base de datos PostgreSQL y el controlador PDO más abstracto para PostgreSQL.
Debe habilitar la extensión de PHP correcta según la aplicación que desee utilizar a través de la sección Panel de control -> Configuración de PHP siguiendo estos pasos:
- Haga clic en el botón Administrar junto al dominio/subdominio donde desea usar ImageMagick.
- Marque la casilla junto a la extensión PostgreSQL o PDO_PGSQL de la sección Extensiones.
Haga clic en el botón Guardar cambios.
Las extensiones también se pueden activar agregando manualmente la línea respectiva que se enumera a continuación a un archivo de configuración de PHP (php.ini):
Extensión PostgreSQL:
extension = pgsql.so
Controlador PDO para PostgreSQL:
extension = pdo_pgsql.so
Las instrucciones sobre cómo cambiar otras configuraciones de PHP para su cuenta están disponibles en nuestro artículo Cambiar la configuración de PHP.
Habilitación de conexiones remotas
De forma predeterminada, PostgreSQL está configurado para escuchar solo las conexiones locales. Hay una manera de habilitar las conexiones remotas si desea conectarse a su servidor PostgreSQL desde un servidor remoto o una herramienta de administración de interfaz gráfica de usuario (GUI) para PostgreSQL, como pgAdmin. Para habilitar las conexiones remotas, debe actualizar dos archivos de configuración:
- pgdata/postgresql.conf
- pgdata/pg_hba.conf
En el archivo pgdata/postgresql.conf , debe editar las siguientes líneas:
listen_addresses = ” # en qué dirección(es) IP escuchar;
puerto = 5432 # (el cambio requiere reiniciar)
Debe configurar la variable “listen_address” en “*” y la variable “port” en el puerto de su aplicación web. Puede encontrar el puerto de la WebApp en la sección “WebApps” del Panel de control de hosting.
En el archivo pgdata/pg_hba.conf , debe agregar la siguiente línea al final:
host all all 0.0.0.0/0 md5
Este código configurará el servidor PostgreSQL para aceptar conexiones desde cualquier ubicación remota siempre que proporcionen un nombre de usuario y una contraseña válidos. Si lo desea, puede configurar el servidor para aceptar conexiones solo desde una dirección IP específica. Por ejemplo, para permitir conexiones desde la dirección IP 123.123.123.123, debe usar la siguiente línea en su lugar:
host all all 123.123.123.123/32 md5
Luego debe reiniciar la WebApp a través de la sección “WebApps” del Panel de control de alojamiento, y podrá conectarse al servidor desde una ubicación remota.
Nota: Actualizar el puerto en el archivo de configuración de PostgreSQL romperá la funcionalidad de las aplicaciones, como psql, createuser y createdb. Todavía podrá usarlos definiendo el nuevo puerto de la siguiente manera:
psql -p <el puerto de la aplicación web>
En este tutorial, le mostraremos cómo configurar un proyecto Django en su cuenta de alojamiento que utiliza PostgreSQL como backend de la base de datos utilizando la plataforma WebApps.
Si no ve una sección de WebApps en el Panel de control de su cuenta de alojamiento, es posible que este tutorial no sea adecuado para su entorno de alojamiento en particular. Póngase en contacto con nuestro equipo de soporte para obtener más información.
Necesita acceso SSH al servidor para realizar los cambios descritos en este tutorial. Si aún no ha configurado SSH para su cuenta, debe hacerlo ahora.
Tenga en cuenta que también debe habilitar tanto “Herramientas de red” como “Herramientas de compilación” en la página Acceso SSH del Panel de control de su cuenta de alojamiento.
Configuración rápida
Si desea configurar rápidamente un proyecto de Django, primero debe configurar una instancia de PostgreSQL. Le recomendamos que utilice el script de shell de la sección Configuración rápida al principio de este artículo. Configurará PostgreSQL y configurará el entorno de su cuenta de alojamiento para instalar Django.
Después de que PostgreSQL se esté ejecutando en su cuenta, puede descargar este script de shell de configuración de Django en su cuenta y ejecutarlo. El script configurará el proyecto WebApps para su sitio Django.
Tenga en cuenta que el script de configuración de Django configurará automáticamente los detalles de inicio de sesión de PostgreSQL para su aplicación Django, por lo que no tiene que hacerlo manualmente. Simplemente puede ejecutar los dos scripts en secuencia:
# Set up PostgreSQL
setup_postgresql.sh
# This sets up $PGHOST in the shell environment
. ~/.bashrc
# Set up Django
mv 4168.sh setup_django.sh
chmod 755 setup_django.sh
./setup_django.sh
En ese caso, puede saltar a la sección “Ejecutar el sitio web de Django” de este artículo.
Instalación
Antes de comenzar la instalación, debe asegurarse de que tiene una instancia de PostgreSQL en ejecución en su cuenta y que la variable de entorno $PGHOST está configurada en su shell. Hay más información sobre esto en el artículo Ejecutar una instancia de PostgreSQL. El script de configuración rápida puede encargarse de eso por usted.
Después de eso, puede crear la estructura de directorios de su nuevo sitio de Django:
sureapp_project="django1"
django_project_dir="/home/$USER/private/$sureapp_project"
mkdir -p "$django_project_dir/sureapp"
Then, set up the database details:
[ -z "$PGHOST" ] && . /home/$USER/.bashrc
if [ -n "$PGHOST" ]
then
pguser="$sureapp_project"
pgpass="$(pwgen 24 1)"
pgdb="${sureapp_project}_db"
printf "CREATE ROLE %s PASSWORD '%s' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;" "$pguser" "$pgpass" | psql postgres
createdb --owner "$pguser" "$pgdb" && printf "Database %s created successfully.\n" "$pgdb"
fi
virtualenv
Para aplicaciones de Python como Django, es común crear un entorno aislado para la aplicación. Puedes hacer esto con virtualenv
:
mkdir -p "/home/$USER/.local/bin"
grep -q '^PATH=.*/.local/bin' "/home/$USER/.bashrc" || printf '\nPATH="/home/%s/.local/bin:$PATH"\nexport PATH\n' "$USER" >> "/home/$USER/.bashrc"
PATH="/home/$USER/.local/bin:$PATH"
export PATH
pip3 install virtualenv
virtualenv --system-site-packages -p /usr/bin/python3 "$django_project_dir/venv"
. "$django_project_dir/venv/bin/activate"
De esta forma, todas las dependencias de Python serán utilizadas únicamente por su sitio.
Dependencias de Python
Ahora puede continuar con la instalación de las dependencias de software de su sitio Django.
pip3 install psycopg2 whitenoise gunicorn Django
psycopg2
es un adaptador de base de datos PostgreSQL;whitenoise
es un servidor de archivos estáticos, particularmente adecuado para Django;gunicorn
es un servidor WSGI robusto y de alto rendimiento para uso en producción;Django
es el paquete que contiene el framework Django.
Django Project
En este punto, puede configurar el proyecto Django y configurarlo:
django-admin startproject "$sureapp_project" "$django_project_dir"
django_project_settings_file="$django_project_dir/$sureapp_project/settings.py"
sed -i 's/^DEBUG = .*/DEBUG = False/' "$django_project_settings_file"
sed -i "s/^ALLOWED_HOSTS = .*/ALLOWED_HOSTS = ['localhost']/" "$django_project_settings_file"
cat <<POSTGRES_CONFIG >> "$django_project_settings_file"
DATABASES['default'] = {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '$pgdb',
'USER': '$pguser',
'PASSWORD': '$pgpass',
'HOST': '$PGHOST',
}
POSTGRES_CONFIG
cat <<STATICFILES_CONF >> "$django_project_settings_file"
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MIDDLEWARE.append('whitenoise.middleware.WhiteNoiseMiddleware')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
STATICFILES_CONF
python3 "$django_project_dir/manage.py" migrate
python3 "$django_project_dir/manage.py" collectstatic
Creación del proyecto de aplicaciones web
Aquí, debe crear el proyecto WebApps. Esto es necesario porque determinará el puerto en el que su aplicación Django escuchará las solicitudes.
sureapp project create \
--engine "custom" \
--engine-version "-" \
--release-dir "$django_project_dir/sureapp" \
--start-cmd "$django_project_dir/start.sh" \
"$sureapp_project"
Servidor WSGI
Gunicorn es un servidor WSGI robusto y de alto rendimiento diseñado para uso en producción.
La forma más fácil de iniciar el servidor WSGI es usar un script de shell contenedor:
wsgi_port="$(sureapp project list | grep "$sureapp_project" | awk '{print $5}')"
cat <<START_SH > "$django_project_dir/start.sh"
#!/bin/sh
cd "$django_project_dir"
. "$django_project_dir/venv/bin/activate"
exec gunicorn -b "127.0.0.1:$wsgi_port" -w 4 "$sureapp_project.wsgi:application"
START_SH
chmod 0700 "$django_project_dir/start.sh"
Ejecución del sitio web de Django
Proyecto WebApps
Ahora debe completar la configuración del proyecto WebApps para configurar la URL donde se podrá acceder a la aplicación.
El proyecto WebApps ya está creado, por lo que debe hacer clic en el icono “Editar” para modificar su configuración:
Debe configurar los campos de dominio y subdominio:
Si desea colocar su aplicación Django en un subdominio separado, puede crear uno en la página Subdominios del Panel de control.
Finalmente, tienes que habilitar la aplicación para ejecutarla:
Guión de gestión
Aunque no es obligatorio, es conveniente crear un script contenedor simple para facilitar la gestión de la aplicación Django desde la línea de comandos. Este script se encargará de configurar el entorno por usted para que no tenga que hacerlo cada vez que quiera usar el script manage.py en el directorio de instalación de Django.
cat <<MANAGE_SH > "$django_project_dir/manage.sh"
#!/bin/sh
. "$django_project_dir/venv/bin/activate"
exec python3 "$django_project_dir/manage.py" "\$*"
MANAGE_SH
chmod 0700 "$django_project_dir/manage.sh"
ln -s "$django_project_dir/manage.sh" "/home/$USER/.local/bin/manage-$sureapp_project"
Con este script contenedor, puede iniciar sesión a través de SSH y ejecutar directamente cualquier comando en su proyecto Django. Por ejemplo, asumiendo que nombró el proyecto django1 como en este ejemplo, puede usar el siguiente comando para ver qué opciones de administración están disponibles:
manage-django1 help
Iniciando sesión
El script de instalación crea un script de shell contenedor que le permite administrar su proyecto Django directamente en la línea de comando, sin tener que activar primero el entorno virtualenv por separado.
Por ejemplo, puede crear un nombre de usuario administrativo para su proyecto Django como este (suponiendo que el proyecto se llame django1):
manage-django1 createsuperuser
Después de completar las indicaciones, podrá iniciar sesión como administrador de su nuevo sitio web de Django.
Este tutorial le mostrará cómo instalar y ejecutar el motor de base de datos InfluxDB dentro de una aplicación web.
Si no tiene una sección WebApps en el Panel de control de su cuenta, entonces este tutorial no es adecuado para su entorno de alojamiento en particular. Puede ponerse en contacto con nosotros si necesita más ayuda.
La documentación oficial de InfluxDB se puede encontrar en https://docs.influxdata.com/influxdb/v1.8/.
En esta guía, InfluxDB se instalará en el directorio /home/$USER/private/influxdb de su cuenta. Deberá reemplazar $USER con el nombre de usuario real de su cuenta. Este nombre de usuario aparece en el panel izquierdo del Panel de control de la cuenta.
1. Cree un directorio para su instalación de InfluxDB llamado influxdb en el directorio /private de su cuenta. Puede crear directorios a través del Administrador de archivos en el Panel de control de su cuenta. También se recomienda crear un subdominio separado para cada aplicación. Puede crear subdominios a través de la sección Subdominios del Panel de control.
2. Cree una aplicación para su instancia de InfluxDB a través de la sección de aplicaciones web del panel de control de la cuenta.
Utilice la siguiente configuración:
Directorio de implementación: private/influxdb
Comando de inicio: sh /home/$USER/private/influxdb/start.sh
3. Asegúrese de que todas las opciones estén habilitadas en la sección Acceso SSH del Panel de control de la cuenta. A continuación, inicie sesión en su cuenta a través de SSH. Puede consultar nuestra documentación en línea para obtener más información sobre cómo hacer esto:
- Iniciar sesión en su cuenta a través de SSH usando Putty
- Iniciar sesión en su cuenta a través de SSH usando Terminal en Mac OS
T
o navegue al directorio /home/$USER/private/influxdb, ejecute el siguiente comando:
cd ~/private/influxdb
4. Descargue y extraiga la última versión estable de InfluxDB del sitio web oficial. Puede encontrar la última versión estable en https://portal.influxdata.com/downloads/. Puede usar wget para descargar el archivo comprimido directamente en el servidor y tar para extraer el archivo comprimido:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.1_linux_amd64.tar.gz
tar xvfz influxdb-1.8.1_linux_amd64.tar.gz
5. Cree un archivo llamado start.sh en el directorio /home/$USER/private/influxdb con permisos ejecutables y el siguiente contenido:
#!/bin/bash
cd /home/$USER/private/influxdb
/home/$USER/private/influxdbprivate/influxdb/influxdb-1.8.1-1/usr/bin/influxd –config /home/$USER/private/influxdb/influxdb-1.8.1-1/etc/influxdb/influxdb.conf
6. Actualice el archivo de configuración en ~/private/influxdb/influxdb-1.8.1-1/etc/influxdb/influxdb.conf. Allí, edite las siguientes configuraciones:
[meta]
dir = “/home/$USER/private/influxdb/meta”
[data]
dir = “/home/$USER/private/influxdb/data”
wal-dir = “/home/$USER/private/influxdb/wal”
[http]
enabled = true
flux-enabled = true
bind-address = “:APP_PORT”
You will need to replace APP_PORT with the port assigned to the application you need to create through the WebApps section in the Control Panel of the account:
7. Finalmente, ejecute la aplicación InfluxDB a través de la sección WebApps en el Panel de control de la cuenta.
En esta guía, instalaremos y ejecutaremos Elasticsearch. Para una serie de planes de alojamiento seleccionados, se puede instalar con unos pocos clics a través de la sección “Instalador de aplicaciones” del Panel de control de alojamiento. Si no puede encontrarlo en su instalador de aplicaciones, siga leyendo. Tenga en cuenta que Elasticsearch consume muchos recursos, por lo que incluso si puede instalarlo manualmente siguiendo las instrucciones a continuación, es posible que no funcione correctamente según su plan de alojamiento.
Debido a las características específicas de Elasticsearch, en realidad necesitaremos crear dos aplicaciones web para completar nuestra configuración. Para instalar y ejecutar Elasticsearch como una aplicación web, siga estos pasos.
Crear los directorios y archivos necesarios
1. Cree un subdominio.
Debe crear un subdominio para su aplicación web de Elasticsearch a través de la sección Subdominios del Panel de control. En esta guía, llamaremos al subdominio elastic-sub.
2. Cree los directorios necesarios.
Cree un directorio para la instalación de Elasticsearch en el directorio /private de su cuenta. En esta guía, llamaremos al directorio elasticsearch_dir. Puede crear directorios fácilmente a través del Administrador de archivos en el Panel de control de su cuenta.
Cree un directorio para Portholder WebApp en el directorio /private de su cuenta. En esta guía, llamaremos al directorio portholder_dir.
3. Cree las aplicaciones web.
Cree una aplicación web para Elasticsearch a través de la sección de aplicaciones web del Panel de control. Recuerde el número de puerto asignado a la WebApp. Utilice la siguiente configuración:
Cree otra aplicación web. Esta aplicación se utilizará para reservar otro puerto para Elasticsearch. Llamaremos a este Portholder de WebApp. Recuerde el puerto asignado a la WebApp del Portador. Vamos a usar este puerto en la configuración de Elasticsearch. Dado que no vamos a activar esta aplicación web, puede usar la configuración que desee, siempre que no haya conflictos con las aplicaciones web existentes. En esta guía, estamos usando las siguientes configuraciones:
Instalar y configurar Elasticsearch
4. Descargue y extraiga el paquete de instalación de Elasticsearch.
Inicie sesión en su cuenta a través de SSH. El inicio de sesión a través de SSH se trata en la sección SSH de nuestra documentación. Luego, navegue hasta el directorio que creó para su instalación de Elasticsearch. Puede hacerlo ejecutando el siguiente comando (asegúrese de reemplazar la ruta en el comando con la ruta real al directorio que creó para Elasticsearch):
cd ~/private/elasticsearch_dir
Use wget para descargar el último paquete de Elasticsearch LINUX X86_64 directamente a su elasticsearch_dir. Puede obtener la URL del último paquete de Elasticsearch en el sitio web oficial de Elasticsearch. Si necesita habilitar wget, puede hacerlo a través de la sección Acceso SSH del Panel de control de su cuenta.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz
Use tar para extraer el archivo:
tar -xzf elasticsearch-7.9.2-linux-x86_64.tar.gz
5. Configure Elasticsearch.
Cree un archivo start.sh en su directorio elasticsearch_dir con el siguiente contenido:
#!/bin/bash
cd /home/username/private/elasticsearch_dir/elasticsearch-7.9.2/
export ES_JAVA_OPTS=”-Xms128m -Xmx128m”
exec ./bin/elasticsearch
Asegúrese de reemplazar la ruta en el comando con la ruta real al directorio que creó para Elasticsearch y el número de versión con la versión correspondiente al paquete que descargó. Debe reemplazar el nombre de usuario con el nombre de usuario real del Panel de control de su cuenta. Puede crear y editar archivos fácilmente a través del Administrador de archivos en el Panel de control de su cuenta.
Edite el siguiente archivo de configuración en el directorio donde se extrae Elasticsearch:
/home/username/private/elasticsearch_dir/elasticsearch-7.9.2/config/elasticsearch.yml
Allí, debe eliminar el símbolo # delante de la configuración http.port y reemplazar el número de puerto con el puerto asignado a la aplicación web de Elasticsearch que creó en el paso 3. También debe insertar una nueva línea para transport.port configuración. Dado que esta configuración requiere un rango, deberá establecer el puerto asignado a la aplicación web Portholder que creó en el paso 3 como el principio y el final del rango:
http.port: XXXX #Elasticsearch WebApp port
transport.port: YYYYY-YYYYY #Portholder WebApp port
Vuelva a la sección WebApps del Panel de control. Allí, haga clic en el botón de edición junto a la aplicación web de Elasticsearch y configure el comando de inicio de la aplicación web de Elasticsearch de la siguiente manera:
sh /home/username/private/elasticsearch_dir/start.sh
Asegúrese de reemplazar la ruta en el comando con la ruta real al archivo start.sh que creó.
¡Eso es todo!
Una vez que inicie su aplicación web, Elasticsearch debería estar ejecutándose en el puerto especificado.
En este tutorial, le mostraremos cómo configurar una instancia de Redis en su cuenta utilizando la plataforma WebApps.
Si no ve una sección de WebApps en el Panel de control de su cuenta de alojamiento, es posible que este tutorial no sea adecuado para su entorno de alojamiento en particular. Póngase en contacto con nuestro equipo de soporte para obtener más información.
Necesita acceso SSH al servidor para realizar los cambios descritos en este tutorial. Si aún no ha configurado SSH para su cuenta, debe hacerlo ahora.
Configuración
Según su plan de alojamiento, es posible que Redis ya esté disponible. Puede verificar si este es el caso ejecutando el siguiente comando a través de SSH:
redis-cli ping && echo "Redis is available!"
Si no hay ninguna instancia de Redis disponible de forma predeterminada, recibirá un mensaje de error. En ese caso, puede configurar un proyecto de WebApps para ejecutar su propia instancia de Redis.
Para hacer eso, primero debe crear el archivo de configuración para Redis ejecutando los siguientes comandos:
sureapp_project="Redis"
redis_dir="/home/$USER/private/redis"
mkdir -pv "$redis_dir"
cat <<REDIS_CONF > $redis_dir/redis.conf
unixsocket $redis_dir/redis.sock
unixsocketperm 700
port 0
daemonize no
stop-writes-on-bgsave-error no
rdbcompression yes
maxmemory 64M
# how redis will evict old objects - least recently used
maxmemory-policy allkeys-lru
REDIS_CONF
Después de eso, puede crear y habilitar el proyecto WebApps:
sureapp project create \
--engine "custom" \
--engine-version "-" \
--release-dir "$redis_dir" \
--start-cmd "/usr/bin/redis-server $redis_dir/redis.conf" \
"$sureapp_project"
sureapp service manage --enable "$sureapp_project"
sureapp service manage --start "$sureapp_project"
En este punto, Redis ya debería estar funcionando.
Puede comprobarlo haciendo ping con la herramienta de línea de comandos redis-cli:
redis-cli -s "$redis_dir/redis.sock" ping
Recibirá una respuesta “PONG” si todo funciona correctamente.
Para usar su servidor Redis desde sus aplicaciones, solo tendrá que configurarlas para usar el socket del sistema de archivos para conectarse. La ruta al zócalo debe ser /home/$USER/private/redis/redis.sock
.
Este tutorial le mostrará cómo configurar y ejecutar su aplicación React usando npm y servir.
Si no tiene una sección WebApps en su panel de control de alojamiento, entonces este tutorial no es adecuado para su entorno de alojamiento particular. Puede enviar un ticket de soporte a través de nuestro sistema de tickets si necesita ayuda.
React (también llamado ReactJS o React.js) es una biblioteca de JavaScript popular para crear interfaces de usuario altamente interactivas. Se puede instalar fácilmente a través de SSH con un solo comando:
npm install react
Este comando debe ejecutarse en el shell de sureapp de su proyecto. Puede encontrar más información sobre el uso de la CLI de sureapp en nuestro artículo Sureapp: herramienta CLI de administración de aplicaciones.
Hay ciertos requisitos previos para ejecutar una aplicación React:
1) Debe elegir una ubicación en su directorio privado donde residirá la aplicación, p. /home/NOMBRE DE USUARIO/privado/mi_aplicación. En este tutorial, colocaremos la aplicación en /home/USERNAME/private/react/calculator.
2) Debe crear una aplicación a través de la sección WebApps en su Panel de control y usar la ruta a su aplicación como directorio de implementación.
3) Debe acceder a su cuenta a través de SSH y usar la interfaz de línea de comandos “sureapp” para iniciar sesión en el shell de su aplicación e instalar React, así como cualquier otra dependencia.
4) Luego deberá completar la configuración de la aplicación y realizar los cambios finales a través de la sección WebApps, para que la aplicación pueda ejecutarse usando React + Serve.
Describamos estos pasos con más detalle. Primero, elijamos una aplicación que dependa de React. Usaremos uno de los ejemplos enumerados en el sitio web oficial de lla Calculadora de React (https://reactjs.org/community/examples.html)
1. Inicie sesión en su cuenta a través de SSH y navegue hasta el directorio en el que colocará su aplicación:
username@s501:/home/username$ cd ~/private/react
2. Descargar Calculadora:
username@s501:/home/username/private/react$ git clone https://github.com/ahfarmer/calculator.git
La calculadora se instalará en ~/private/react/calculator. En este punto, deberá ejecutar “npm install” para instalar todas las dependencias.
3. Crea una nueva aplicación
Sin embargo, para usar “npm”, debe crear una nueva aplicación a través de WebApps en su Panel de control:
Deje el campo “Comando de inicio” vacío por ahora. Haga clic en Crear pero no habilite la aplicación.
4. Ingrese el shell de su proyecto a través de SSH ejecutando el siguiente comando:
username@s501:/home/username/private/react$ sureapp project shell ReactProject
Luego ejecute el siguiente comando para instalar todos los módulos de los que depende la aplicación (incluido React):
username@s501 [ReactProject:node/lts] /home/username/private/react/calculator$ npm install
6. Prueba tu aplicación
Ejecute el siguiente comando a través de SSH para iniciar el servidor de desarrollo:
username@s501 [ReactProject:node/lts] /home/username/private/react/calculator$ npm start
Visite la URL de su aplicación (es decir, http://react-project.mydomain.com/) para verificar si la aplicación funciona como se esperaba.
Luego cancele el comando SSH (Ctrl+C) para detener el servidor de desarrollo y edite el archivo package.json de la aplicación, ubicado en la raíz del documento de la aplicación.
Cambie el valor de la variable “página de inicio” de “http://ahfarmer.github.io/calculator” a la URL real de la aplicación: “http://react-project.mydomain.com”. Una solución universal sería simplemente ingresar “/” como página de inicio, para que la aplicación pueda funcionar correctamente independientemente de la URL en la que se esté ejecutando.
7. Preparar la aplicación para el modo de producción.
Ejecute estos dos comandos en el shell del proyecto:
username@s501 [ReactProject:node/lts] /home/username/private/react/calculator$ npm run build
username@s501 [ReactProject:node/lts] /home/username/private/react/calculator$ npm install -g serve
Ejecute el siguiente comando para iniciar el servidor de producción a través de SSH y pruebe la aplicación:
username@s501 [ReactProject:node/lts] /home/username/private/react/calculator$ serve -s build
Visite http://react-project.mydomain.com/ para verificar que todo funciona bien.
Apague el servidor de producción deteniendo el proceso en ejecución (Ctrl+C).
8) Habilite su aplicación y ejecútela en modo de producción
Edite la aplicación en la sección WebApps del Panel de control. Introduzca lo siguiente como “Comando de inicio”:
serve -s build
Habilite la aplicación y visite http://react-project.mydomain.com/ para verificar si todo funciona normalmente.
Memcached es un sistema de almacenamiento en caché de objetos de memoria distribuida de alto rendimiento. Actúa como un almacén de clave-valor en memoria para pequeños fragmentos de datos arbitrarios (cadenas, objetos) de los resultados de las llamadas a la base de datos, las llamadas a la API o la representación de la página. Memcached puede mejorar la velocidad de su sitio web o aplicación al proporcionar un acceso rápido a los datos de acceso frecuente.
Este tutorial le mostrará cómo usar Memcached desde una aplicación web.
Si no tiene una sección de WebApps en el Panel de control de su cuenta, entonces este tutorial no es adecuado para su entorno de alojamiento en particular. Puede ponerse en contacto con nosotros si necesita más ayuda.
La documentación oficial de Memcached se puede encontrar en https://github.com/memcached/memcached/wiki.
Si sigue esta guía, Memcached se instalará en el directorio /home/$USER/private/memcached de su cuenta. Deberá reemplazar $USER con el nombre de usuario real de su cuenta. Este nombre de usuario aparece en el panel izquierdo del Panel de control de la cuenta.
1. Cree un directorio para su instalación de Memcached
En esta guía, el directorio se llamará memcached en el directorio /private de la cuenta. Puede crear directorios a través del Administrador de archivos en el Panel de control de su cuenta, o haciendo clic en el ícono de carpeta junto al “Directorio de implementación” archivado en la sección Aplicaciones web del Panel de control al crear una nueva aplicación y usar “Crear”. botón en el cuadro de diálogo.
2. Crea una aplicación
Puede crear una instancia de aplicación para Memcached a través de la sección de aplicaciones web del panel de control de la cuenta.
Utilice la siguiente configuración:
Motor: Personalizado
Nombre: memcached
Dominio: un dominio de su elección
Subdominio: un subdominio de su elección
Ruta de acceso web: /no-existe/memcached
Puerto: el número de puerto se asigna automáticamente.
Memoria: valor predeterminado de la cuenta
Directorio de implementación: /private/memcached
Comando de inicio: /usr/bin/memcached -m 64 -s /home/$USER/private/memcached.sock -a 700 -c 256
Es importante configurar un directorio inexistente en el campo “Ruta de acceso web”. De lo contrario, la aplicación web podría interferir con el funcionamiento de su sitio web.
3. Activa la aplicación
Debe activar la aplicación presionando el botón rojo junto al nombre de la aplicación.
4. Habilite la extensión PHP de Memcached
Debe habilitar la extensión PHP de Memcached en el subdominio donde necesita usar Memcached. Puede habilitar la extensión a través de la sección Configuración de PHP en el Panel de control de la cuenta. Allí, haga clic en el botón “Administrar” al lado del subdominio. El botón para habilitar la extensión se encuentra en la página siguiente.
5. Configura tu aplicación o sitio web
Debe configurar su aplicación o sitio web para acceder a Memcached a través de un socket. El socket para acceder a Memcached es:
/home/$USUARIO/privado/memcached.sock
No olvide reemplazar $USER con el nombre de usuario real de la cuenta de alojamiento.
El proveedor debe proporcionar instrucciones sobre cómo configurar una aplicación específica.