PHP

Esta familia de instancias le permite alojar sitios web dinámicos o estáticos utilizando PHP y una de las bases de datos disponibles.

Prerrequisitos

Debe tener un cliente de transferencia de archivos que pueda subir archivos a través de SFTP (como FileZilla), o git y un cliente SSH para empujar e implementar código desde la línea de comandos.

Soporte de versiones

Simple Hosting actualmente soporta PHP 7.1 y PHP 7.2 (versión por defecto y recomendada).

Funcionamiento general

Su instancia puede alojar varios sitios web PHP o HTML estáticos. Para cada uno de sus sitios web, puede registrarlos como un nuevo Sitio en su instancia de Simple Hosting.

Cada sitio tiene su propia carpeta dentro de su instancia. Los archivos subidos a estas carpetas a través de sFTP se servirán en los URLs correspondientes. Cada sitio también obtiene su propio repositorio git, por lo que puede empujar y desplegar código a cada uno de ellos de forma independiente.

El número de peticiones que su instancia puede servir sólo está limitado por su tamaño, el cual se puede actualizar en cualquier momento para acomodar a más visitantes. También puede utilizar el servicio de caché HTTP integrado gratuito de la plataforma para obtener el máximo rendimiento.

También puede crear un número ilimitado de bases de datos y usuarios de bases de datos en cada instancia (por ejemplo, una base de datos y un usuario de base de datos por Sitio). Sólo está limitado por el espacio de almacenamiento disponible en su instancia, que también puede aumentar en cualquier momento. Todas las bases de datos se pueden gestionar desde el panel de control Web o los clientes de línea de comando a través de la consola de emergencia SSH.

Cada instancia también obtiene su propio nombre de usuario (generado por la plataforma) y contraseña (elegida por usted). Estas credenciales se utilizan para acceder a todas las interfaces de gestión dedicadas de la instancia:

  • Panel de control Web y consola SSH para la gestión de procesos, bases de datos, registros y archivos.
  • sFTP y git+SSH para la gestión de archivos y dependencias

También puede iniciar una sesión en sFTP, git y SSH usando las claves SSH en lugar de la contraseña.

Se pueden encontrar más detalles en las siguientes secciones.

Gestionar las dependencias

Puede utilizar Composer para gestionar las dependencias en Simple Hosting añadiendo los archivos composer.json y composer.lock a la carpeta .../htdocs de su proyecto.

Para que Simple Hosting instale sus dependencias, necesitará utilizar el flujo de trabajo Git+SSH para implementar su código, en lugar de subir sus archivos con sFTP.

Instrucciones:

  1. Coloque su archivo composer.phar en la raíz de la carpeta de su proyecto.
  2. Ejecute Composer para instalar las dependencias localmente
  3. Añada ambos archivos Composer, composer.json y composer.lock a su árbol git
  4. Empuje su código al repositorio git de su Sitio
  5. Despliegue el código con SSH

Consulte nuestro tutorial de Composer para ver un ejemplo completo.

Sitios

Cada sitio que usted cree a través de la interfaz de administración de Gandi generará un nuevo directorio en su instancia.

Usted subirá sus archivos vía sFTP a su instancia en el directorio de su Sitio.

A continuación se muestra un ejemplo de una ruta absoluta al directorio htdocs de un Sitio:

/lamp0/web/vhosts/www.yourdomainname.com/htdocs/

donde «www.yourdomainname.com» es el nombre del Sitio que especificó en su página de administración de instancia.

Registros (Logs)

Puede ver sus registros de PHP y Apache desde el Panel de Control de su instancia, o desde la consola SSH o sFTP.

Registros de Apache:

error.log: Contiene todos los errores relacionados con el servidor web Apache. Se recomienda verificar estos registros regularmente para detectar posibles problemas de configuración (directivas incorrectas sobre .htaccess, archivos de índice perdidos, etc.).

Registros PHP:

admin-error.log: Registros PHP ejecutados en la parte admin de su instancia. fpm.log: Registros relacionados con el intérprete PHP. Es aquí donde se puede ver si se alcanza el número máximo de procesadores PHP. www-error.log:Registros PHP ejecutados en la parte pública de su instancia.

Entendiendo los registros

Nota

Los registros están en la zona horaria UTC por defecto.

Registros de Apache

