Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Azure对Codeigniter部署进行故障排除_Php_Mysql_Database_Codeigniter_Azure - Fatal编程技术网

Php 使用Azure对Codeigniter部署进行故障排除

Php 使用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连接起来,当我测试连接时,它可以工作。类似地,当我将应

[![enter image description here][3]][3][![enter image description here][4]][4]我正在尝试使用Azure部署一个PHP应用程序。我将在索引页中显示以下内容:

但当您单击“登录”或“注册”时,我看到的错误是:“您正在查找的资源已被删除、名称已更改或暂时不可用。”…这使我相信我的database.php文件配置不正确..不确定。我已经将连接与MYSQLWorkbench连接起来,当我测试连接时,它可以工作。类似地,当我将应用程序的索引更改为另一个视图时,该视图将加载指定的模板

这是我的database.php文件my applications/config

<?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

url
http://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