1

私は、ローカル開発環境 (Vagrant + Virtualbox) で Phalcon を使用したプロジェクトに取り組んできました。それはうまく機能し、私の開発時間は本当に短縮されました.

今、このプロジェクトを Plesk 11.5 nginx 環境でオンラインにしたいのですが、Phalcon 用に Plesk で Nginx を構成するという問題に遭遇しました。私はNginxも初めてです。

次のNginx構成があります:

server {

    listen   80;
    server_name localhost.dev;

    index index.php index.html index.htm;
    set $root_path '/var/www/httpdocs';
    root $root_path;

    try_files $uri $uri/ @rewrite;

    location @rewrite {
        rewrite ^/(.*)$ /index.php?_url=/$1;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
    }

    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
        root $root_path;
    }

    location ~ /\.ht {
        deny all;
    }
}

Plesk nginx 設定で許可されていないため、「server {}」を削除しました。しかし、それはうまくいきません。アプリケーションのホームページは完全に表示されているため、Phalcon は正常に動作していますが、ルーティングは機能しません: /search は、こ​​の構成のローカル環境で機能する 404 を返すだけです。

これを機能させるには、Plesk で何を変更すればよいですか?

よろしくお願いします!

4

1 に答える 1

0

まず最初に、PHP-FPM または Apache によるドメイン処理の PHP をチェックします。

apache のリバース プロキシと apache によって処理される PHP のように nginx を使用する場合は、Phalcon ブートストラップ index.php と .htaccess を /var/www/vhosts/domain.tld/httpdocs に配置し、他のすべてのアプリケーション ファイルを /var に配置するだけです。 /www/vhosts/domain.tld (そのような構成で Phalcon チュートリアルを正常に実行しました)

PHP-FPM の場合、最も簡単な方法は、カスタム仮想ホスト テンプレートを定義することです。

mkdir -p /usr/local/psa/admin/conf/templates/custom/domain
cp /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php /usr/local/psa/admin/conf/templates/custom/domain/

そして、 /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php で、ドメイン名の条件を作成するだけで、次のような完全な構成全体をエコーし​​ます。

<?php if $VAR->domain->asciiName == 'your-domain.tld' ?>

    plain text of your full nginx config here

<?php   else: ?>

   plesk default instruction for all other domains

<?php endif ?>
于 2014-11-09T11:46:55.590 に答える