我正在使用共享托管的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放置相同的代码。)
答案 0 :(得分:0)
最简单的方法是使用一个子域作为暂存版本,即staging.doman.com
。放置CI文件的文件夹并不重要,因为子域将设置为使用您选择的目录。
您将需要完全控制服务器,或者需要一个服务提供商来允许您设置子域。
-扩展答案-
如果您无法设置子域,那么您的下一个最佳选择是使用Managing you Applications文档中的建议。不需要使用此处显示的文件结构。您可以尝试以下方法。
在与application
相同级别的文件夹中创建名为staging
的文件夹。
将通常在/application
中找到的所有文件夹和文件复制到该文件夹中。
添加站点所需的所有应用程序文件夹和文件。这些文件夹中的文件是组成您要暂存的应用程序的文件。
复制index.php
(位于公用文件夹根目录下的文件,即domain.com/index.php
)并命名为staging.php
。 index.php
和staging.php
都位于同一文件夹中。
编辑staging.php
并将$application_folder
的值更改为临时文件夹的绝对路径。例如:
$application_folder = '/path/to/domain.com/public_folder/staging';
上面的路径是一个示例。您必须将其替换为服务器中的实际路径。如果您不知道完整的绝对路径是什么,可以使用
$application_folder = dirname(__FILE__).'/staging';
domain.com/staging.php
,您应该获得默认控制器的输出。要测试您是否真正在查看页面的暂存版本,请暂时更改视图文件中的内容,以便毫无疑问。您将使用URL domain.com/staging.php/other_controller
转到其他控制器。
将$config['index_page']
中/staging/config/config.php
的值更改为staging.php
,例如
$ config ['index_page'] ='staging.php';
没有上述更改redirect()
和许多其他“辅助”功能将无法正常工作。
.htaccess
一样编辑主staging.php
并为index.php
添加重写规则。但我将其留给您练习。 (或另一个SO问题。)最后一句话。可能需要进行其他配置更改以适应修订后的文件结构。我在这里测试了答案,但没有超出浏览控制器的最基本任务。会话,Cookie和许多其他配置的最可能配置值将需要调整,以使暂存版本正确运行。请查看Handling Multiple Environments上的文档,以获取减轻痛苦的指南。