Платформа зенда на nginx

Я продолжал получать ошибку, когда добавлял каскадные comboboxes в свое приложение WPF и разрешал ошибку с помощью этого API:

    using System.Windows.Data;

    private readonly object _lock = new object();
    private CustomObservableCollection _myUiBoundProperty;
    public CustomObservableCollection MyUiBoundProperty
    {
        get { return _myUiBoundProperty; }
        set
        {
            if (value == _myUiBoundProperty) return;
            _myUiBoundProperty = value;
            NotifyPropertyChanged(nameof(MyUiBoundProperty));
        }
    }

    public MyViewModelCtor(INavigationService navigationService) 
    {
       // Other code...
       BindingOperations.EnableCollectionSynchronization(AvailableDefectSubCategories, _lock );

    }

Подробнее см. в https: // msdn .microsoft.com / запроса / dev14.query APPID = Dev14IDEF1 & амп;? л = EN-US & Amp; K = K (System.Windows.Data.BindingOperations.EnableCollectionSynchronization); к (TargetFrameworkMoniker-.NETFramework, версия% 3Dv4.7); к (DevLang-CSharp) & амп; й = истинно [/ д2]

16
задан rg88 18 December 2008 в 03:26
поделиться

5 ответов

Я знаю, что это - довольно старый поток, но это могло бы помочь некоторым людям так или иначе.

В основном это перенаправляет любые 404 ошибки к index.php, но если файл будет существовать (введите файл), то это установит правильный корень.

я сделал это от вершины моей головы. Это не могло бы работать правильно далеко, и необходимо поместить правильный путь и конфигурацию fastcgi. Я также отложил все к index.php, поскольку он должен работать как этот с Zend_Framework

error_page  404 = /index.php;

location / {
    if (-f $request_filename) {
        root   /var/www;
    }
}

location ~ \.php$ {
        fastcgi_pass   unix:/tmp/php.sock;
        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME     /var/www/index.php;
        include /etc/nginx/fastcgi_params;
}
16
ответ дан 30 November 2019 в 15:06
поделиться

Я не знаю ни о каком автоматическом/систематичном способе преобразовать htaccess-файл, необходимо будет, вероятно, сделать это вручную. Nginx wiki является лучшим ресурсом для nginx документации.

Редактирование: я выполняю Платформу Зенда на Nginx сам теперь, и конфигурация похожа на это:

server {
  listen 80;
  server_name servername.com;

  root /var/www/zendapp/public;

  location / {
    index index.php;
  }

  # Deny access to sensitive files.
  location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
    deny all;
  }
  location ~ \.htaccess {
    deny all;
  }

  # Rewrite rule adapted from zendapp/public/.htaccess
  if (!-e $request_filename) {
    rewrite ^.*$ /index.php last;
  }

  # PHP scripts will be forwarded to fastcgi processess.
  # Remember that the `fastcgi_pass` directive must specify the same
  # port on which `spawn-fcgi` runs.
  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;

    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
  }

  location = /50x.html {
      root   /var/www/default;
  }
}

, Как Вы видите, само переписать правило очень просто.

13
ответ дан 30 November 2019 в 15:06
поделиться

На самом деле я выполняю nginx с drupal сайтом, которые работают как платформа зенда: один index.php как начальная загрузка

это - правило (не протестированный на платформе зенда, только на drupal, но должно быть подобным)

location / {
            if (!-e $request_filename) {
                    rewrite  ^/(.*)$  /index.php?q=$1  last;
                    break;
        }
    }

error_page  404              /index.php;
4
ответ дан 30 November 2019 в 15:06
поделиться

Если бы это было вообще возможно, то я рекомендовал бы, чтобы они установили Apache на нестандартном порте, доступном только от поля Nginx, и сделали, чтобы Nginx проксировал к Apache.

документация Прокси Nginx

0
ответ дан 30 November 2019 в 15:06
поделиться

Если вы используете подкаталог для своего проекта, например http: //some.url/myproject/controller/ , тогда вам также необходимо добавить setBaseUrl в ваш файл начальной загрузки.

<?php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initSomeFancyName()
    {
        $this->bootstrap('frontController');
        $frontController = Zend_Controller_Front::getInstance();
        $frontController->setBaseUrl('/myproject'); // set the base url!
    }
}

Перезапись nginx будет выглядеть так:

location /myproject/ {
  if (!-e $request_filename) {
    rewrite ^/myproject/(.*)$ /index.php?$1? last;
  }
}

PS Знак вопроса не является опечаткой!

2
ответ дан 30 November 2019 в 15:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: