Php 使用Azure对Codeigniter部署进行故障排除
[![enter image description here][3]][3][![enter image description here][4]][4]我正在尝试使用Azure部署一个PHP应用程序。我将在索引页中显示以下内容: 但当您单击“登录”或“注册”时,我看到的错误是:“您正在查找的资源已被删除、名称已更改或暂时不可用。”…这使我相信我的database.php文件配置不正确..不确定。我已经将连接与MYSQLWorkbench连接起来,当我测试连接时,它可以工作。类似地,当我将应用程序的索引更改为另一个视图时,该视图将加载指定的模板 这是我的database.php文件my applications/configPhp 使用Azure对Codeigniter部署进行故障排除,php,mysql,database,codeigniter,azure,Php,Mysql,Database,Codeigniter,Azure,[![enter image description here][3]][3][![enter image description here][4]][4]我正在尝试使用Azure部署一个PHP应用程序。我将在索引页中显示以下内容: 但当您单击“登录”或“注册”时,我看到的错误是:“您正在查找的资源已被删除、名称已更改或暂时不可用。”…这使我相信我的database.php文件配置不正确..不确定。我已经将连接与MYSQLWorkbench连接起来,当我测试连接时,它可以工作。类似地,当我将应
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$active_group = 'default';
$active_record = TRUE;
if(ENVIRONMENT == 'production')
{
$db['default']['hostname'] = 'ahmxn6q9c3.database.windows.net,1433';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = '';
}
else
{
$db['default']['hostname'] = 'ahmxn6q9c3.database.windows.net,1433';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = '';
}
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
//end of database.php
urlhttp://tradiscussionboard.azurewebsites.net/users/login
正在返回404状态代码,因此找不到该代码。这很可能是缺少或未配置重写规则的结果。在Azure上,您需要在根目录中直接包含一个web.config
文件(相当于Apache上的.htaccess文件的IIS),该文件包含:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite to index.php">
<match url="index.php|robots.txt|images|test.php" />
<action type="None" />
</rule>
<rule name="Rewrite CI Index">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
端点类似于:ahmxn6q9c3.database.windows.net,1433
是Azure SQL Server的连接端点
类似于:us-cdbr-azure-west-c.cloudapp.net的端点是ClearDB提供的azure上MySQL服务的连接端点
根据您当前的问题,您似乎在CodeIgniter项目中对Azure SQL进行了错误配置
您应该在applications/config/database.php
文件中配置数据库名称,例如
$db['default']['hostname']='ahmxn6q9c3.database.windows.net,1433';
$db['default']['username']='username';
$db['default']['password']='password';
$db['default']['database']='discussionboard';
您的查询字符串应该修改为:“从users.email='aaa'和users.password='aaa'”
的用户中选择*
--更新0--
使用MySQL workbench连接到Azure SQL:
--更新1--
如果使用MySQL数据库,则需要在applications/config/database.php
中修改数据库连接设置,例如:
$db['default']['hostname']='{your server name}.cloudapp.net';
$db['default']['username']='username';
$db['default']['password']='password';
$db['default']['database']='discussionboard';
$db['default']['dbdriver']='mysqli';
你有重写规则的web.config
设置吗?你能详细说明一下吗?谢谢。我需要在.htaccess文件中写入什么才能使路由正常工作?不是解决问题,而是为了代码的简单性,创建不同的组,如默认值
,测试
,开发
,production
然后切换$active\u group
变量。您能帮我解决这个问题吗?任何人哈哈,我只想连接数据库Hi Tristan,谢谢你的回答。因此,为了澄清,我通过我的azure web应用程序而不是直接将其添加到sublime?是的,web.config
文件需要位于azure服务器上web应用程序的根目录中。在app\u设置/WEBSITE\u节点\u默认\u版本下,web.config
必须位于项目的根目录下。这个问题可能提供了一些背景,我现在正在看。我在应用程序的根级别创建了一个web.config文件,添加了您给我的路由规则,推送并提交了更改,以及在默认文档中添加了web.configHi Gary..我已将其更改为仍然收到相同的错误。您能否确认您的数据完全在Azure SQL中?您可以在Visual Studio中管理Azure SQL,有关详细信息,请参阅。我正在使用mac和SQL workbench。我还能下载吗?你能用你的工作台连接到Azure SQL吗?一般的想法是,我们需要确保您的Azure SQL server或MySQL服务中有数据,正如您在问题中提到的MySQL。在Azure管理门户的Azure SQL管理页面中,底部导航中有一个名为“管理”的按钮,它为Azure SQL online提供了一个web管理工具。是的,当我通过mysqlworkbench连接并使用连接字符串时,它会说它已连接,但随后我得到的数据库错误是错误号:42S02[Microsoft][SQL Server本机客户端11.0][SQL Server]对象名称“discussionboard.users”无效。请从discussionboard.users中选择*,其中的users.email='10email@email.com'AND users.password='password'文件名:D:\home\site\wwwroot\system\database\DB\u driver.php行号:330