web-dev-qa-db-ja.com

/ folderのリクエストをApache 2.4の別のドキュメントルートに解決し、phpを2つのfpmプールに渡す方法

2つの質問があります。

(私の例のURLの一部のhttp://を削除する必要がありました。これは、私の質問にmorが1つのURLを持っているほどの評判がないためです。// example。と表示されます。)

質問1)http://example.com のようなドメインが1つあります。これにより、/ var/www/exampleからページがロードされます。ここで、// example.com/site2へのすべてのリクエストをフォルダー/ var/www/site2に解決するようにします。

これが基本的な考え方であり、私はこのようにこれを達成しようとしました(これは機能しませんでした)。

<VirtualHost *:80>
    ServerAdmin [email protected]

    DocumentRoot /var/www/example

    DirectoryIndex /index.html index.html

    #<LocationMatch "^/site2.*">
    #    RewriteEngine on
    #    RewriteRule . /example2/index.html [L]
    #</LocationMatch>

    AliasMatch "/site2(.*)" "/var/www/site2$1"
    <Directory /var/www/site2>
        Require all granted
        AllowOverride all
    </Directory>


    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual Host. For example the
    # following line enables the CGI configuration for this Host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

/ site2 URLに到着するときに、AliasディレクティブとLocation matchを使用して、正しいURLに内容を書き換えてみました。これは私のconfでした。 //example.com/site2/では、// example.com/からのindex.htmlになります。 //example.com/site2/index.htmlをリクエストする場合のみ。

<VirtualHost *:80>
    DocumentRoot /var/www/example

    DirectoryIndex /index.html index.html

    Alias "/site2" "/var/www/site2"
    <Directory /var/www/site2>
        Require all granted
        AllowOverride all
    </Directory>
</VirtualHost>

質問2)1が機能する場合、すべてのphp要求を独自のfpmプールに渡したいと思います。 example.comのリクエストはfcgi://127.0.0.1:9000に渡され、// example.com/site2のリクエストはfcgi://127.0.0.1:9001に送信されます。

[編集](fpm fcgiのリファレンスを変更しました。)[編集](エイリアスディレクティブに基づいてconfを追加しました。)

1
matglas86

「質問1)」によると:

  • エイリアスを追加する必要があります。

    Alias /site2 /var/www/site2
    <Directory /var/www/site2>
        Require all granted
        AllowOverride all
    </Directory>
    
  • DirectoryIndexディレクティブは、ステートメントを「絶対」ファイル名として読み取ります。私はこの構文を意味します:

    DirectoryIndex /index.html index.html
    

    DirectoryIndexは、DocumentRoot = index.htmlにある/が存在するかどうかを確認し、存在する場合はそれを表示し、次のステートメントを無視します。したがって、このレコード(/index.html)が意図されていない場合、それは間違っています。いくつかの ここの例

0
pa4080