Scripts

La ruta al intérprete de Perl es:

/usr/bin/perl

Sus scripts de Perl deben comenzar con esta línea:

#!/usr/bin/perl

Ejecutamos tanto Python 2.x como Python 3.x en nuestros servidores.

La ruta al intérprete predeterminado de Python 2.x es:

/usr/bin/python

Si desea utilizar Python 3.x, la ruta al intérprete es:

/usr/bin/python3

Your Python 2.x scripts need to begin with this line:

#!/usr/bin/python

The Python 3.x scripts should start with:

#!/usr/bin/python3

La ruta al binario de Sendmail es:

/usr/lib/sendmail

La ruta del sistema al intérprete de Ruby es:

/usr/local/bin/rubí

Sus scripts de Ruby deben comenzar con esta línea:

#!/usr/local/bin/rubí

  • La ruta completa del sistema a la carpeta superior de su cuenta de alojamiento (directorio de inicio) es:
/home/user_name
  • La ruta del sistema al directorio de su dominio principal es:
/home/user_name/www/www/

Ahí es donde debe guardar los archivos de su subdominio www principal (el contenido de su sitio http://www.su_dominio.com).

  • La ruta completa del sistema a su directorio privado es:
/home/user_name/private/

Puede obtener más información sobre su directorio privado y su uso en nuestro artículo Directorio privado.

Nota: Debe cambiar el nombre de usuario con su nombre de usuario real, p. /home/jane/www/www/.

CGI significa interfaz de puerta de enlace común. Los programas CGI se ejecutan en el servidor y generalmente se utilizan para procesar datos recibidos de un formulario web o para generar una página web con contenido dinámico. Los scripts CGI pueden estar escritos en un lenguaje de programación web, como Perl, Python, Ruby y TCL.

En nuestros servidores, puede almacenar sus scripts CGI en cualquier lugar dentro del espacio de su disco. No es necesario que estén en una carpeta en particular.

Asegúrese de incluir permisos ejecutables para los archivos de script. Los permisos como 775 y 755 funcionarán bien. Puede encontrar más información sobre los permisos de archivos en la sección Permisos de archivos y carpetas de nuestra documentación en línea.

Puede encontrar información actualizada sobre los paquetes de software instalados que están disponibles en nuestros servidores en la página de Información del sistema del Panel de control.

Junto a PHP y Perl, hay enlaces que leen más información; mostrarán los módulos instalados para el intérprete en particular.

Si un módulo que desea utilizar no aparece en la lista, háganoslo saber y comprobaremos si es posible instalarlo por usted.

La extensión PHP ionCube Loader está disponible en nuestros servidores. Puede habilitarlo para un dominio/subdominio específico a través de la sección Panel de control -> Configuración de PHP siguiendo estos pasos:

  1. Haga clic en el botón Administrar junto al dominio/subdominio.
  2. Marque la casilla junto a la extensión ionCube de la sección Extensiones.
  3. Haga clic en el botón Guardar cambios.

También puede habilitar ionCube Loader manualmente agregando la directiva de extensión respectiva a un archivo de configuración de PHP (php.ini). Dado que hay un binario de ionCube separado compilado para cada versión de PHP, debe habilitar la extensión de PHP que coincida con la versión de PHP utilizada por su(s) script(s) de la siguiente tabla:

Versión PHP php.ini directive
PHP 8.1 zend_extension=/usr/local/ioncube/ioncube_loader_lin_8.1.so
PHP 7.4 zend_extension=/usr/local/ioncube/ioncube_loader_lin_7.4.so
PHP 7.3 zend_extension=/usr/local/ioncube/ioncube_loader_lin_7.3.so
PHP 7.2 zend_extension=/usr/local/ioncube/ioncube_loader_lin_7.2.so
PHP 7.1 zend_extension=/usr/local/ioncube/ioncube_loader_lin_7.1.so
PHP 5.6 zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.6.so
PHP 5.3 zend_extension=/usr/local/ioncube/ioncube_loader_lin_5.3.so

Nota: ionCube Loader no es compatible con PHP 8.0.

Puede obtener más información sobre cómo editar su configuración de PHP en nuestro artículo Configuración de PHP.

Errores de “Carga fallida” de ionCube

Si encuentra algún error de carga de ionCube similar al que se detalla a continuación:

Error al cargar /usr/local/ioncube/ioncube_loader_lin_7.2.so: /usr/local/ioncube/ioncube_loader_lin_7.2.so: símbolo indefinido: zend_ce_countable

es posible que exista una discrepancia entre la versión de PHP utilizada por su secuencia de comandos y la versión de PHP utilizada para compilar la extensión ionCube. (Ejemplo: está ejecutando un script en un subdominio que trabaja con PHP versión 7.4, pero el módulo ionCube para PHP versión 7.2 está cargado en el archivo php.ini del subdominio).

Para corregir este error, asegúrese de haber habilitado la extensión ionCube Loader compilada para la versión de PHP que utiliza su secuencia de comandos.

Zend Guard Loader está disponible en nuestros servidores. Tenga en cuenta que solo admite PHP 5.6 y PHP 5.3, que se encuentran al final de su vida útil. No puede usar Zend Guard Loader para PHP 7.

Para habilitar Zend Guard Loader para PHP 5.6, debe agregar la siguiente línea de código a un archivo de configuración de PHP (php.ini) en su cuenta:

zend_extension = /usr/local/Zend/ZendGuardLoader.so

Si está utilizando PHP 5.3, debe cargar la siguiente extensión en un archivo de configuración de PHP (php.ini) en su cuenta para habilitar Zend Guard Loader:

zend_extension = /usr/local/Zend/ZendGuardLoader-5.3.so

Puede obtener más información sobre cómo cambiar la configuración de PHP en nuestro artículo Cambiar la configuración de PHP.

Puede manipular imágenes con sus scripts utilizando GD, ImageMagick(Imagick) y NetPBM.

GD

PHP está compilado con soporte GD en todos nuestros servidores. Puede usarlo directamente con sus scripts PHP.

ImageMagick (Imagick)

Puede habilitar la extensión PHP de ImageMagick para un dominio/subdominio a través de la sección Panel de control -> Configuración de PHP siguiendo estos pasos:

  1. Haga clic en el botón Administrar junto al dominio/subdominio donde desea usar ImageMagick.
  2. Marque la casilla junto a la extensión ImageMagick de la sección Extensiones.
  3. Haga clic en el botón Guardar cambios.

También se puede activar agregando manualmente la siguiente línea a un archivo de configuración de PHP (php.ini) en su cuenta:

extensión = imagick.so

Las instrucciones sobre cómo cambiar la configuración de PHP para su cuenta están disponibles en nuestro artículo Cambiar la configuración de PHP.

También puede usar los binarios de ImageMagick directamente. Se encuentran en este directorio:

/usr/local/bin/

Por ejemplo, las rutas completas a los archivos binarios de conversión y mogrificación de ImageMagick son:

/usr/local/bin/convert
/usr/local/bin/mogrify
NetPBM

La ruta a los binarios de NetPBM es:

/usr/local/netpbm/bin

Puede utilizar extensiones PHP personalizadas en nuestros servidores de alojamiento. El único requisito es que la extensión sea compatible con el sistema operativo del servidor (Linux 64-bit) y la versión PHP configurada para tu dominio/subdominio. Para usar una extensión de PHP personalizada, debe cargarla en el directorio privado de su cuenta de alojamiento y agregar la ruta absoluta al archivo de extensión en su configuración de PHP (php.ini) para su dominio/subdominio de la siguiente manera:

extensión = /home/tu_usuario/private/extensión_personalizada

Nota: Debe reemplazar su_nombre de usuario con el nombre de usuario del Panel de control de alojamiento y extensión.personalizada con el nombre de archivo exacto y la ubicación de la extensión personalizada en su cuenta.

Puede editar el archivo de configuración principal de PHP para su dominio/subdominio a través de la sección Configuración de PHP del Panel de control de hosting. Si desea obtener más información sobre los archivos de configuración de PHP admitidos en nuestros servidores, consulte nuestro artículo sobre archivos de configuración de PHP y prioridad.

Instalación de SourceGuardian

Si desea cargar archivos PHP cifrados con SourceGuardian, debe instalar SourceGuardian Loader. Las instrucciones paso a paso sobre el proceso de instalación están disponibles a continuación:

  1. Cree un archivo PHP (p. ej., phpinformation.php) con el siguiente contenido en el dominio/subdominio donde desea utilizar SourceGuardian Loader:

    <?php
        phpinfo();
    ?>

    Puede crear el archivo utilizando la interfaz Administrador de archivos del Panel de control de alojamiento.

  2. Puede hacer que SourceGuardian Loader sea compatible con la versión de PHP configurada para su dominio mediante SourceGuardian Loader Assistant. En la página de Loader Assistant, debe ingresar la URL del archivo PHP creado en el paso anterior (por ejemplo, http://your_domain.com/phpinformation.php) y hacer clic en el botón Detectar. Descargue el archivo SourceGuardian Loader provisto en su computadora, luego cárguelo en el directorio privado de su cuenta de alojamiento. Puede cargar el archivo usando la interfaz Administrador de archivos del Panel de control de alojamiento.
  3. Agregue la siguiente línea al archivo de configuración de PHP (php.ini) para su dominio/subdominio:

     extensión = /home/tu_usuario/private/extensión_personalizada
    Nota: Debe reemplazar tu_usuario con el nombre de usuario de su panel de control de hospedaje y la extensión_personalizada con el nombre exacto del archivo SourceGuardian Loader que descargó (por ejemplo, el nombre de la extensión SourceGuardian Loader para PHP 7.4 es ixed.7.4.lin).

    Los principales archivos de configuración de PHP para sus dominios/subdominios se pueden editar a través de la sección Configuración de PHP del Panel de control de hosting. Puede encontrar más información sobre los archivos de configuración de PHP en nuestro artículo sobre archivos de configuración y prioridad de PHP.

    Si FPM es el controlador de PHP para su dominio/subdominio, debe volver a cargar el proceso FPM Master para que la nueva extensión se cargue correctamente.
    Para verificar que SourceGuardian Loader se instaló correctamente, abra de nuevo la página SourceGuardian Loader Assistant , ingrese la URL del archivo PHP creado en el primer paso (por ejemplo, http://your_domain.com/info.php) y haga clic en Detectar botón. Se debe mostrar el siguiente mensaje:

    La última versión del cargador de SourceGuardian ya está instalada en su sistema y está lista para ejecutar scripts protegidos.

El lado del servidor incluye (SSI) es un lenguaje de secuencias de comandos del lado del servidor fácil de usar, cuyo uso principal es incluir el contenido de un archivo en otro de forma dinámica o ejecutar secuencias de comandos CGI.

Un par de pautas importantes que debe seguir:

1) Los comandos SSI siempre comienzan con <!–# y terminan con –> como:

<!–#directiva parámetro=”valor”–>

Tiene que haber comillas o espacio delante de –>

2) La página web que agrega la instrucción SSI para incluir otra página o programa DEBE terminar con .shtml o .sht en lugar de .html o .htm.

Algunos ejemplos de SSI:

1) Si desea insertar un archivo en otro, puede usar el comando incluir virtual. La URL de la página que desea insertar debe ser relativa a la página web actual en lugar de una URL completa. Por ejemplo:

