2017-05-19 7 views
0

Cloud Foundryでhtml拡張子を持つ基本的なPHPページを、より正確にはSwisscom Application Cloudにデプロイしようとしています。クラウドファウンドリのPHP Webサイトのインスタンスがカスタムmimeコンフィグレーションでクラッシュする

これは、以下の通りである。${APP_ROOT}/www/index.html

<html> 
<?php 
    phpinfo(); 
?> 
</html> 

マイコンフィギュレーションファイルにある私の唯一のソースファイルです。 .bp-config/options.json

.bp-config/httpd/httpd.conf

{ 
    "WEBDIR": "www", 
    "PHP_VERSION": "{PHP_56_LATEST}", 
    "WEB_SERVER": "httpd" 
} 

ServerRoot "${HOME}/httpd" 
Listen ${PORT} 
ServerAdmin "${HTTPD_SERVER_ADMIN}" 
ServerName sample-app.scapp.io 
DocumentRoot "${HOME}/#{WEBDIR}" 
Include conf/extra/httpd-modules.conf 
Include conf/extra/httpd-mime.conf 

私はスイスコムのAppクラウドでセットアップから取っていたサーバー名:.bp-config/httpd/extra/httpd-modules.confenter image description here

LoadModule mpm_event_module modules/mod_mpm_event.so 

これは含まれていない場合、エラーログごとに必要と思われます。 .bp-config/httpd/extra/httpd-mime.conf

:上記

<IfModule mime_module> 
    AddType application/x-httpd-php .php .htm .html 
</IfModule> 

ソースコードはthis GitHub repoで便宜のためにアクセスすることができます。

インスタンスを開始できませんが、わかりやすいエラーメッセージが見つかりません。これらは、スイスコムのアプリケーションのクラウドからのログです:

