Tengo un proyecto que se ejecuta en win7 (con xampp instalado – zend framework 1.10.3). Pero cuando me mudé a Ubuntu, tuve un problema.
Mi proyecto de estructura es :

Myproject
    application
    library
        Zend
    include
        application.ini
    etc...
    index.php

Aquí está mi index.php:

<?php

//Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application'));

//Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

define('APP_ROOT', realpath(dirname(dirname(__FILE__))));

//Ensure library/is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

require_once 'include/constant.inc.php';
require_once('include/class.phpmailer.php');

//set constant in Zend_Registry
//require_once 'Zend/Registry.php';
//Zend_Registry::set('const', $cfg);

/** Zend_Application */
require_once 'Zend/Application.php';

//Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/../include/application.ini'
);
$application->bootstrap()
            ->run();

Y aquí está mi include/aplicación.ini:

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.date.timezone = "Europe/London"
;includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = ""
;resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
;resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""
autoloaderNamespaces.Zendex = "Zendex_"
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = 
resources.db.params.dbname = qtcms
resources.db.params.charset = "utf8"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
resources.view[] =
;resources.layout.layout = "layout"
admin.resources.layout.layout = "admin"
resources.view.doctype = "XHTML1_STRICT"
resources.view.helperPath    = APPLICATION_PATH "/helpers/views/"
resources.view.helperPathPrefix = "Zend_View_Helper_"
;resources.view.params.default.basePath                            = APPLICATION_PATH "/layouts/default/"
;resources.view.params.default.layout                              = "layout"
;resources.view.params.default.layoutPath                          = APPLICATION_PATH "/layouts/default/default/"
;resources.view.params.admin.basePath                            = APPLICATION_PATH "/layouts/admin/"
;resources.view.params.admin.layout                              = "layout"
;resources.view.params.admin.layoutPath                          = APPLICATION_PATH "/layouts/admin/default/"
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Con estas configuraciones, yo no tengo ningún problema en tener mi proyecto se ejecuta en windows (con xampp fue instalada).

En ubuntu, tuve xampp instalado siguiendo los pasos de esta guía:

http://humanlanguage.wordpress.com/2006/12/03/install-xampp-on-ubuntu/

De acuerdo a la orientación, he creado un enlace simbólico (si es que no me equivoco) a la vinculación de mi /home/truong/webdev carpeta con /opt/lampp/htdocs carpeta.(con «truong» es mi nombre ^_^)
Luego me mudé a mi proyecto a /home/truong/webdev. Después de eso, puedo ejecutar mi proyecto desde el navegador a la ULR : localhost/webdev/miproyecto
y he tenido este error:

Warning: require_once(Zend/Application.php) [function.require-once]: failed to open stream: No such file or directory in /home/truong/webdev/qtcms/index.php on line 28
Fatal error: require_once() [function.require]: Failed opening required 'Zend/Application.php' (include_path=':.:/opt/lampp/lib/php') in /home/truong/webdev/qtcms/index.php on line 28

Parece que el sistema no podía encontrar mi biblioteca/Zend carpeta.

Me preguntaba que debería establecer la ruta para mi Zend biblioteca en php.ini manualmente, pero luego pensé que no era necesario, porque me había fijado en el index.php

//Ensure library/is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));

He buscado muchas veces en Internet pero no he encontrado nada útil.
Por favor me ayudan a resolver este problema…
Muchas gracias.
ps: mi appologize para mi mala inglés.
quangtruong1985

Puestos: 1
Registrado: Jue Ene 06, 2011 4:24 pm

  • has comprobado los permisos de / propietario de la carpeta de la biblioteca?
  • Establecer permisos para las carpetas resuelto el problema. Muchas gracias.
InformationsquelleAutor Nấm Lùn | 2011-01-07

4 Comentarios

  1. 1

    Parece que su ruta de la biblioteca no es en realidad añadido a su ruta.
    es posible que desee comprobar esto a través de print_r(get_include_path());

    He tenido algunos problemas con realpath en el pasado, así que tal vez esta es la causa de su problema.
    Usted podría tratar de

    set_include_path(implode(PATH_SEPERATOR, array(
    dirname(__FILE__) . '/library',
    get_include_path(),
    )));

    para evitar realpath

  2. 0

    Parece que comentó el incluir la directiva en su aplicación.ini.
    Es esta: ;includePaths.library = APPLICATION_PATH "/../library". Si se quita el ‘;’ al principio de la línea que se debe trabajar.

    En su máquina Windows hizo agregar la ruta de acceso para el Zend Framework para php.ini? Si es así eso es probablemente la razón por la que no funcionan en Linux.

    Usted también tiene que considerar lo siguiente: si usted tiene una instalación de XAMPP en su máquina windows, PERA está instalado por defecto y el zend framework viene con él.

    EDITAR:
    Algunos de gramática.

  3. 0

    Se puede comprobar si la ruta de la librería en php.archivo ini se comentó,

    ;include_path = «.;c:\php\includes;d:..\zendframework\library»

    si, comentó, por favor, elimine el punto y coma y reinicie el servidor.

  4. 0

    Mi php.ini directiva fue como este

    include_path = «.;C:\xampp\php\PEAR;C:\zend\zendframework1116;C:\zend\zendframework1116\library;»

    extracción ; en el final de la ruta, solucionado mi problema

Dejar respuesta

Please enter your comment!
Please enter your name here