[Thu Jun 14 12:08:45.199853 2012] [mpm_event:notice] [pid 186:tid 3557842618176] AH00489: Apache/2.4.1 (Unix) configured -- resuming normal operations
[Thu Jun 14 12:08:45.199869 2012] [core:notice] [pid 186:tid 3557842618176] AH00094: Command line: '/usr/sbin/apache2 -d /srv/data/.config/apache -f /srv/data/.config/apache/apache2.conf -D lamp0-1'
[Thu Jun 14 15:08:45.213486 2012] [mpm_event:notice] [pid 186:tid

Estas líneas indican que el servidor web se ha iniciado.

Registros PHP

[08-Jun-2012 12:56:29] WARNING: [pool www] server reached max_children setting (x), consider raising it

Esta alerta ocurre cuando PHP-FPM ha alcanzado el número máximo de procesos simultáneos para PHP. El número máximo de procesos simultáneos se define en función del tamaño de su instancia (2 en un paquete S, 4 en un M, 8 en un L….). Si este error ocurre con demasiada frecuencia, debería considerar aumentar el tamaño de su instancia Simple Hosting. Cuando usted vea [pool www], es el número de procesos que se ejecutan en la parte pública de su instancia,[pool admin] denota la parte administrativa de los procedimientos.

[05-Jun-2012 09:08:36] WARNING: [pool admin] 'user' directive is ignored when FPM is not running as root

Esta alerta no es un error y puede ser ignorada.

Bases de datos

Puede elegir entre tres tipos de bases de datos: MySQL, PostgreSQL o MongoDB.

Puede gestionar todos ellos a través de sus interfaces de gestión web (PHPMyAdmin, phpPgAdmin o RockMongo, respectivamente) o a través de sus interfaces de línea de comando, accesibles a través de la consola SSH.

MySQL

MySQL 5.7 está disponible para usar con instancias PHP en Simple Hosting.

Puede conectarse al servicio de base de datos MySQL en localhost. El usuario por defecto es root y no se requiere ninguna contraseña por defecto. Sin embargo, debe crear credenciales seguras para su uso real. También puede utilizar la base de datos default_db para configuraciones y pruebas rápidas.

Puede crear tantos usuarios y bases de datos como necesite; sólo está limitado por su espacio en disco, que puede aumentar en cualquier momento hasta 1 TB.

Puede administrar su base de datos MySQL con las herramientas estándar de shell (mysql, mysqldump, etc.) a través de la consola SSH, o desde la consola de administración web con PHPMyAdmin. Consulte el artículo de referencia sobre la administración de MySQL en Simple Hosting para obtener más información.

Las instancias PHP vienen con librerías preinstaladas para acceder a su base de datos MySQL desde su código:mysql, mysqli y PDO.

A continuación se muestra un ejemplo de código PHP minimalista para probar la conexión de la base de datos en Simple Hosting utilizando la configuración de conexión por defecto:

index.php

<?php

  function test_mysql_conn() {
    $mysql_server = 'localhost';
    $mysql_user = 'root';
    $mysql_pass = '';
    $mysql_db = 'default_db';

    $conn = new mysqli($mysql_server, $mysql_user, $mysql_pass, $mysql_db);
    if ($conn->connect_error) {
      error_log("Connection to MySQL failed: " . $conn->connect_error);
      return "NOT WORKING";
    }
    return "OK";
  };

?>
<html>
  <head>
    <title>PHP MySQL on Simple Hosting</title>
  </head>
  <body>
    <p>MySQL connection: <?php echo test_mysql_conn(); ?>.</p>
  </body>
</html>

PostgreSQL

PostgreSQL versión 9.4 está disponible para Simple Hosting con PHP.

El servicio PostgreSQL de su instancia será accesible en localhost, en el puerto 5432.

Por defecto, puede usar el usuario hosting-db sin contraseña para conectarte a la base de datos por defecto, llamada postgres. Le recomendamos que cree credenciales seguras para su uso real.

Puede crear tantos usuarios y bases de datos como necesite; sólo está limitado por su espacio en disco, el cual se puede aumentar en cualquier momento hasta 1 TB.

Puede administrar su base de datos PostgreSQL con los comandos de shell estándar a través de la consola SSH (psql, pg_dump, etc.), o desde el Panel de Control usando phpPgAdmin. Consulte el artículo de referencia sobre la administración de PostgreSQL en Simple Hosting para obtener más información.

Las instancias PHP vienen con librerías preinstaladas para acceder a su base de datos PostgreSQL desde su código: «php-postgresql y PDO.

A continuación se muestra un ejemplo de código PHP minimalista para probar la conexión de la base de datos en Simple Hosting utilizando la configuración por defecto:

index.php

<?php

  function test_pg_conn() {
    $pg_conn_string = "host='localhost' user='hosting-db' dbname='postgres'";
    $conn = pg_connect($pg_conn_string);
    $conn_status = pg_connection_status($conn);
    if ($conn_status === PGSQL_CONNECTION_OK) {
      return "OK";
    } else {
      error_log("Connection to PostgreSQL failed: " . $conn_status);
      return "NOT WORKING";
    };
  };

?>
<html>
  <head>
    <title>PHP PostgreSQL en Simple Hosting</title>
  </head>
  <body>
    <p>PostgreSQL connection: <?php echo test_pg_conn(); ?>.</p>
  </body>
</html>

MongoDB

MongoDB 3.6 es la versión actualmente disponible para instancias PHP en Simple Hosting.

En las instancias de tipo MongoDB, el servicio de base de datos MongoDB está disponible en localhost en el puerto 27017.

No se requiere ningún usuario ni contraseña de forma predeterminada, pero debe crear credenciales seguras para su uso real.

Puede crear tantos usuarios y bases de datos como necesite; sólo está limitado por su espacio en disco, el cual puedes aumentar en cualquier momento hasta 1 TB.

Puede administrar su base de datos MongoDB desde el shell mongo estándar a través de la consola SSH, o desde el panel de administración Web con Adminer. Consulte el artículo de referencia sobre la gestión de MongoDB en Simple Hosting para obtener más información.

Tendrá que instalar la librería de cliente de MongoDB usted mismo para usar el controlador php-mongodb preinstalado en su instancia.

La forma recomendada de hacer esto es usando Composer: añada mongodb/mongodb ^1.0.0 como una dependencia y luego implemente su código con git+SSH.

A continuación se muestra un ejemplo de código minimalista para probar la conexión de la base de datos en Simple Hosting a partir de PHP 5.6:

composer.json

{
  "require": {
    "mongodb/mongodb": "^1.0.0"
  }
}

index.php

<?php

  require 'vendor/autoload.php';

  function test_mongo_conn() {
    $mongo_url = 'mongodb://localhost:27017';
    $mongo_conn = new MongoDB\Client($mongo_url);
    if ($mongo_conn) {
      return "OK";
    } else {
      return "NOT WORKING";
    };
  };

?>
<html>
  <head>
    <title>PHP 5.6 MongoDB en Simple Hosting</title>
  </head>
  <body>
    <p>MongoDB connection: <?php echo test_mongo_conn(); ?>.</p>
  </body>
</html>