2017-05-19 12:56:26 [API/1] OUT Created app with guid 383e1568-29e9-4ef5-9825-3e1248a85b8e 
2017-05-19 12:56:28 [API/3] OUT Updated app with guid 383e1568-29e9-4ef5-9825-3e1248a85b8e ({"route"=>"025e8337-7fd2-42c8-a325-d535af3db460", :verb=>"add", :relation=>"routes", :related_guid=>"025e8337-7fd2-42c8-a325-d535af3db460"}) 
2017-05-19 12:56:38 [API/1] OUT Updated app with guid 383e1568-29e9-4ef5-9825-3e1248a85b8e ({"state"=>"STARTED"}) 
2017-05-19 12:56:38 [STG/0] OUT Downloading dotnet_core_buildpack... 
2017-05-19 12:56:38 [STG/0] OUT Downloading nodejs_buildpack... 
2017-05-19 12:56:38 [STG/0] OUT Downloading python_buildpack... 
2017-05-19 12:56:38 [STG/0] OUT Downloading binary_buildpack... 
2017-05-19 12:56:38 [STG/0] OUT Downloading go_buildpack... 
2017-05-19 12:56:39 [STG/0] OUT Downloaded nodejs_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloading php_buildpack... 
2017-05-19 12:56:39 [STG/0] OUT Downloaded dotnet_core_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloading java_buildpack... 
2017-05-19 12:56:39 [STG/0] OUT Downloaded binary_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloading staticfile_buildpack... 
2017-05-19 12:56:39 [STG/0] OUT Downloaded python_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloading ruby_buildpack... 
2017-05-19 12:56:39 [STG/0] OUT Downloaded go_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloaded java_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloaded php_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloaded staticfile_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Downloaded ruby_buildpack 
2017-05-19 12:56:39 [STG/0] OUT Creating container 
2017-05-19 12:56:39 [STG/0] OUT Successfully created container 
2017-05-19 12:56:39 [STG/0] OUT Downloading app package... 
2017-05-19 12:56:39 [STG/0] OUT Downloaded app package (1.5K) 
2017-05-19 12:56:39 [STG/0] OUT Staging... 
2017-05-19 12:56:41 [STG/0] OUT -------> Buildpack version 4.3.31 
2017-05-19 12:56:41 [STG/0] OUT Installing HTTPD 
2017-05-19 12:56:41 [STG/0] OUT HTTPD 2.4.25 
2017-05-19 12:56:42 [STG/0] OUT Downloaded [file:///tmp/buildpacks/d16e91f150d8c31f69507a615bf75f08/dependencies/https___buildpacks.cloudfoundry.org_dependencies_httpd_httpd-2.4.25-linux-x64-bf8851c4.tgz] to [/tmp] 
2017-05-19 12:56:42 [STG/0] OUT Installing PHP 
2017-05-19 12:56:42 [STG/0] OUT PHP 5.6.30 
2017-05-19 12:56:42 [STG/0] OUT Downloaded [file:///tmp/buildpacks/d16e91f150d8c31f69507a615bf75f08/dependencies/https___buildpacks.cloudfoundry.org_dependencies_php_php-5.6.30-linux-x64-13625eaa.tgz] to [/tmp] 
2017-05-19 12:56:44 [STG/0] OUT Finished: [2017-05-19 10:56:44.679464] 
2017-05-19 12:56:53 [STG/0] OUT Exit status 0 
2017-05-19 12:56:53 [STG/0] OUT Staging complete 
2017-05-19 12:56:53 [STG/0] OUT Uploading droplet, build artifacts cache... 
2017-05-19 12:56:53 [STG/0] OUT Uploading droplet... 
2017-05-19 12:56:53 [STG/0] OUT Uploading build artifacts cache... 
2017-05-19 12:56:53 [STG/0] OUT Uploaded build artifacts cache (198B) 
2017-05-19 12:57:01 [STG/0] OUT Uploaded droplet (55.3M) 
2017-05-19 12:57:01 [STG/0] OUT Uploading complete 
2017-05-19 12:57:01 [STG/0] OUT Destroying container 
2017-05-19 12:57:02 [CELL/0] OUT Creating container 
2017-05-19 12:57:02 [CELL/0] OUT Successfully created container 
2017-05-19 12:57:04 [STG/0] OUT Successfully destroyed container 
2017-05-19 12:57:06 [CELL/0] OUT Starting health monitoring of container 
2017-05-19 12:57:07 [APP/PROC/WEB/0] OUT 10:57:07 php-fpm | [19-May-2017 10:57:07] NOTICE: fpm is running, pid 40 
2017-05-19 12:57:07 [APP/PROC/WEB/0] OUT 10:57:07 php-fpm | [19-May-2017 10:57:07] NOTICE: ready to handle connections 
2017-05-19 12:57:07 [APP/PROC/WEB/0] OUT Exit status 1 
2017-05-19 12:57:07 [CELL/0] OUT Exit status 0 
2017-05-19 12:57:07 [CELL/0] OUT Destroying container 
2017-05-19 12:57:07 [API/3] OUT Process has crashed with type: "web" 
2017-05-19 12:57:07 [API/3] OUT App instance exited with guid 383e1568-29e9-4ef5-9825-3e1248a85b8e payload: {"instance"=>"", "index"=>0, "reason"=>"CRASHED", "exit_description"=>"2 error(s) occurred:\n\n* 2 error(s) occurred:\n\n* Exited with status 1\n* cancelled\n* cancelled", "crash_count"=>1, "crash_timestamp"=>1495191427514377386, "version"=>"ede7276b-e0a6-467c-a86a-5c60f1c36021"} 

私はそこにクラッシュに関する詳細情報と他のログでなければなりませんが、私はどこにそれらを見つけるために知っていないと思います。

クラッシュの原因は何ですか?どのように修正できますか?

答えて

2

あなたのアプリがなぜ失敗しているのか分かりません。私の推測では、HTTPDは設定が気に入らず、終了しているということです。ログにはHTTPDからの出力はありません。このように、起動しているはずです。

例:

2017-05-20T08:26:18.76-0400 [APP/PROC/WEB/0] OUT 12:26:18 httpd | [Sat May 20 12:26:18.741822 2017] [mpm_event:notice] [pid 103:tid 140440543442816] AH00489: Apache/2.4.25 (Unix) configured -- resuming normal operations 
2017-05-20T08:26:18.77-0400 [APP/PROC/WEB/0] OUT 12:26:18 httpd | [Sat May 20 12:26:18.741947 2017] [mpm_event:info] [pid 103:tid 140440543442816] AH00490: Server built: Dec 20 2016 22:27:46 
2017-05-20T08:26:18.77-0400 [APP/PROC/WEB/0] OUT 12:26:18 httpd | [Sat May 20 12:26:18.741961 2017] [core:notice] [pid 103:tid 140440543442816] AH00094: Command line: '/app/httpd/bin/httpd -f /home/vcap/app/httpd/conf/httpd.conf -D FOREGROUND' 

あなたはPHP-FPMプロセスをあなたのHTMLファイルを持っているしたい場合は、カップルの変更を加える必要があります。 .bp-config/httpd/extra/httpd-php.conf

1)、あなたはそれがPHP-FPMに.htmlファイルを送信するような<Directory "${HOME}/#{WEBDIR}">ブロックを変更または追加するのいずれかが必要です。あなたが処理するために、PHP-FPMを指示する必要があります).php & .html