<!--#include virtual="file.txt"-->

Este comando incluye el contenido de archivo.txt en su archivo. file.txt y el archivo SSI deben residir en la misma carpeta; observe cómo esta instrucción SSI usa una URL *relativa* en lugar de una URL COMPLETA. Es muy importante tener esto en cuenta al usar SSI. Y si su archivo.txt está en una subcarpeta llamada my_ssi, debe agregarlo de la siguiente manera:

<!--#include virtual="my_ssi/file.txt"-->

2) Si desea ejecutar un script CGI (en este caso, un script Perl) e incluir su salida en su página web, use el siguiente código:

<!--#exec cgi="name_of_your_cgi_script.pl"-->

3) Imprimir el tamaño de un archivo llamado archivo.html que reside en un subdirectorio llamado directorio es muy fácil:

<!--#fsize file="directory/file.html"-->

4) Para imprimir la fecha de última modificación de un archivo específico, puede utilizar:

<!--#flastmod file="directory/file.html"-->

5) Comando útil para la depuración:

<!--#printenv -->

Imprime una lista de todas las variables existentes y sus valores.

6) Variables:

Puede definir y usar fácilmente variables en sus scripts SSI. Por ejemplo, el siguiente comando define la variable PI y le asigna un valor de 3,14159265:

<!--#set var="PI" value="3,14159265"-->

