php-fpm実行プロセスのソースコードの簡単な分析

WBOY
リリース: 2016-06-23 13:38:53
オリジナル
1185 人が閲覧しました

作者:zhanhailiang 日期:2015-03-09
ログイン後にコピー

sapifpmfpmfpm_main.c:@main;

  1. fcgi_init()->fcgi_setup_signals(); 信号処理メソッドを設定します;

    sigaction(SIGUSR1, &new_sa, NULL);
    sigaction(SIGTERM, & new_さ、NULL) ;
    sigaction(SIGPIPE, NULL, &old_sa);

  2. sapi_startup(&cgi_sapi_module);

    ->sapi_globals_ctor(&sapi_globals);
    ->reentrancy_startup();

  3. fcgi_fd = fpm_run(&max_requests ) ; プロセスの初期化、fork() を呼び出してプロセスを作成します
  4. while (fcgi_accept_request(>= 0) {
  5. リクエスト初期化SG(request_info)、SG(sapi_headers)

    5.3. php_start_sapi(); リクエストHTTPヘッダー情報の初期化; php_hash_environment(TSRMLS_C); $_GET、$_POST、$_ENV、$_COOKIE、$_FILES などのリクエストの初期化がこのステップで行われます。 -time 初期化は jit_initialization に基づいて行われます。

    5.4. fpm_status_handle_request(TSRMLS_C);
  6. 5.7. php_execute_script(&file_handle TSRMLS_CC); 5.8. (TSRMLS_C);
  7. 5.9 .php_request_shutdown((void *) 0); リクエストが終了し、リクエストのライフサイクルで申請されたリソースが解放されます。




    fcgi_shutdown();

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!