Размещение приложения Zend Framework 2 на общем хостинге

Я разместил свое приложение Zend Framework 2 на сервере общего хостинга. Я загрузил все файлы в корневую папку public_html . Я поместил следующий код в свой файл index.php, который находится в папке public.

error_reporting(E_ALL);
ini_set("display_errors", 1);

Теперь я пытаюсь просмотреть свое приложение, например test.com/public, и получаю следующую ошибку.

Fatal error: Uncaught exception 'Zend\ModuleManager\Exception\RuntimeException' with message 'Module (test) could not be initialized.' in /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php:175 Stack trace: 

#0 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php(149): Zend\ModuleManager\ModuleManager->loadModuleByName(Object(Zend\ModuleManager\ModuleEvent))    
#1 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php(90): Zend\ModuleManager\ModuleManager->loadModule('test') 
#2 [internal function]: Zend\ModuleManager\ModuleManager->onLoadModules(Object(Zend\ModuleManager\ModuleEvent))
#3 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\ModuleManager\ModuleEvent)) 
#4 /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Z in /home/nowphp/public_html/zend_test/vendor/zendframework/zendframework/library/Zend/ModuleManager/ModuleManager.php on line 175

Я много пробовал, но не смог решить проблему. Может ли кто-нибудь помочь мне в этом отношении ??

Спасибо


person Foysal Vai    schedule 06.08.2014    source источник
comment
Предполагая, что вы сначала разработали его на своей локальной машине, нормально ли он там работает?   -  person Tim Fountain    schedule 06.08.2014
comment
Спасибо @TimFountain за ваш ответ. Да, я разработал его на локальной машине, и там он работает нормально.   -  person Foysal Vai    schedule 06.08.2014
comment
В этом случае, скорее всего, проблема с чувствительностью к регистру. Каков полный путь (включая имя файла) к Module.php вашего тестового модуля?   -  person Tim Fountain    schedule 06.08.2014
comment
Спасибо @TimFountain за ваш драгоценный ответ. Вы правильно догадались, это проблема чувствительности к регистру. Не могли бы вы сказать, как я могу удалить слово public из URL?? Спасибо   -  person Foysal Vai    schedule 06.08.2014


Ответы (2)


Вам нужно добавить все файлы из общей папки в корень, т.е. public_html. Затем создайте папку за корнем (предположим, папку с именем zf2project) и скопируйте в нее всю свою папку, кроме общей папки.

Затем отредактируйте файл index.php

chdir("zf2project/".dirname(__DIR__));

Кстати, вы можете дать ссылку на ваш сайт.

person Mohammad Nomaan Patel    schedule 06.08.2014
comment
Спасибо Мохаммаду Номману. Я пробовал так.... * Поместите все файлы из общей папки в root, т.е. public_html. * Затем создайте в корне папку с именем zf2project. * Поместите все файлы моего проекта в zf2project, кроме общей папки. * Отредактированный файл index.php с chdir("zf2project/".dirname(__DIR__)); . Но это не работает. Спасибо - person Foysal Vai; 08.08.2014

Наткнулся на этот пост, потому что у меня был тот же вопрос.

Одна вещь, которую я пробовал, кажется, работает, - это создание символической ссылки из вашего каталога public_html в ваш каталог public в каталоге вашего проекта.

Чтобы использовать URL-адрес: example.com/~user/Application

$ cd ~/public_html
$ ln -s /path/to/project/public Application

Чтобы использовать URL: example.com/~user

$ cd ~
$ ln -s /path/to/project/public public_html

Это предполагает, что ~/public_html еще не существует.

Я не уверен, есть ли какие-либо негативные последствия с этим методом.

person pferate    schedule 17.03.2015