【问题标题】:Transfer web app in php (codeigniter) from localhost to my server and domain将 php (codeigniter) 中的 Web 应用程序从 localhost 传输到我的服务器和域
【发布时间】:2022-01-05 16:47:35
【问题描述】:

我正在和我的客户一起做一个项目。我主要做前端工作,所以我不太明白这里出了什么问题。

我们获得了一个预构建应用程序的白标许可证,我们在本地主机上对其进行了彻底的重新设计和重新设计(我在 mac 上使用 MAMP)。该应用程序在那里运行良好,没有任何问题。

当我尝试将我的应用程序传输到我的主机服务器时,它不会加载。 当我将文件放在那里并故意将其链接到错误的页面时,它不会显示未找到和此类错误,该页面只是空白

托管服务器和其他东西可以正常工作,如果我将随机 index.html 文件放在同一个文件夹中,它就会显示出来。

我的过程是,将所有数据库内容(MySQL)从一个 PHPmyadmin 复制到另一个。

我为此创建了一个具有完全访问权限的新数据库和用户。

使用文件管理器上传压缩文件并在我的服务器上解压。

现在 codeigniter 部分有它需要链接到的代码部分,我需要第一次编辑它,否则它将无法在我的本地主机上工作。

代码是这样的。

/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
|   http://example.com/
|
| If this is not set then CodeIgniter will try guess the protocol, domain
| and path to your installation. However, you should always configure this
| explicitly and never rely on auto-guessing, especially in production
| environments.
|
*/
public $baseURL = 'http://localhost:8888/hr-prw';

我还有一个databse.php,里面有这几行代码。

/**
 * The directory that holds the Migrations
 * and Seeds directories.
 *
 * @var string
 */
public $filesPath = APPPATH . 'Database/';

/**
 * Lets you choose which connection group to
 * use if no other is specified.
 *
 * @var string
 */
public $defaultGroup = 'default';

/**
 * The default database connection.
 *
 * @var array
 */
public $default = [
    'DSN'      => 'mysql:host=localhost;dbname=root',
    'hostname' => 'localhost',
    'username' => 'root',
    'password' => 'root',
    'database' => 'root',
    'DBDriver' => 'MySQLi',
    'DBPrefix' => '',
    'pConnect' => true,
    'DBDebug'  => (ENVIRONMENT !== 'production'),
    'cacheOn'  => false,
    'cacheDir' => '',
    'charset'  => 'utf8',
    'DBCollat' => 'utf8_general_ci',
    'swapPre'  => '',
    'encrypt'  => false,
    'compress' => false,
    'strictOn' => false,
    'failover' => [],
    'port'     => 3306,
];

现在这是在我的 MAMP 上本地运行的所有内容,并且运行良好。

我为主机创建了一个子域。假设我的文件位置和数据库信息如下所示。

testnet.domain.hr/hr.prw

数据库信息: 用户名:database_root 密码:databaseroot 数据库名称:database_root

现在我很想知道当我输入时我需要把什么放在哪里才能完成这项工作。

https://testnet.domain.com/hr-prw/

当我去检查网络时,它显示一个带有错误 500 的空白页面。

我尝试将信息放在这两个表中并以各种不同的组合进行编辑,但我没有运气,非常感谢您的帮助。!如果您需要更多信息,请询问。

【问题讨论】:

  • 吸引我的第一件事,public $baseURL = 'http://localhost:8888/hr-prw';,因为您在真正的 Web 服务器上,默认端口将是 80,除非您进行了更改。所以只需完全删除端口号
  • 吸引我的第二件事。您不太可能被允许使用root 作为共享服务器上的 MySQL 用户
  • @RiggsFolly 这就是我在那里展示的代码的库存工作部分。我用那里列出的域替换了 HTTP 部分,并把我的数据库而不是 root 放在了那里,但这不起作用。这就是我卡在atm的部分。
  • 不工作怎么办?错误是什么? 500 错误只是一个通用状态代码。需要查看服务器上的php错误日志才能找到详细的错误详情
  • @ADyson OK 会查找如何做到这一点。基本上,当我输入所有新细节时,它只是显示一个空白页。就像这个 imgur.com/hbtfHyM 它只是空白,如果我打错字并写 /hr-pr 而不是 hr-prw 我得到这个 imgur.com/2RDxiSK 一个正常错误。所以发生了一些事情,这两种方式都行不通

标签: php mysql codeigniter mamp


【解决方案1】:

发现问题,我的主机 PHP 版本上没有启用 INTL,这解决了所有问题。

【讨论】:

    【解决方案2】:

    像这样将public $baseURL = 'http://localhost:8888/hr-prw' 值更改为您自己的域或项目根位置

    public $baseURL = 'http://example.com/hr-prw';
    

    【讨论】:

    • 试过了,可惜没用。
    【解决方案3】:

    您可以从服务器与 nginx 或 apache 绑定,然后从 http://localhost:8888/hr-prw 进行设置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 2013-05-19
      • 2014-11-22
      • 1970-01-01
      相关资源
      最近更新 更多