【问题标题】:Is it possible to create an installer for an application built using Codeigniter是否可以为使用 Codeigniter 构建的应用程序创建安装程序
【发布时间】:2011-12-20 20:21:36
【问题描述】:

我正在使用 Codeigniter 构建一个 Web 应用程序,它将在 localhost 上运行。有没有办法为它创建一个安装程序,以便任何用户都可以像 Windows 上的常规软件一样安装它(包括 XAMPP 服务器)?

谢谢:)

【问题讨论】:

  • 为什么要让PHP安装PHP服务器?
  • 抱歉,我可能没有正确解释。我不想让 PHP 安装任何东西......我已经使用 Codeigniter 创建了一个 Web 应用程序,现在当任何用户想要安装它时,我希望他们像 Windows 上的常规软件一样安装它。所以我想为应用程序创建一个安装程序。我只是想知道是否有可能,如果有的话怎么做?谢谢:)
  • @Srijon -- 你应该查看PHAR,因为我相信这是你正在寻找的那种支持。您可以创建一个“la InstallShield”或其他安装程序,但创建一个 Web 安装程序更适合应用程序的性质和“安装”它的环境。
  • 这仍然没有多大意义 - 或者您可能需要解释更多。听起来你不想像 setup.exe 这样打开 Windows 安装程序 - 然后呢?它应该将您的应用程序上传到 FTP 服务器吗?还是在本地安装?它应该配置数据库吗?配置什么? Mac/Linux 用户呢?有点不清楚你真正不想要什么。
  • 感谢 Repox 的回复。没错,我想要 setup.exe 之类的东西,当它打开 Windows 安装程序时,我只想将 XAMPP 服务器安装到驱动器(比如说 C 驱动器),然后在文件夹内创建一个名为“我的应用程序”的文件夹把我的php文件,然后创建一个数据库。除了我刚才提到的之外,它不需要上传任何东西或做任何事情。谢谢:)

标签: php codeigniter codeigniter-2


【解决方案1】:

试试这个GoInstaller

什么是 GoInstaller? GoInstaller 是带有用户界面 (UI) 的 CodeIgniter 安装程序。

如何使用?

  • 下载

  • 将安装文件夹放在codeigniter文件夹内/根目录

  • 在 assets->sqlcommand.sql 上打开 SQL 命令文件

  • 将命令 SQL 添加到 install.sql 中

  • 确保您的 codeigniter 数据库 (application->config->database.php) 为 cmod 777

  • 打开http://(Your链接)/安装

  • 填写表格,主机名,用户名等

  • 您的 URL 网站是安装程序完成后重定向到您的网站的链接

  • 完成

【讨论】:

  • 我非常喜欢它。
  • 很好,但我认为脚本也应该在application->config->config.php 中更新$config['base_url']
【解决方案2】:

我认为您最好使用Phar 之类的东西来压缩和分发您的应用程序。您可以自己滚动,利用 __HALT_COMPILER 等,但是 Phar 应该支持您需要的大部分内容。

为 PHP 应用程序(原型 setup.exe)创建二进制安装程序可能不是一个好的决定,因为大多数使用共享主机提供商的人将无法执行和安装应用程序到服务器。

Web 安装程序不仅更便携,而且通常是 Web 应用程序安装过程所期望的。此外,使用 PHP 编写安装程序允许您在安装过程中使用现有代码库来执行诊断、兼容性检查以及您需要的任何基本操作。

【讨论】:

  • 嗨,Bracketworks 我打算只在本地主机上运行我的应用程序,所以我不必担心共享主机提供商无法执行并将应用程序安装到服务器的事实. .. :) 而且由于我不是 PHP 方面的专家,所以我对 Phar 一无所知。我想我必须用谷歌搜索它。 :)
【解决方案3】:

您可以在数据库配置文件中创建具有空值的 CI 应用程序,然后使用 CI 根据来自表单的输入来查找/替换文件的内容,例如mysql主机、用户名、密码。

第 1 步:创建一个表单,验证条目,然后在将 db 值提交到文件之前检查它们是否正确(使用类似:

$config['hostname'] = $this->input->post('hostname');
$config['username'] = $this->input->post('username');
$config['password'] = $this->input->post('password');
$config['database'] = $this->input->post('database');

$this->load->database($config); 

如果一切正常,则在配置中的 database.php 文件中查找/替换数据库条目。

虽然使用此方法,但您无法将数据库放入 autoload.php 文件中(除非您在安装成功运行后也替换它)。

从 CI 版本 2 开始,其他所有内容都可以自行整理,例如路径等。

【讨论】:

    【解决方案4】:

    我过去曾使用过Appcelerator 来处理类似的事情。效果很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多