Utilice el siguiente comando en caso de que desee imprimir el valor de PI:

<!--#echo var="PI"-->

Además de las variables del entorno CGI estándar, están disponibles para el comando echo, para if y elif, y para cualquier programa invocado por el documento.

DATE_GMT: la fecha actual en la hora del meridiano de Greenwich
DATE_LOCAL: la fecha actual en la zona horaria local.
DOCUMENT_NAME : el nombre de archivo (sin incluir los directorios) del documento solicitado por el usuario.
DOCUMENT_URI : la ruta URL (% decodificada) del documento solicitado por el usuario
LAST_MODIFIED – La última fecha de modificación del documento solicitado por el usuario
QUERY_STRING: la información que sigue al ? en la URL que hacía referencia a este script. Esta es la información de la consulta.

Por ejemplo, el siguiente comando imprime la última fecha de modificación del archivo actual:

<!--#echo var="LAST_MODIFIED"-->

7) Elementos de control de flujo

Los elementos básicos de control de flujo son:

<!--#if expr="test_condition"-->
<!--#elif expr="test_condition"-->
<!--#else -->
<!--#endif -->

El elemento endif finaliza el elemento if y es obligatorio.

Puede utilizar JavaScript con nuestro servicio. JavaScript no depende del servidor; depende del navegador y se puede utilizar con cualquier servicio de alojamiento.

