Как запустить приложение с несколькими Codeigniter на одном сервере с общим хостингом? - PullRequest
0 голосов
/ 11 мая 2019

Я использую разделяемый шланг для приложения Codeigniter для развертывания.Как запустить промежуточный URL на работающем сервере?

1) domain.com (работает) 2) domain.com/staging/ (не работает, отображается ошибка 404)

Я создал промежуточную папкув каталоге public_html, теперь поместите весь код CI в промежуточную папку и попытайтесь запустить приложение с URL-адресом domain.com/staging/, но оно перенаправит на domain.com/404

Я ожидаю запустить domain.com дляпользователи и domain.com/staging для разработки.(Промежуточный URL-адрес, который я буду использовать для разработки, и после этого я размещу тот же код для действующего URL-адреса.)

1 Ответ

0 голосов
/ 12 мая 2019

Это проще всего сделать, используя субдомен для промежуточной версии, т.е. staging.doman.com. Папка, в которую вы помещаете файлы CI, не имеет большого значения, так как субдомен будет настроен на использование выбранного вами каталога.

Вам потребуется либо полный контроль над сервером, либо поставщик услуг, который позволяет настраивать субдомены.

- Расширенный ответ -

Если вы не можете настроить поддомен, тогда ваш следующий лучший вариант - воспользоваться рекомендациями в документации по Управление вашими приложениями . Не обязательно использовать файловую структуру, показанную там. В вашем случае попробуйте следующее.

  1. Создать папку на том же уровне, что и application с именем staging.

  2. В эту папку скопируйте все папки и файлы, которые обычно находятся в /application.

Добавьте все папки приложений и файлы, необходимые для вашего сайта. В этих папках находятся файлы, из которых состоит приложение, которое вы ставите.

  1. Сделайте копию index.php (файл в корне общей папки, т.е. domain.com/index.php) и назовите его staging.php. index.php и staging.php будут находиться в одной папке.

  2. Измените staging.php и измените значение $application_folder на абсолютный путь к промежуточной папке. Например:

    $application_folder = '/path/to/domain.com/public_folder/staging';

Путь выше является примером. Вы должны заменить его реальным путем на вашем сервере. Если вы не знаете, что такое полный и абсолютный путь, вы можете использовать

$application_folder = dirname(__FILE__).'/staging';
  1. Перейдите по URL domain.com/staging.php, и вы должны получить выходные данные контроллера по умолчанию. Чтобы проверить, что вы действительно видите промежуточную версию страницы, временно измените что-либо в файле представления, чтобы не было никаких сомнений.

Вы перейдете на другие контроллеры по URL domain.com/staging.php/other_controller.

  1. Измените значение $config['index_page'] в /staging/config/config.php на staging.php, например,

    $ config ['index_page'] = 'staging.php';

Без вышеуказанного изменения redirect() и многие другие вспомогательные функции не будут работать правильно.

  1. (Необязательно?) Вы, вероятно, можете отредактировать основной .htaccess и добавить правила перезаписи для staging.php так же, как это делается для index.php. Но я оставлю это как упражнение для вас. (Или для другого вопроса ТАК.)

Последнее слово. Возможно, потребуется внести другие изменения в конфигурацию, чтобы приспособить пересмотренную структуру файла. Я проверил ответ здесь, но не выходил за рамки самой простой задачи просмотра контроллеров. Скорее всего, настройки конфигурации для сеансов, файлов cookie и многих других должны быть скорректированы для корректной работы промежуточной версии. Ознакомьтесь с документацией по Работа с несколькими средами , чтобы узнать, как сделать это менее болезненным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...