Uploadare Progetto Zend Framework su Hosting A*u*a

Salve,

ho appena finito di realizzare un progetto con il framework della Zend.

Ora vorrei trasferirlo su un hosting di A*u*a, quali sono i passaggi per far funzionare tutto??

grazie.

inviato 7 anni fa
C4rLoS
X 0 X

niente di particolare, devi uploadare anche la cartella library del framework

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

niente di particolare, devi uploadare anche la cartella library del framework

 :bye:

L'ho appena fatto. Questa è la struttura che si presenta, dopo l'upload delle cartelle:

 /

 /application

   /models

   /controllers

   /views

 /data

 /cgi-bin

 /library

   /zend

 /public

   /index.php

   /.htaccess

e questo il messaggio di errore che ricevo:

Warning: require_once(Zend/Loader.php) [function.require-once]: failed to open stream: No such file or directory in /web/htdocs/www.miodominio.it/home/library/Zend/Loader/Autoloader.php on line 24

 

risposto 7 anni fa
C4rLoS
X 0 X

riporta il codice di index.php  :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Ciao...

faccio prima una premessa.

sembra tutto funzionare se il controllers "IndexControllers.php" contiene un semplice comando

echo "Test Framework Zend".

Posto il codice:

require_once 'Zend/Controller/Action.php';

class IndexController extends Zend_Controller_Action
{
    public function indexAction()
   {
 echo "Test Framework Zend";
    }
}

al contrario, se è presente altro, tipo un collegamento ad un Model il risultato cambia.

Posto Codice:

class IndexController extends Zend_Controller_Action
{
    public function indexAction()
   {
      $this->view->pageTitle = 'Paesidelmondo Application Example';
      $this->view->bodyTitle = '<H1>Paesidelmondo</H1>';
     $this->view->bodyContent = 'Ciao Mondo';
      $paesi = new Paesi();
      $this->view->paesi = $paesi->fetchLatest();
    }
}

Questo è il msg di errore che visualizzo:

exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in /web/htdocs/www.miodominio.it/home/library/Zend/Controller/Dispatcher/Standard.php:241
Stack trace:
#0 /web/htdocs/www.miodominio.it/home/library/Zend/Controller/Front.php(936): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /web/htdocs/www.miodominio.it/home/public/index.php(45): Zend_Controller_Front->dispatch()
#2 {main}

Cosa può essere??

Questo è il mio index.php

<?php 
try { 
  // full error reporting (you can actually omit this because we also set this in php.in
  error_reporting(E_ALL|E_STRICT); 
  date_default_timezone_set('Europe/Rome');
  define('ZEND_ROOT', '/web/htdocs/www.miodominio.it/home/');
  set_include_path(ZEND_ROOT.'library'.PATH_SEPARATOR.get_include_path());    //LIBRERIA ZEND
  set_include_path(ZEND_ROOT.'application/models'.PATH_SEPARATOR.get_include_path());    //MODELLI DI CONN.DB
  
  //BLOCCO 2
  //includes: (remember the include_path in your php.ini? its used here) 
  //require_once('Zend/Loader.php');  deprecato
  require_once('Zend/Loader/Autoloader.php');
  $loader = Zend_Loader_Autoloader::getInstance();
   
  //load the classes 
  //the following translates into 'include(Zend/Controller/Front.php)'
  $loader->setFallbackAutoloader(true);
  $loader->suppressNotFoundWarnings(false);

  //configure the front controller (everything start here!) 
  $controller = Zend_Controller_Front::getInstance(); 
  $controller->setControllerDirectory(ZEND_ROOT.'application/controllers'); 

  // Blocco 3b  - Carico la configurazione dell'applicazione 
  $config = new Zend_Config_Ini(ZEND_ROOT.'application/config/conf.ini', 'generale');     
  Zend_Registry::set('config', $config);
  
   // Blocco 3c   
   
   $params = array('host' => $config->hostname,
                   'username' => $config->username,
               'password' => $config->password,
               'dbname' => $config->database);

   $db = Zend_Db::factory($config->adapter, $params);    
   Zend_Db_Table::setDefaultAdapter($db);
   Zend_Registry::set('db', $db);   
 
 //disable automatic view rendering (important, but look at Zend docs for the explanation
  //$controller->setParam('noViewRenderer' , true);   
   
  //run the controller 
   try {   
      $controller->dispatch();   
   } catch(Exception $e) {   
      echo nl2br($e->__toString());   
   }   
  
  
} catch (Exception $e) { 
    echo $e->getMessage() . ' in ' . $e->getFile() . ' on line ' . $e->getLine() . "\n"; 
} 
  ?>

Grazie

risposto 7 anni fa
C4rLoS
modificato 7 anni fa
X 0 X

Ciao,

Credo di aver individuato il problema che causa la visualizzazione di qst messaggio di errore:

exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in /web/htdocs/www.miodominio.it/home/library/Zend/Controller/Dispatcher/Standard.php:241
Stack trace:
#0 /web/htdocs/www.miodominio.it/home/library/Zend/Controller/Front.php(936): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /web/htdocs/www.miodominio.it/home/public/index.php(45): Zend_Controller_Front->dispatch()
#2 {main}

Sembra che sia scaturito, dalla mancata connessione al database.

Come prova, ho fatto una verifica in locale, arrestando il servizio MySql (uso Wamp).

E puntualmente, ricevo lo stesso messaggio di errore.

Ma l'anomalia è molto strana.

Perchè se utilizzo questo codice per testare la connessione al db:

if( mysql_connect( '62.149.150.XX' , 'tuonomeutente' , 'tuapassword' ) > 0 )
  echo 'Connessione al db MySql riuscita !' ;
 else
  echo 'Connessione non riuscita: controllare password e user !' ;

ricevo il seguente msg: Connessione al db Mysql riuscita.

Avete qualche idea ??

Grazie

risposto 7 anni fa
C4rLoS
X 0 X

RAGAZZI...PROBLEMA RISOLTO!! ;D

inserendo questa riga: $controller->throwExceptions(false);

sono riuscito a leggere a cosa era dovuto l'errore.

Questo è il msg:

exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'Sql224573_2.Paesi' doesn't exist' in /web/htdocs/www.miodominio.it/home/library/Zend/Db/Statement/Pdo.php:238

Come leggete: dice che non trova la tabella "Paesi".

In realtà, nel db è presente, ma scritto in minuscolo "paesi".

Problema dunque, risolto!

Adesso riesco a manipolare i dati sul db.

Ma la domanda è questa:

Come mai in locale, funziona anche se la tabella "PAESI" è scritta in minuscolo ??

A voi l'ardua sentenza.

Ciao!

risposto 7 anni fa
C4rLoS
X 0 X

Si tratta di un problema di "portabilità" del codice. Quando in PHP scriviamo istruzioni che implicano la gestione dei file (include, require, fopen, ecc.) dobbiamo sempre tener presente che PHP chiederà al sistema operativo di accedere ai file. Ovviamente PHP userà i nomi dei file che noi indichiamo e li "riferirà" al sistema operativo.

I sistemi operativi però, relativamente ai nomi dei file, si comportano in maniera diversa. Windows ad esempio ignora le differenze tra maiuscole e minuscole. Quindi anche quando gli si chiede di aprire un file con il nome specificato tutto in minuscolo, lui lo apre anche se il nome è in maiuscolo, e viceversa.

La stessa non accade con Linux, dove il sistema operativo si rifiuta di aprire un file se il nome non viene specificato esattamente, comprese maiuscole e minuscole.

 :bye:

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Salve,

ho un problema.

Il cliente a cui sto facendo un restyling del sito, possiede un server hosting Windows su Aruba.

Il problema si presenta quando invoco delle pagine che fanno uso di database.

Dice che l'estensione PDO non è caricata.

 "The PDO extension is required for this adapter but the extension is not loaded".

Mi chiedo, esiste la possibilità di utilizzare Zend senza il PDO??

non ho trovato granche' sul web, l'unica risorsa: http://devzone.zend.com/article/1553 non sembra più attiva.

Hai avuto modo di affrontare questo tipo di problema??

Grazie

a presto.

Carlo

risposto 7 anni fa
C4rLoS
X 0 X

Stiamo andando fuori argomento? :offtopic:

Mi sa che è il caso di aprire una nuova discussione

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Scusate se riesumo un topic vecchio di due anni, ma è inerente.

Pure io devo spostare un'applicazione fatta con ZF su Aruba e mi chiedevo, il fatto che le cartelle library ed application siano dentro la document root può comportare un problema di sicurezza? E' possibile con delle configurazioni di .htaccess evitare che un utente vada a vedere tipo http://www.example.com/application/configs/application.ini oppure qualsiasi altro file?

Altra domanda: la mia applicazione è molto basilare. Utilizzo Bootstrap, Autoloader e index.php di default creati su unix dall'utility zf (zf create project myproject). Funzionerà semplicemente modificando le variabili di ambiente oppure dovrò fare altre modifiche?

Grazie in anticipo :)

risposto 5 anni fa
FollowTheMedia
modificato 5 anni fa
X 0 X

1) si, è un rischio, specialmente per il file *.ini in quanto si vedono direttamente, I file php non necessariamente producono un output.

2) si, se è un webserver Apache puoi impostare un htaccess per limitare l'accesso a quelle directory e ai relativi file.

3) forse devi modificare il file htaccess presente nella directory public aggiungendo il rewritebase.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Grazie mille per le risposte :)

risposto 5 anni fa
FollowTheMedia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda