Web.config搞乱了Symfony控制器

时间:2015-10-16 15:55:04

标签: php git symfony azure

我有两个azure服务器,一个是从git hub运行我的主分支代码,第二个(dev服务器)运行我的主分支代码(我知道我可以使用/app_dev.php但是我选择这种方式因为我更喜欢它)

基本上我正在采取的步骤是添加web.config(将其粘贴在下面)以保护对我的web文件夹的访问,以便在URL被点击时它将返回前端控制器而不必执行以下操作

继承了web.config文件

package com.example.project.project;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import com.example.project.project.API.InfoAPI;
import com.example.project.project.TimeSheet.Details;
import com.example.project.project.TimeSheet.Force;
import com.example.project.project.TimeSheet.Info;
import com.example.project.project.database.MyDatabaseHelper;

public class UpdatePage extends AppCompatActivity {
    InfoAPI sqlcon;
    private SQLiteDatabase database;
    private MyDatabaseHelper dbHelper;
    private Cursor c;


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        dbHelper = new MyDatabaseHelper(this);
        setContentView(R.layout.updatepage);
        final String name1 = getIntent().getExtras().getString("name");
        final String date = getIntent().getExtras().getString("date");
        RetrievePage(name1, date);
    }


    public void RetrievePage(String name, String date) {
        final String name2 = name;
        final String date2 = date;
        final EditText name3 = (EditText) findViewById(R.id.editText9);
        final EditText date3 = (EditText) findViewById(R.id.editText12);
        name3.setText(name2);
        date3.setText(date2);
        //final Spinner weather3 = (Spinner) findViewById(R.id.spinner5);
        //final Spinner status3 = (Spinner) findViewById(R.id.spinner7);
        final EditText subC3 = (EditText) findViewById(R.id.editText17);
        final EditText noP = (EditText) findViewById(R.id.editText18);
        final EditText noH = (EditText) findViewById(R.id.editText19);
        final Spinner poject3 = (Spinner) findViewById(R.id.spinner8);
        database = dbHelper.getWritableDatabase();
        c = database.rawQuery("SELECT w.Subcontractors, w.NumberOfPerson, w.NumberOfHours FROM Information i LEFT JOIN WorkForce w ON w.TInfo_id = i.ID WHERE i.Name = ? AND i.Date= ? ",
                new String[]{String.valueOf(name2),String.valueOf(date2)}, null);
        if (c != null) {
            c.moveToFirst();
            while (c.moveToNext()) {
                Info I = new Info();
                Details WD = new Details();

               // String Weather = c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Weather));
                //String Status = c.getString(c.getColumnIndexOrThrow(MyDatabaseHelper.Status));
                String SubC = c.getString(c.getColumnIndex(MyDatabaseHelper.Subcontractors));
                String NoP = c.getString(c.getColumnIndex(MyDatabaseHelper.NumberOfPerson));
                String NoH = c.getString(c.getColumnIndex(MyDatabaseHelper.NumberOfHours));
                Force WF = new Force();
                WF.setSubcontractors(SubC);
                WF.setNoOfPerson(NoP);
                WF.setNoOfHours(NoH);
                subC3.setText(SubC);
                noP.setText(NoP);
                noH.setText(NoH);

            }

        }
        c.close();


    }
    }

如果你去http://symfony.com/doc/current/cookbook/deployment/azure-website.html

滚动到最底部,它谈到它。我做了解释,我不太擅长解释自己。

我很困惑,因为在Dev服务器上它返回了一个twig模板,说我的项目已准备好在等等启动,但是在prod服务器上,web.config尚未合并,url是domain / web / app.php它正在重新调整我想要的控制器和模板。

1 个答案:

答案 0 :(得分:2)

根据您的描述,您有2个Azure Web Apps服务托管开发和prod交响乐应用程序。如果我有任何误解,请指出它。

在我的测试中,在Azure Web Apps上完成部署交响乐应用程序后,作为上一个问题的答案。我只是在本地复制app_dev.php的内容并覆盖云上的app.php

我评论用于检查服务器是否为localhost的代码,即: if (isset($_SERVER['HTTP_CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']) || !(in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) || php_sapi_name() === 'cli-server') ) { header('HTTP/1.0 403 Forbidden'); exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'); }
然后浏览http://<your-website-name>.azurewebsites.net,它运行正常。

因此,请检查您的部署步骤,它应该与您成功的步骤相同。

如果您在本地项目中有一个内部部署web.config,并使用该应用程序将其部署在Azure Web应用程序上。这似乎会在我的测试中引发内部错误。您可以尝试以下步骤来解决此问题:

  1. 登录您网站的Kudu控制台,并删除现有的 站点根目录中的web.config文件。
  2. 使用以下命令创建一个新的:touch web.config
  3. 点击铅笔图标编辑文件,复制内容 http://symfony.com/doc/current/cookbook/deployment/azure-website.html#configure-the-web-server 它。
  4. 重新启动您的网站。