ACTUALIZACIÓN a partir de diciembre de 2020: todos nuestros servidores ejecutan actualmente Debian Buster. Para tener el directorio actual/de trabajo como ruta de carga del módulo, solo puede usar el Método 2 que se describe a continuación.

Fecha: 15 de febrero de 2019

Este artículo es para explicar un próximo cambio en la configuración de Perl. Puede afectar a los scripts que cargan módulos desde el directorio de trabajo actual (cwd).

General

En 2016, los desarrolladores de Debian anunciaron que eliminarían gradualmente cwd (.) de la ruta de carga del módulo (@INC), ya que esta práctica es potencialmente peligrosa y puede permitir la ejecución de código malicioso en determinadas circunstancias. Se puede encontrar más información en las listas de Debian.

Tras este anuncio, la inclusión de (.) en la ruta de carga se ha hecho configurable en Debian Stretch: esta es la versión actual de Debian en nuestros servidores.

Con la próxima versión importante de Debian, la opción de dejar ‘.’ en la matriz @INC en todo el servidor dejará de estar disponible. Esto significa que la única forma de mantener este comportamiento sería configurarlo en los scripts de usuario. Es por eso que advertimos a nuestros usuarios de Perl: para asegurarse de que sus scripts no dependan de la inclusión del directorio actual en la ruta de carga del módulo.

Si tiene secuencias de comandos de Perl en su sitio, y especialmente si están hechas a medida, le recomendamos que las revise o consulte a sus desarrolladores, para asegurarse de que sus secuencias de comandos no se vean afectadas por la eliminación de (.) de @INC.

Configuración actual

El 9 de febrero de 2019, el directorio de trabajo actual (.) se eliminó de la ruta de búsqueda (@INC) en todos los servidores.

Volver a habilitar el comportamiento anterior

Si desea volver a habilitar el comportamiento como estaba antes del cambio de configuración, puede usar uno de los siguientes métodos:

Método 1: Cree en la carpeta privada de su cuenta un archivo vacío llamado PERL_USE_UNSAFE_INC (/home/$your_CP_username/private/PERL_USE_UNSAFE_INC)

Con este archivo en su lugar, todos sus scripts de Perl cargarán módulos desde el directorio actual, con la prioridad más baja. Tenga en cuenta que esto SOLO será posible hasta la actualización a Debian 10 Buster.

Método 2: Agregue esta línea al principio de su(s) secuencia(s) de comandos Perl:
use lib ‘.’;

Esta línea agrega el directorio actual al comienzo de la ruta de búsqueda de Perl (@INC). Sus scripts seguirán cargando módulos desde el directorio actual incluso después de la actualización a Debian 10 Buster.

La fecha límite

Aunque no podemos especificar una fecha límite exacta, ya que no podemos decir cuándo será la próxima actualización importante de Debian, recomendamos a nuestros usuarios que presten atención a este asunto y se aseguren de que sus scripts sean compatibles.