ZF : Require_once /Zend/Application.php werkt niet
Ik loop tegen een probleem aan waar ik al een dag naar kijk, maar er niet uitkom. Ik hoop dat mensen hier roepen 'ja, duh, dat is .....'.
Situatie :
- Server 1 met een ZF applicatie, draaiend onder Ubuntu 10.04.4 LTS, Apache2 en PHP 5.2.10-2ubuntu6.5, Zend Engine 2.2.0
- Server 2 met dezelfde ZF applicatie, draaiend onder Ubuntu 12.04.1 LTS, Apache 2 en PHP 5.3.10-1ubuntu3.5, Zend Engine 2.3.0
Server 1 draait prima, Server 2 moet een back-up-versie van 1 worden. Hierop alles geinstalleerd, alleen nu gaat het in index.php mis bij het requieren van de Zend/Application.php. Ik krijg in m'n logfiles de melding
[Fri Jan 25 11:09:54 2013] [error] [client xxx.xx.xx.x] PHP Warning: require_once(1): failed to open stream: No such file or directory in /srv/www/vhosts/supportal/public/index.php on line 36
[Fri Jan 25 11:09:54 2013] [error] [client xxx.xx.xx.x] PHP Fatal error: require_once(): Failed opening required '1' (include_path='/srv/www/vhosts/supportal/library:.:/usr/share/php:/usr/share/pear') in /srv/www/vhosts/supportal/public/index.php on line 36
Al gechecked :
- namen scripts (hoofdletters, etc)
- of de file bestaat (file_exist in dezelfde index.php uitgevoerd, bestand bestaat)
- basedir (immers, wijziging voor zover ik weet tussen de 2 verschillende PHP-versies). Deze in de virtuele site aangemaakt en gechecked, staat voor deze site op : open_basedir /srv/www/vhosts/supportal
- leesrechten op scripts
Het gaat dus mis met het mogen inlezen van Application.php, is mijn conclusie. Maar waarom, daar ben ik nog niet achter.
Stukjes code :
index.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
ini_set('memory_limit', '256M');
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', (getenv('APPLICATION_PATH') ? getenv('APPLICATION_PATH') : realpath(dirname(__FILE__) . '/../application')));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once ("Zend/Application.php")
// Load external script to read excel
require_once realpath(dirname(__FILE__) . '/../scripts/excel_reader/excel_reader2.php');
require_once realpath(dirname(__FILE__) . '/../scripts/mimetypes.php');
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()->run();
De door de server teruggemelde info vlak voordat hij de require_once gaat proberen uit te voeren :
Het application path is /srv/www/vhosts/supportal/application
Het include path is gezet naar /srv/www/vhosts/supportal/library:.:/usr/share/php:/usr/share/pear
Iemand een idee ?
Groeten,
Andr
ini_set('memory_limit', '256M');
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', (getenv('APPLICATION_PATH') ? getenv('APPLICATION_PATH') : realpath(dirname(__FILE__) . '/../application')));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once ("Zend/Application.php")
// Load external script to read excel
require_once realpath(dirname(__FILE__) . '/../scripts/excel_reader/excel_reader2.php');
require_once realpath(dirname(__FILE__) . '/../scripts/mimetypes.php');
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()->run();
De door de server teruggemelde info vlak voordat hij de require_once gaat proberen uit te voeren :
Het application path is /srv/www/vhosts/supportal/application
Het include path is gezet naar /srv/www/vhosts/supportal/library:.:/usr/share/php:/usr/share/pear
Iemand een idee ?
Groeten,
Andr
Gewijzigd op 28/01/2013 12:33:18 door Andre Rotgans
Puntkomma ontbreekt op regel 21.
Eh, ok, dat is/was een foutje bij het weghalen van wat debug-lines. Die staat er in de originele code wel.
gr
André
Waar treedt die melding precies op? Er staat: line 36. Maar waar is dat precies in het stuk dat je meestuurt? (Daar is regel 36 een lege regel.)
Dat was bij de require_once van de Application.php. Na een forse herinstallatie doet ie dat inmiddels (vreemd genoeg, dit had ik al een keer eerder gedaan) wel ok. alleen blijft nu in een eindeloze loop hangen na het starten van de bootstrap. Dus het initiële probleem is op onduidelijke manier opgelost.