<Directory "${HOME}/#{WEBDIR}"> 
    <Files *.php> 
     <If "-f %{REQUEST_FILENAME}"> # make sure the file exists so that if not, Apache will show its 404 page and not FPM 
      SetHandler proxy:fcgi://#{PHP_FPM_LISTEN} 
     </If> 
    </Files> 
    <Files *.html> 
     <If "-f %{REQUEST_FILENAME}"> # make sure the file exists so that if not, Apache will show its 404 page and not FPM 
      SetHandler proxy:fcgi://#{PHP_FPM_LISTEN} 
     </If> 
    </Files> 
</Directory> 

2の両方を送信します。そうしない場合は、HTTPDはちょうどそれらを果たすか、404

例を返すために起こっています拡張子は.htmlです。誤った設定(つまり、予期しない拡張子のファイルを攻撃者が評価しないようにする)によって悪用されるのを防ぐため、デフォルトではありません。

これを行うには、ファイル.bp-config/php/fpm.d/php-process-html.confを追加する必要があります(php-process-htmlの部分は問題ありませんが、名前は.confで終わる必要があります)。その中には、次のように配置する必要があります。

[www] 
security.limit_extensions = .php .html 

これは、両方の.php.htmlファイルを処理するPHP-FPMを伝えます。

注:これには、少なくともv4.3.32のPHPビルドパックが必要です。ビルドパックの古いバージョンを使用している場合でも、それでも可能ですが、この1つのプロパティをオーバーライドするのではなく、フルカスタムのphp-fpm.conf設定ファイルを提供する必要があり、そのファイルは.bp-config/php/php-fpm.confになります。 php-fpm.confのいずれかのファイルをhereから取り出し、古いビルドパックに慣れている場合は、ベースとして使用してください。

+0

私は[全体のデフォルト設定](https://github.com/cloudfoundry/php-buildpack/tree/master/defaults/config)をコピーしていますが、クラッシュする問題は解決しましたが、まだ設定を適用できません正常に: 'Got error 'スクリプトへのアクセス' /home/vcap/app/www/index.html 'は拒否されました(security.limit_extensionsを参照)。最新の変更は[こちら](https://github.com/atineoSE/sample-php-app-cloudfoundry)です。 – atineoSE

+0

記録のために、phpビルドパックのバージョンは4.3.31なので、 'php-fpm.conf'ファイル全体をコピーする方法を使用しています。 – atineoSE

+0

上記の例のように' security.limit_extensions'を設定する必要があります。デフォルトのファイルはコメントアウトされているので、コメントを外してリストを '.php .html'に設定します。それが価値がある場合は、上書きしていないアプリケーションに設定ファイルを含めないでください。これにより、ビルドパックはデフォルトを提供できます。私はあなたが 'php.ini'を持っているのを見ています。あなたは、あなたが上書きしている1つのファイルだけを必要とします。 –

関連する問題