Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Zend] Przeniesienie projektu na server.
Forum PHP.pl > Forum > Przedszkole
cykcykacz
Witam stworzyłem projekt za pomocą Zend Tool, korzystając z tutoriali zacząłem tworzyć aplikację. Wszystko ładnie działa na serwerze lokalnym natomiast po skopiowaniu plików na serwer który kupiłem i otworzeniu adresu w przeglądarce dostaję komunikat o błędzie:
Kod
Fatal error: Cannot redeclare class Zend_Loader in /home/szymon/ftp/library/Zend/Loader.php on line 31

Ścieżka do foldera z plikiem index.php wygląda tak:
/testy/public/index.php
Bilotekę Zend wgrałem do katalogu:
/testy/library/Zend

Mój plik index.php
CODE

<?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'));

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

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

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

Oraz application.ini
Kod
...
includePaths.library = APPLICATION_PATH "/../../library"
...


Proszę o pomoc, jeżeli nie jasno przedstawiłem problem mogę podać inne informacje.
batman
Wygląda na to, że masz dwa razy wrzucone na serwer klasy ZF. Prawdopodobnie w /testy/library/Zend oraz /testy/Zend.
Usuń z application.ini includePaths i powinno zacząć działać.
cykcykacz
Warning: include_once(Zend/Application/Module/AutoLoader.php) [function.include-once]: failed to open stream: No such file or directory in /home/szymon/ftp/testy/library/Zend/Loader.php on line 146

Warning: include_once() [function.include]: Failed opening 'Zend/Application/Module/AutoLoader.php' for inclusion (include_path='/home/szymon/ftp/testy/application/../../library:/home/szymon/ftp/testy/library:/home/szymon/ftp/testy/application:.:/usr/local/lib/php') in /home/szymon/ftp/testy/library/Zend/Loader.php on line 146

Fatal error: Class 'Zend_Application_Module_AutoLoader' not found in /home/szymon/ftp/testy/application/Bootstrap.php on line 10

? rolleyes.gif
batman
Skoro tak, to zamień realpath(dirname(__FILE__) . '/../library') na realpath(dirname(__FILE__) . '/../../library').
cykcykacz
Obecnie tak wygląda plik index.php:
CODE

<?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'));

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

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

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

Tak plik application.ini :
CODE

[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
autoloadernamespaces.0 = "Zend_"
autoloadernamespaces.1 = "forms_"
resources.layout.layoutpath = APPLICATION_PATH "/layouts"

Dostaję taki komunikat:
Kod
Warning: require_once(Zend/Application.php) [function.require-once]: failed to open stream: No such file or directory in /home/szymon/ftp/testy/public/index.php on line 19

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Application.php' (include_path=':/home/szymon/ftp/testy/application:.:/usr/local/lib/php') in /home/szymon/ftp/testy/public/index.php on line 19

sciana.gif
mortus
Witam.
Sam niedawno chciałem postawić aplikację ZF na home.pl. Okazało się, że home.pl ma własny, autorski serwer, który nie daje nam możliwości przejścia z katalogu publicznego do katalogu wyżej. Jeżeli zatem twój projekt znajduje się w katalogu publicznym, to już masz odpowiedź na wszystkie pytania. Nie wiem, czy coś się zmieniło, ale jeśli nie, to typowa struktura katalogów aplikacji ZF nie ma na home.pl prawa bytu. No chyba, że w podkatalogu katalogu publicznego (tego nie sprawdzałem), ale wtedy zarówno biblioteki, jak i same pliki aplikacji stają się widoczne dla wszystkich i trzeba je zabezpieczać w .htaccess. Zresztą batman powinien coś o tym wiedzieć.
Mam nadzieję, że pomogłem.
cykcykacz
A na nazwa.pl?
Plik htacces:
Kod
SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]


Jeżeli skasuję htacces mam białą stronę.
batman
~cykcykacz
Pokaż całą strukturę aplikacji (drzewo). Bez tego możemy jedynie zgadywać co się dzieje. Oraz napisz na jaki hosting wrzucasz te pliki.

~mortus
Z home.pl dałem sobie spokój właśnie przez to, że nie można było zachować domyślnej struktury katalogów. Nie jest trudne przerobić projekt tak, by działał na home.pl, jednak fakt, iż wszystkie moje pliki są wystawione na świat powoduje, że trzymam się od tego hostingu z daleka. Wiem, że można użyć .htaccess, ale jestem tylko człowiekiem, i mogę się pomylić lub o czymś zapomnieć.
mortus
Wiem, że nie jest problemem dopasowanie aplikacji ZF do home.pl, ale trzeba trzymać wszystko w katalogu publicznym i ingerować w domyślną strukturę aplikacji ZF. Mnie też się to nie podobało i dlatego zrezygnowałem z home.pl. Myślę, że problem kolegi może być związany z wybranym hostingiem. Wyczytałem wtedy, że na nazwie jest tak samo, i z tego powodu nawet nie próbowałem.
cykcykacz
Struktura katalogów:
/Testy
-------/application
--------------------/configs/aplication.ini
--------------------/controllers
--------------------/forms
--------------------/layouts
--------------------/models
--------------------/plugins
--------------------/views
---------------------------/helpers
---------------------------/scripts
---------------------------/validators
-------/library/Zend
-------/public/index.php
Tak wygląda struktura katalogów.
Mam hosting wykupiony na nazwa.pl.
Ten temat może pomoże smile.gif http://zend-framework.pl/forum/viewtopic.php?pid=5075
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.