Article ID: 5460, created on May 7, 2009, last review on Aug 12, 2014

  • Applies to:
  • Plesk Sitebuilder 4.x for Linux/Unix

Síntomas

Cuando intenta publicar un sitio aparecen los siguientes errores:

The site cannot be published to the specified location.

The specified site location does not support modules data storage. SQLite version 2.x must be installed at the target server. Please contact the server administrator.

Causa

Existen unos requisitos especiales para la publicación en un servidor. Consúltelos en http://sp.parallels.com/es/products/sitebuilder/reqs.

Esta lista incluye el soporte para sqlite (2.x, soporte para codificación UTF-8) para PHP. Si la ubicación donde se realiza la publicación no tiene instalada la extensión apropiada de SQLite 2.x  para PHP, cuando intente realizar la publicación obtendrá este error.

Resolución

En el servidor debería tener instaladas 2 bibliotecas de sqlite2 con el debido soporte de codificación UTF-8 para sqlite 2.x.

El paquete de bibliotecas de SQLite puede instalarse directamente en el servidor a través del programa de actualiación automatizada del sistema. Por ejemplo, con la ayuda del comando 'yum':

# yum install sqlite2

También lo encontrará en uno de los recursos RPM  como http://rpm.pbone.net o http://rpmfind.net/.

Por lo que respecta al soporte de codificación UTF-8 de sqlite 2.x para PHP, en el servidor debería tener instalado el paquete php-sqlite apropiado que incluye la extensión sqlite.so requerida. Puede intentar instalarlo con la ayuda de 'yum' o 'apt-get' (en servidores Debian y Ubuntu). Por ejemplo, para php5:

 # yum install php-sqlite
 # apt-get install php5-sqlite (en servidores Ubuntu y Debian)

Si no encuentra los paquetes apropiados, puede compilar la extensión desde las fuentes de SQLite. A continuación le ofrecemos algunas indicaciones sobre el proceso de compilación de sqlite.so con soporte para codificación UTF-8.

A tener en cuenta: para esta operación es necesario tener instalados los siguientes paquetes: tar, php, php-devel.

Estas indicaciones son instrucciones generales y pueden variar en función de la configuración y la instalación del SO.

A continuación detallamos el proceso paso a paso:

  1. Descargue el paquete fuente. Puede descargarlo en http://pecl.php.net/package/SQLite.

    # wget http://pecl.php.net/get/SQLite-1.0.3.tgz
    o
    # pear download sqlite

    Si el host de publicación tiene una arquitectura x86_64, le sugerimos usar los archivos fuente disponibles en
    http://svn.php.net/repository/php/php-src/branches/PHP_5_3/ext/sqlite/ y comprobar que la biblioteca SQLite tiene la versión 2.8.17 o posterior.

  2. Descomprima SQLite-1.0.3.tgz en el directorio SQLite-1.0.3:

    # tar -xzf SQLite-1.0.3.tgz

  3. Vaya al directorio SQLite-1.0.3

    # cd SQLite-1.0.3

  4. Es necesario disponer de soporte para codificación UTF-8 para la extensión sqlite.so, por lo que deberá realizar la siguiente modificación:

    Edite el archivo SQLite-1.0.3/libsqlite/src/main.c y cambie esta sección

    #ifdef SQLITE_UTF8
    const char sqlite_encoding[] = "UTF-8";
    #else
    const char sqlite_encoding[] = "iso8859";
    #endif

    a

    //#ifdef SQLITE_UTF8
    const char sqlite_encoding[] = "UTF-8";
    //#else
    //const char sqlite_encoding[] = "iso8859";
    //#endif

    Comente todas las cadenas de texto, a excepción de la referente a la codificación UTF-8.

  5. Busque el archivo binario phpize y ejecútelo. La ubicación de este archivo puede variar. La ruta estándar es /usr/bin/phpize. Compruebe que está en el directorio SQLite-1.0.3 y emita el siguiente comando:

    # /usr/bin/phpize (la ruta a phpize puede variar)

    Si dicho archivo no existe, intente buscarlo ejecutando los siguientes comandos:

    # whereis phpize
    # locate phpize|grep bin

  6. Busque la ubicación del archivo php-config. Debería ser la misma que la del archivo phpize. Ejecute los siguientes comandos:

    # ./configure --with-sqlite --with-php-config=/usr/bin/php-config (path to php-config can be different)
  7. Ejecute el comando 'make':

    # make

    Si aparece algo parecido a:

    "error: `BYREF_NONE' undeclared"

    será necesario editar sqlite.c y comentar la siguiente línea:

    /* static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE }; */

    Cambie también las líneas

    function_entry sqlite_functions[] = {
    PHP_FE(sqlite_open, arg3_force_ref)
    PHP_FE(sqlite_popen, arg3_force_ref)


    a

    function_entry sqlite_functions[] = {
    PHP_FE(sqlite_open, third_arg_force_ref)
    PHP_FE(sqlite_popen, third_arg_force_ref)

  8. # make
  9. # make install
  10. # cp modules/sqlite.so /usr/lib/php/modules (la ruta a la carpeta de módulos puede variar). De hecho, 'make install' debería copiar la extensión a la ubicación adecuada para así poder evitar la realización de esta operación.
  11. Cree un archivo en /etc/php.d/ denominado sqlite.ini o añada la extensión sqlite.so directamente al archivo php.ini. En él, escriba :

    ; Enable sqlite extension module
    extension=sqlite.so
  12. Reinicie el servicio Apache ejecutando:

    # /sbin/service/httpd restart
    o
    # /etc/init.d/httpd restart

Información Adicional

Artículos relacionados:

Soporta Parallels Plesk Sitebuilder SQLite 3.x?

Advertencia sobre soporte de codificación UTF-8 para SQlite

fad6dc0c8e983c17ae70a51ac7952cd0 56797cefb1efc9130f7c48a7d1db0f0c d055be4fdc562a8ecb8e6d0bf419f946 ea6a61e571a858aa6019ceb068ea403a

Email subscription for changes to this article
Save as PDF