Ich möchte wissen, warum, wenn ich mein ZF2-Projekt zu einem lokalen Computer klonen, um einige Tests zu tun, hört es vollständig auf zu arbeiten.ZF2-Projekt funktioniert nicht mehr, wenn auf lokalen Server geklont wird
In meiner lokalen Maschine habe ich zwei Unterordner, einen mit einem CakePHP-Projekt und den anderen mit dem ZF2, den ich geklont habe.
Die CakePHP Projekt funktioniert gut, da es dort erstes war, aber die ZF2, wenn ich an den öffentlichen Ordner zuzugreifen versuchen, es druckt ich:
{"error":"Something went wrong"}
Ein wirklich allgemeiner Fehler ... Ich habe keine Ahnung davon, was vor sich geht.
Ich habe einige allgemeine Debug versucht attemps wie
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
ohne Erfolg überhaupt, ich habe auch überprüft die .htaccess RewriteBase Richtlinie mein Unterordner übereinstimmen und die DB-Konfiguration wird auch getan.
Ich habe ein wenig in das Projekt und die Datei untersucht, die den Fehler anzeigt, ist module/RestfulV2_2/Module.php
(Lesen der README.md
ich entdeckt habe Teil ZF2 Restful Module Skeleton ist):
/**
* @param MvcEvent $e
* @return null|\Zend\Http\PhpEnvironment\Response
*/
public function errorProcess(MvcEvent $e)
{
/** @var \Zend\Di\Di $di */
$di = $e->getApplication()->getServiceManager()->get('di');
$eventParams = $e->getParams();
/** @var array $configuration */
$configuration = $e->getApplication()->getConfig();
$vars = array();
if (isset($eventParams['exception'])) {
/** @var \Exception $exception */
$exception = $eventParams['exception'];
if ($configuration['errors']['show_exceptions']['message']) {
$vars['error-message'] = $exception->getMessage();
}
if ($configuration['errors']['show_exceptions']['trace']) {
$vars['error-trace'] = $exception->getTrace();
}
}
if (empty($vars)) {
$vars['error'] = 'Something went wrong';
}
/** @var PostProcessor\AbstractPostProcessor $postProcessor */
$postProcessor = $di->get(
$configuration['errors']['post_processor'],
array('vars' => $vars, 'response' => $e->getResponse())
);
$postProcessor->process();
if (
$eventParams['error'] === \Zend\Mvc\Application::ERROR_CONTROLLER_NOT_FOUND ||
$eventParams['error'] === \Zend\Mvc\Application::ERROR_ROUTER_NO_MATCH
) {
$e->getResponse()->setStatusCode(\Zend\Http\PhpEnvironment\Response::STATUS_CODE_501);
} else {
$e->getResponse()->setStatusCode(\Zend\Http\PhpEnvironment\Response::STATUS_CODE_500);
}
$e->stopPropagation();
return $postProcessor->getResponse();
}
Die Zeile, die den Fehler ruft in meine index.php ist:
Zend\Mvc\Application::init(require 'config/application.config.php')- run();
Und die einzige Linie, die ich in dem die Fehlerfunktion eine Möglichkeit genannt wird gefunden ist dies in meiner modele.php
:
$sharedEvents->attach('Zend\Mvc\Application', MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'errorProcess'), 999);
Können Sie mir helfen, dies zu lösen? Ich bin unerfahren mit ZF2, aber ich weiß, dass mit CakePHP, um es zu funktionieren, Sie den Cache-Ordner löschen müssen. Gibt es einen ähnlichen Prozess in ZF2? Sollte ich zwei Server virtualisieren, um Konflikte zu vermeiden?
Vielen Dank im Voraus.
EDIT: Ich habe bereits virtuelle Hosts gemacht, um mögliche Konflikte zwischen meinen beiden Frameworks zu vermeiden, aber die Fehlerausgabe ist immer noch die gleiche.
EDIT2: Hier ist meine application.config.php Datei:
return array(
// This should be an array of module namespaces used in the application.
'modules' => array(
'Restful',
'MvlabsSnappy',
'Qrcode',
'Application',
'RestfulV2',
'RestfulV2_2'
),
// These are various options for the listeners attached to the ModuleManager
'module_listener_options' => array(
// This should be an array of paths in which modules reside.
// If a string key is provided, the listener will consider that a module
// namespace, the value of that key the specific path to that module's
// Module class.
'module_paths' => array(
'./module',
'./vendor',
),
// An array of paths from which to glob configuration files after
// modules are loaded. These effectively override configuration
// provided by modules themselves. Paths may use GLOB_BRACE notation.
'config_glob_paths' => array(
'config/autoload/{,*.}{global,local}.php',
),
// Whether or not to enable a configuration cache.
// If enabled, the merged configuration will be cached and used in
// subsequent requests.
//'config_cache_enabled' => $booleanValue,
// The key used to create the configuration cache file name.
//'config_cache_key' => $stringKey,
// Whether or not to enable a module class map cache.
// If enabled, creates a module class map cache which will be used
// by in future requests, to reduce the autoloading process.
//'module_map_cache_enabled' => $booleanValue,
// The key used to create the class map cache file name.
//'module_map_cache_key' => $stringKey,
// The path in which to cache merged configuration.
//'cache_dir' => $stringPath,
// Whether or not to enable modules dependency checking.
// Enabled by default, prevents usage of modules that depend on other modules
// that weren't loaded.
// 'check_dependencies' => true,
),
// Used to create an own service manager. May contain one or more child arrays.
//'service_listener_options' => array(
// array(
// 'service_manager' => $stringServiceManagerName,
// 'config_key' => $stringConfigKey,
// 'interface' => $stringOptionalInterface,
// 'method' => $stringRequiredMethodName,
// ),
//)
// Initial configuration with which to seed the ServiceManager.
// Should be compatible with Zend\ServiceManager\Config.
// 'service_manager' => array(),
);
Überprüfen Sie alle Konfigurationseinstellungen, die absolut festgelegt werden können und auch Ihre htaccess-Datei. – Ukuser32
@ Ukuser32 Ich habe die gesamte Datenbankkonfiguration und die .htaccess RewriteBase geändert, um dem Unterordner zu entsprechen, fehlt mir noch etwas? – Asur
Ich fürchte, ich habe ZF2 schon lange nicht mehr benutzt, also nutze ich nicht mehr - ich habe nur die allgemeinen Dinge versucht. Veröffentlichen Sie Ihre Lösung jedoch, wenn Sie herausfinden, was es ist. – Ukuser32