{"id":3401,"date":"2025-03-24T08:46:17","date_gmt":"2025-03-23T23:46:17","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=3401"},"modified":"2025-03-24T08:46:48","modified_gmt":"2025-03-23T23:46:48","slug":"%e3%80%90%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91php-fpm%e3%81%ae%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89-%e8%a8%ad%e5%ae%9a%e3%81%8b%e3%82%89%e6%9c%80%e9%81%a9%e5%8c%96%e3%81%be%e3%81%a77%e3%81%a4","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=3401","title":{"rendered":"\u3010\u4fdd\u5b58\u7248\u3011PHP-FPM\u306e\u5b8c\u5168\u30ac\u30a4\u30c9 &#8211; \u8a2d\u5b9a\u304b\u3089\u6700\u9069\u5316\u307e\u30677\u3064\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">PHP-FPM \u3068\u306f \u2013 \u57fa\u672c\u6982\u5ff5\u3068\u5f93\u6765\u306e PHP \u5b9f\u884c\u74b0\u5883\u3068\u306e\u9055\u3044<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">PHP-FPM \u306e\u4ed5\u7d44\u307f\u3068\u7279\u5fb4\u3092\u7406\u89e3\u3057\u3088\u3046<\/a>      <\/li>      <li>        <a href=\"#i-5\">mod_php \u3068\u306e\u6c7a\u5b9a\u7684\u306a\u9055\u3044\u3068\u30e1\u30ea\u30c3\u30c8<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">\u306a\u305c\u591a\u304f\u306e\u73fe\u4ee3\u306e PHP \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c PHP-FPM \u3092\u63a1\u7528\u3057\u3066\u3044\u308b\u306e\u304b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-15\">PHP-FPM \u306e\u5c0e\u5165\u624b\u9806 \u2013 \u74b0\u5883\u5225\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-16\">Ubuntu \u3067\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-22\">CentOS \u3067\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-29\">Windows \u74b0\u5883\u3067\u306e\u8a2d\u5b9a\u65b9\u6cd5\u3068\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-34\">\u5171\u901a\u306e\u8a2d\u5b9a\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-38\">Nginx \u3068 PHP-FPM \u306e\u9023\u643a \u2013 \u9ad8\u901f\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30fc\u69cb\u7bc9\u306e\u57fa\u672c<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-39\">Nginx \u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067 PHP-FPM \u3068\u9023\u643a\u3059\u308b\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-45\">Unix \u30bd\u30b1\u30c3\u30c8 vs TCP \u30bd\u30b1\u30c3\u30c8 \u2013 \u3069\u3061\u3089\u3092\u9078\u3076\u3079\u304d\u304b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-49\">\u5b9f\u8df5\u7684\u306aNginx+PHP-FPM\u69cb\u6210\u4f8b\u3068\u89e3\u8aac<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-55\">Apache \u3068 PHP-FPM \u306e\u9023\u643a \u2013 \u5f93\u6765\u74b0\u5883\u304b\u3089\u306e\u79fb\u884c\u30ac\u30a4\u30c9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-56\">mod_proxy \u3068 mod_fcgi \u3092\u4f7f\u3063\u305f\u9023\u643a\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-59\">Apache \u304b\u3089 PHP-FPM \u3078\u306e\u79fb\u884c\u6642\u306e\u6ce8\u610f\u70b9<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-63\">\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u74b0\u5883\u3067\u306e\u904b\u7528\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-68\">PHP-FPM \u306e\u8a2d\u5b9a\u6700\u9069\u5316 \u2013 7 \u3064\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-69\">\u30c6\u30af\u30cb\u30c3\u30af1:\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u8a2d\u5b9a\u306e\u6700\u9069\u5316\u624b\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-75\">\u30c6\u30af\u30cb\u30c3\u30af2: \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u91cd\u70b9\u8a2d\u5b9a\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>      <li>        <a href=\"#i-80\">\u30c6\u30af\u30cb\u30c3\u30af3: \u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u9ad8\u901f\u5316\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-85\">\u30c6\u30af\u30cb\u30c3\u30af4: php.ini\u3068\u306e\u9023\u643a\u306b\u3088\u308b\u7dcf\u5408\u6700\u9069\u5316<\/a>      <\/li>      <li>        <a href=\"#i-90\">\u30c6\u30af\u30cb\u30c3\u30af5: \u30de\u30eb\u30c1\u30b5\u30a4\u30c8\u74b0\u5883\u3067\u306e\u500b\u5225\u30d7\u30fc\u30eb\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-95\">\u30c6\u30af\u30cb\u30c3\u30af6: \u30b9\u30ed\u30fc\u30ed\u30b0\u5bfe\u7b56\u3068\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-99\">\u30c6\u30af\u30cb\u30c3\u30af7:\u8ca0\u8377\u76e3\u8996\u3068\u52d5\u7684\u306a\u30d7\u30ed\u30bb\u30b9\u8abf\u6574<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-104\">PHP-FPM\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30c7\u30d0\u30c3\u30b0 \u2013 \u5b89\u5b9a\u904b\u7528\u306e\u305f\u3081\u306b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-105\">\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306e\u6d3b\u7528\u3068\u76e3\u8996\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-110\">\u30ed\u30b0\u8a2d\u5b9a\u3068\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-115\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u767a\u898b\u3068\u89e3\u6d88<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-120\">PHP-FPM\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56 \u2013 \u5b89\u5168\u306a\u904b\u7528\u306e\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-121\">\u6a29\u9650\u8a2d\u5b9a\u3068\u30e6\u30fc\u30b6\u30fc\u5206\u96e2\u306b\u3088\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316<\/a>      <\/li>      <li>        <a href=\"#i-126\">\u74b0\u5883\u5909\u6570\u3068\u30aa\u30fc\u30d7\u30f3\u30bb\u30c3\u30c6\u306b\u3088\u308b\u6a5f\u5bc6\u60c5\u5831\u306e\u7ba1\u7406<\/a>      <\/li>      <li>        <a href=\"#i-131\">chroot\u6a5f\u80fd\u306e\u6d3b\u7528\u3068\u305d\u306e\u52b9\u679c<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-137\">\u8ffd\u52a0\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-145\">PHP-FPM\u6d3b\u7528\u306e\u4f8b \u2013 \u5f53\u793e\u3067\u306e\u5c0e\u5165\u4e8b\u4f8b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-146\">\u5927\u898f\u6a21EC\u30b5\u30a4\u30c8\u3067\u306ePHP-FPM\u5c0e\u5165\u52b9\u679c<\/a>      <\/li>      <li>        <a href=\"#i-151\">\u30ec\u30ac\u30b7\u30fc\u30b7\u30b9\u30c6\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u4e8b\u4f8b<\/a>      <\/li>      <li>        <a href=\"#i-157\">\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u74b0\u5883\u3067\u306ePHP-FPM\u6d3b\u7528<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-162\">\u5c0e\u5165\u4e8b\u4f8b\u304b\u3089\u5b66\u3076\u6210\u529f\u306e\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-163\">PHP-FPM\u306e\u6700\u65b0\u52d5\u5411\u3068\u5c06\u6765\u5c55\u671b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-164\">\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u8ffd\u52a0\u3055\u308c\u305f\u6a5f\u80fd\u3068\u6539\u5584\u70b9<\/a>      <\/li>      <li>        <a href=\"#i-169\">PHP \u306e\u9032\u5316\u3068 PHP-FPM \u306e\u767a\u5c55\u306e\u65b9\u5411<\/a>      <\/li>      <li>        <a href=\"#i-172\">\u6b21\u4e16\u4ee3 PHP \u5b9f\u884c\u74b0\u5883\u3068\u306e\u6bd4\u8f03\u3068\u4e00\u6319<\/a>      <\/li>      <li>        <a href=\"#i-177\">\u5b9f\u7528\u7684\u306a\u5c55\u671b\u3068\u6280\u8853\u9078\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-182\">\u307e\u3068\u3081<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">PHP-FPM \u3068\u306f \u2013 \u57fa\u672c\u6982\u5ff5\u3068\u5f93\u6765\u306e PHP \u5b9f\u884c\u74b0\u5883\u3068\u306e\u9055\u3044<\/h2>\n\n\n\n<p>PHP-FPM\uff08PHP FastCGI Process Manager\uff09\u306f\u3001PHP\u5b9f\u884c\u74b0\u5883\u306e\u4e2d\u3067\u3082\u9ad8\u6027\u80fd\u304b\u3064\u67d4\u8edf\u6027\u306b\u512a\u308c\u305f\u4ed5\u7d44\u307f\u3067\u3059\u3002\u7279\u306b\u5927\u898f\u6a21\u306aWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u30b5\u30a4\u30c8\u3067\u306f\u3001\u305d\u306e\u52b9\u7387\u7684\u306a\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u304c\u771f\u4fa1\u3092\u767a\u63ee\u3057\u307e\u3059\u3002\u672c\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u57fa\u672c\u6982\u5ff5\u3092\u7406\u89e3\u3057\u3001\u5f93\u6765\u306ePHP\u5b9f\u884c\u74b0\u5883\u3068\u306e\u9055\u3044\u3092\u660e\u78ba\u306b\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">PHP-FPM \u306e\u4ed5\u7d44\u307f\u3068\u7279\u5fb4\u3092\u7406\u89e3\u3057\u3088\u3046<\/h3>\n\n\n\n<p>PHP-FPM\u306f\u300cPHP FastCGI Process Manager\u300d\u306e\u7565\u3067\u3001PHP\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3067\u3059\u30022004\u5e74\u306bAndrei Nigmatulin\u306b\u3088\u3063\u3066\u958b\u767a\u3055\u308c\u3001PHP 5.3.3\u304b\u3089\u516c\u5f0f\u306bPHP\u30b3\u30a2\u306b\u7d71\u5408\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-2\">PHP-FPM\u306e\u57fa\u672c\u69cb\u9020<\/h4>\n\n\n\n<p>PHP-FPM\u306f\u5927\u304d\u304f\u5206\u3051\u3066\u3001\u4ee5\u4e0b\u306e\u69cb\u6210\u8981\u7d20\u304b\u3089\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30de\u30b9\u30bf\u30fc\u30d7\u30ed\u30bb\u30b9<\/strong>\uff1a\u5168\u4f53\u306e\u7ba1\u7406\u3092\u884c\u3046\u89aa\u30d7\u30ed\u30bb\u30b9<\/li>\n\n\n\n<li><strong>\u30d7\u30fc\u30eb\u30de\u30cd\u30fc\u30b8\u30e3<\/strong>\uff1a\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u5404\u300c\u30d7\u30fc\u30eb\u300d\u306e\u7ba1\u7406<\/li>\n\n\n\n<li><strong>\u30ef\u30fc\u30ab\u30fc\u30d7\u30ed\u30bb\u30b9<\/strong>\uff1a\u5b9f\u969b\u306bPHP\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308b\u5b50\u30d7\u30ed\u30bb\u30b9<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/example.com\/php-fpm-architecture.png\" alt=\"PHP-FPM\u306e\u57fa\u672c\u69cb\u9020\"><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-3\">\u4e3b\u8981\u306a\u7279\u5fb4<\/h4>\n\n\n\n<p>PHP-FPM\u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u7279\u5fb4\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-0021f081-d9c5-4e12-b306-f01e8d6b0fa1\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u7279\u5fb4<\/th><th>\u8aac\u660e<\/th><\/tr><\/thead><tbody><tr><td>\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u6a5f\u80fd<\/td><td>\u9759\u7684\u3001\u52d5\u7684\u3001\u30aa\u30f3\u30c7\u30de\u30f3\u30c9\u306e3\u7a2e\u985e\u306e\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u65b9\u6cd5\u3092\u30b5\u30dd\u30fc\u30c8<\/td><\/tr><tr><td>\u30d7\u30fc\u30eb\u6a5f\u80fd<\/td><td>\u7570\u306a\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u5bfe\u3057\u3066\u5225\u3005\u306e\u8a2d\u5b9a\u3092\u9069\u7528\u53ef\u80fd<\/td><\/tr><tr><td>\u30b9\u30c6\u30fc\u30bf\u30b9\u76e3\u8996<\/td><td>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u30d7\u30ed\u30bb\u30b9\u306e\u72b6\u614b\u3092\u76e3\u8996\u53ef\u80fd<\/td><\/tr><tr><td>\u30e6\u30fc\u30b6\u30fc\u5206\u96e2<\/td><td>\u30d7\u30fc\u30eb\u5358\u4f4d\u3067\u7570\u306a\u308bUNIX\u30e6\u30fc\u30b6\u30fc\u3068\u3057\u3066\u5b9f\u884c\u53ef\u80fd<\/td><\/tr><tr><td>\u74b0\u5883\u5909\u6570\u7ba1\u7406<\/td><td>\u30d7\u30fc\u30eb\u5358\u4f4d\u3067\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u53ef\u80fd<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-4\">\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u30e2\u30fc\u30c9<\/h4>\n\n\n\n<p>PHP-FPM\u306b\u306f3\u3064\u306e\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u30e2\u30fc\u30c9\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9759\u7684\uff08static\uff09<\/strong>\uff1a\u6307\u5b9a\u3057\u305f\u6570\u306e\u30ef\u30fc\u30ab\u30fc\u30d7\u30ed\u30bb\u30b9\u3092\u5e38\u306b\u7dad\u6301 <code>pm = static pm.max_children = 20<\/code><\/li>\n\n\n\n<li><strong>\u52d5\u7684\uff08dynamic\uff09<\/strong>\uff1a\u8ca0\u8377\u306b\u5fdc\u3058\u3066\u30d7\u30ed\u30bb\u30b9\u6570\u3092\u8abf\u6574 <code>pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35<\/code><\/li>\n\n\n\n<li><strong>\u30aa\u30f3\u30c7\u30de\u30f3\u30c9\uff08ondemand\uff09<\/strong>\uff1a\u5fc5\u8981\u6642\u306b\u306e\u307f\u30d7\u30ed\u30bb\u30b9\u3092\u8d77\u52d5 <code>pm = ondemand pm.max_children = 30 pm.process_idle_timeout = 10s<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">mod_php \u3068\u306e\u6c7a\u5b9a\u7684\u306a\u9055\u3044\u3068\u30e1\u30ea\u30c3\u30c8<\/h3>\n\n\n\n<p>\u5f93\u6765\u306ePHP\u5b9f\u884c\u74b0\u5883\u3068\u6bd4\u8f03\u3059\u308b\u3068\u3001PHP-FPM\u306b\u306f\u591a\u304f\u306e\u512a\u4f4d\u70b9\u304c\u3042\u308a\u307e\u3059\u3002\u7279\u306bmod_php\u3068\u306e\u9055\u3044\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001PHP-FPM\u306e\u5229\u70b9\u304c\u3088\u308a\u660e\u78ba\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-6\">\u5b9f\u884c\u30e2\u30c7\u30eb\u306e\u9055\u3044<\/h4>\n\n\n<div id=\"id-a323f99a-ba7b-4ade-9369-d82225e68856\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u5b9f\u884c\u74b0\u5883<\/th><th>\u5b9f\u884c\u30e2\u30c7\u30eb<\/th><th>Web\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u95a2\u4fc2<\/th><\/tr><\/thead><tbody><tr><td>mod_php<\/td><td>Apache\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u3057\u3066\u5b9f\u884c<\/td><td>Apache\u5185\u90e8\u306b\u7d44\u307f\u8fbc\u307e\u308c\u308b<\/td><\/tr><tr><td>PHP-CGI<\/td><td>\u30ea\u30af\u30a8\u30b9\u30c8\u3054\u3068\u306bCGI\u30d7\u30ed\u30bb\u30b9\u3092\u8d77\u52d5<\/td><td>\u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3068\u3057\u3066\u9023\u643a<\/td><\/tr><tr><td>PHP-FPM<\/td><td>FastCGI\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u4e8b\u524d\u8d77\u52d5\u3057\u305f\u30d7\u30ed\u30bb\u30b9\u30d7\u30fc\u30eb<\/td><td>\u5916\u90e8\u30d7\u30ed\u30bb\u30b9\u3068\u3057\u3066\u52b9\u7387\u7684\u306b\u9023\u643a<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-7\">\u30e1\u30e2\u30ea\u4f7f\u7528\u52b9\u7387\u306e\u9055\u3044<\/h4>\n\n\n\n<p>mod_php\u3067\u306f\u3001Apache\uff08httpd\uff09\u30d7\u30ed\u30bb\u30b9\u3054\u3068\u306bPHP\u5b9f\u884c\u30a8\u30f3\u30b8\u30f3\u304c\u30e1\u30e2\u30ea\u306b\u8aad\u307f\u8fbc\u307e\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u5bfe\u3057\u3001PHP-FPM\u3067\u306f\u5fc5\u8981\u306aPHP\u30d7\u30ed\u30bb\u30b9\u306e\u307f\u304c\u30e1\u30e2\u30ea\u3092\u6d88\u8cbb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># mod_php\u306e\u5834\u5408\uff0810\u500b\u306ehttpd\u30d7\u30ed\u30bb\u30b9\u304c\u3042\u308b\u5834\u5408\uff09\n\u5408\u8a08\u30e1\u30e2\u30ea = 10 \u00d7 (Apache\u306e\u30e1\u30e2\u30ea + PHP\u306e\u30e1\u30e2\u30ea)\n\n# PHP-FPM\u306e\u5834\u5408\n\u5408\u8a08\u30e1\u30e2\u30ea = Web\u30b5\u30fc\u30d0\u30fc\u306e\u30e1\u30e2\u30ea + (PHP\u306e\u30e1\u30e2\u30ea \u00d7 FPM\u30d7\u30ed\u30bb\u30b9\u6570)\n<\/pre>\n\n\n\n<p>\u3053\u306e\u9055\u3044\u306b\u3088\u308a\u3001PHP-FPM\u306f\u7279\u306b\u5927\u898f\u6a21\u30b5\u30a4\u30c8\u3067\u30e1\u30e2\u30ea\u4f7f\u7528\u52b9\u7387\u304c\u5927\u5e45\u306b\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-8\">\u4e3b\u8981\u306a\u30e1\u30ea\u30c3\u30c8<\/h4>\n\n\n\n<p>PHP-FPM\u304cmod_php\u306b\u6bd4\u3079\u3066\u512a\u308c\u3066\u3044\u308b\u70b9\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30ea\u30bd\u30fc\u30b9\u52b9\u7387<\/strong>: \u30e1\u30e2\u30ea\u3068CPU\u306e\u4f7f\u7528\u52b9\u7387\u304c\u5411\u4e0a<\/li>\n\n\n\n<li><strong>\u5206\u96e2\u6027<\/strong>: Web\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u660e\u78ba\u306a\u5206\u96e2\u306b\u3088\u308b\u5b89\u5b9a\u6027\u5411\u4e0a<\/li>\n\n\n\n<li><strong>\u67d4\u8edf\u6027<\/strong>: Nginx\u3001Apache\u3001LiteSpeed\u306a\u3069\u69d8\u3005\u306aWeb\u30b5\u30fc\u30d0\u30fc\u3068\u9023\u643a\u53ef\u80fd<\/li>\n\n\n\n<li><strong>\u7d30\u7c92\u5ea6\u306e\u8a2d\u5b9a<\/strong>: \u30d7\u30fc\u30eb\u5358\u4f4d\u3067\u7d30\u304b\u306a\u8a2d\u5b9a\u304c\u53ef\u80fd<\/li>\n\n\n\n<li><strong>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3<\/strong>: \u8ca0\u8377\u306b\u5fdc\u3058\u305f\u67d4\u8edf\u306a\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406<\/li>\n\n\n\n<li><strong>\u5b89\u5168\u6027<\/strong>: \u30e6\u30fc\u30b6\u30fc\u5206\u96e2\u306b\u3088\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u5411\u4e0a<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u306a\u305c\u591a\u304f\u306e\u73fe\u4ee3\u306e PHP \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c PHP-FPM \u3092\u63a1\u7528\u3057\u3066\u3044\u308b\u306e\u304b<\/h3>\n\n\n\n<p>\u73fe\u4ee3\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u3001PHP-FPM\u306f\u6a19\u6e96\u7684\u306a\u9078\u629e\u80a2\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u305d\u306e\u80cc\u666f\u306b\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u7406\u7531\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-10\">\u9ad8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3078\u306e\u8981\u6c42<\/h4>\n\n\n\n<p>\u73fe\u4ee3\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3088\u308a\u9ad8\u901f\u306a\u30ec\u30b9\u30dd\u30f3\u30b9\u304c\u6c42\u3081\u3089\u308c\u3066\u3044\u307e\u3059\u3002PHP-FPM\u306f\u4e8b\u524d\u306b\u8d77\u52d5\u3057\u3066\u304a\u3044\u305f\u30d7\u30ed\u30bb\u30b9\u30d7\u30fc\u30eb\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u9045\u5ef6\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u3089\u308c\u307e\u3059\u3002\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30c6\u30b9\u30c8\u3067\u306f\u3001\u540c\u3058\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u4e0a\u3067mod_php\u3068\u6bd4\u8f03\u3057\u3066\u3001PHP-FPM\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\u306b30\u301c50%\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u304c\u5831\u544a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-11\">\u30af\u30e9\u30a6\u30c9\u3068\u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u306e\u666e\u53ca<\/h4>\n\n\n\n<p>Docker\u306a\u3069\u306e\u30b3\u30f3\u30c6\u30ca\u6280\u8853\u3084\u30af\u30e9\u30a6\u30c9\u74b0\u5883\u304c\u666e\u53ca\u3059\u308b\u4e2d\u3001\u30ea\u30bd\u30fc\u30b9\u52b9\u7387\u304c\u91cd\u8981\u8996\u3055\u308c\u3066\u3044\u307e\u3059\u3002PHP-FPM\u306e\u30ea\u30bd\u30fc\u30b9\u52b9\u7387\u3068\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u306e\u67d4\u8edf\u6027\u306f\u3001\u3053\u3046\u3057\u305f\u74b0\u5883\u3068\u306e\u89aa\u548c\u6027\u304c\u9ad8\u304f\u3001\u591a\u304f\u306e\u73fe\u4ee3\u7684\u306a\u30a4\u30f3\u30d5\u30e9\u30b9\u30c8\u30e9\u30af\u30c1\u30e3\u3067\u63a1\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Docker\u3067\u306e\u30b7\u30f3\u30d7\u30eb\u306a\u5b9f\u88c5\u4f8b\nFROM php:7.4-fpm\nCOPY . \/var\/www\/html\nEXPOSE 9000\nCMD [\"php-fpm\"]\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-12\">\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3068\u306e\u76f8\u6027<\/h4>\n\n\n\n<p>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u306f\u3001\u5404\u30b5\u30fc\u30d3\u30b9\u304c\u72ec\u7acb\u3057\u3066\u6700\u9069\u306a\u8a2d\u5b9a\u3092\u6301\u3064\u3053\u3068\u304c\u7406\u60f3\u7684\u3067\u3059\u3002PHP-FPM\u306e\u30d7\u30fc\u30eb\u6a5f\u80fd\u306f\u3001\u7570\u306a\u308b\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u306b\u5bfe\u3057\u3066\u6700\u9069\u306a\u8a2d\u5b9a\u3092\u9069\u7528\u3067\u304d\u308b\u305f\u3081\u3001\u3053\u3046\u3057\u305f\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3068\u306e\u76f8\u6027\u304c\u826f\u3044\u306e\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-13\">Nginx\u306e\u4eba\u6c17<\/h4>\n\n\n\n<p>\u8efd\u91cf\u3067\u9ad8\u901f\u306aWeb\u30b5\u30fc\u30d0\u30fc\u3067\u3042\u308bNginx\u306e\u4eba\u6c17\u304c\u9ad8\u307e\u308b\u306b\u3064\u308c\u3001Nginx\u3068\u7d44\u307f\u5408\u308f\u305b\u3066\u4f7f\u7528\u3059\u308bPHP-FPM\u3082\u5e83\u304f\u63a1\u7528\u3055\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u7279\u306bNginx\u306fmod_php\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u306a\u3044\u305f\u3081\u3001PHP-FPM\u306f\u81ea\u7136\u306a\u9078\u629e\u80a2\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-14\">\u5b9f\u969b\u306e\u5c0e\u5165\u4e8b\u4f8b<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u63a1\u7528\u306f\u7406\u8ad6\u4e0a\u306e\u30e1\u30ea\u30c3\u30c8\u3060\u3051\u3067\u306a\u304f\u3001\u5b9f\u969b\u306e\u5927\u898f\u6a21\u30b5\u30a4\u30c8\u3067\u306e\u6210\u529f\u4f8b\u3082\u591a\u6570\u3042\u308a\u307e\u3059\u3002\u4f8b\u3048\u3070WordPress\u306e\u516c\u5f0f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3067\u3082\u3001\u9ad8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u74b0\u5883\u3068\u3057\u3066Nginx + PHP-FPM\u306e\u7d44\u307f\u5408\u308f\u305b\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u3001PHP-FPM\u306f\u73fe\u4ee3\u306ePHP\u958b\u767a\u306b\u304a\u3044\u3066\u6b20\u304b\u305b\u306a\u3044\u5b58\u5728\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u6b21\u7ae0\u3067\u306f\u3001\u74b0\u5883\u5225\u306ePHP-FPM\u5c0e\u5165\u624b\u9806\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">PHP-FPM \u306e\u5c0e\u5165\u624b\u9806 \u2013 \u74b0\u5883\u5225\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30ac\u30a4\u30c9<\/h2>\n\n\n\n<p>PHP-FPM\u3092\u52b9\u679c\u7684\u306b\u6d3b\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u307e\u305a\u9069\u5207\u306a\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a\u304c\u5fc5\u8981\u3067\u3059\u3002\u30b5\u30fc\u30d0\u30fc\u74b0\u5883\u306b\u3088\u3063\u3066\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u65b9\u6cd5\u306f\u7570\u306a\u308a\u307e\u3059\u304c\u3001\u57fa\u672c\u7684\u306a\u8003\u3048\u65b9\u306f\u5171\u901a\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u306f\u3001\u4e3b\u8981\u306aOS\u3054\u3068\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806\u3068\u521d\u671f\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">Ubuntu \u3067\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/h3>\n\n\n\n<p>Ubuntu Server\u306fPHP\u306e\u5b9f\u884c\u74b0\u5883\u3068\u3057\u3066\u5e83\u304f\u4f7f\u308f\u308c\u3066\u304a\u308a\u3001PHP-FPM\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3082\u6bd4\u8f03\u7684\u7c21\u5358\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-17\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5<\/h4>\n\n\n\n<p>Ubuntu\u3067\u306f\u4e3b\u306b3\u3064\u306e\u65b9\u6cd5\u3067PHP-FPM\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u516c\u5f0f\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30dd\u30b8\u30c8\u30ea\u304b\u3089\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><\/p>\n\n\n\n<p>\u6700\u3082\u7c21\u5358\u306a\u65b9\u6cd5\u3067\u3059\u304c\u3001\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u53e4\u3044\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30b7\u30b9\u30c6\u30e0\u306e\u66f4\u65b0\nsudo apt update\n\n# PHP-FPM\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo apt install php-fpm\n<\/pre>\n\n\n\n<p><strong>2. PPA\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3057\u305f\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u63a8\u5968\uff09<\/strong><\/p>\n\n\n\n<p>Ondrej Sury\u6c0f\u304c\u63d0\u4f9b\u3059\u308bPPA\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u6700\u65b0\u306ePHP\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PPA\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8ffd\u52a0\nsudo add-apt-repository ppa:ondrej\/php\nsudo apt update\n\n# \u7279\u5b9a\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u4f8b\uff1aPHP 8.1\uff09\nsudo apt install php8.1-fpm\n\n# \u4e00\u822c\u7684\u306b\u5fc5\u8981\u306a\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo apt install php8.1-mysql php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-xml php8.1-zip\n<\/pre>\n\n\n\n<p><strong>3. \u30bd\u30fc\u30b9\u304b\u3089\u306e\u30b3\u30f3\u30d1\u30a4\u30eb<\/strong><\/p>\n\n\n\n<p>\u7279\u6b8a\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u304c\u5fc5\u8981\u306a\u5834\u5408\u306b\u5229\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u5fc5\u8981\u306a\u30d3\u30eb\u30c9\u30c4\u30fc\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo apt install build-essential autoconf libtool bison re2c libxml2-dev libssl-dev\n\n# PHP\u30bd\u30fc\u30b9\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u5c55\u958b\uff08\u30d0\u30fc\u30b8\u30e7\u30f3\u306f\u9069\u5b9c\u5909\u66f4\uff09\nwget https:\/\/www.php.net\/distributions\/php-8.1.9.tar.gz\ntar -xzf php-8.1.9.tar.gz\ncd php-8.1.9\n\n# \u8a2d\u5b9a\u3068\u30d3\u30eb\u30c9\n.\/configure --enable-fpm --with-mysql --with-mysqli --with-pdo-mysql\nmake\nsudo make install\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-18\">\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u69cb\u9020<\/h4>\n\n\n\n<p>Ubuntu\u3067\u306f\u3001PHP-FPM\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u5834\u6240\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-04aea7bf-12d9-49f8-881d-64a581779fa6\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d5\u30a1\u30a4\u30eb<\/th><th>\u5f79\u5272<\/th><th>\u5834\u6240<\/th><\/tr><\/thead><tbody><tr><td>php-fpm.conf<\/td><td>\u30e1\u30a4\u30f3\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb<\/td><td>\/etc\/php\/8.1\/fpm\/php-fpm.conf<\/td><\/tr><tr><td>www.conf<\/td><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u30d7\u30fc\u30eb\u306e\u8a2d\u5b9a<\/td><td>\/etc\/php\/8.1\/fpm\/pool.d\/www.conf<\/td><\/tr><tr><td>php.ini<\/td><td>PHP\u81ea\u4f53\u306e\u8a2d\u5b9a<\/td><td>\/etc\/php\/8.1\/fpm\/php.ini<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-19\">\u57fa\u672c\u8a2d\u5b9a<\/h4>\n\n\n\n<p>www.conf\u30d5\u30a1\u30a4\u30eb\u306b\u3042\u308b\u91cd\u8981\u306a\u8a2d\u5b9a\u9805\u76ee\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30ea\u30c3\u30b9\u30f3\u3059\u308b\u30bd\u30b1\u30c3\u30c8\u307e\u305f\u306f\u30dd\u30fc\u30c8\nlisten = \/run\/php\/php8.1-fpm.sock\n; \u307e\u305f\u306f\n; listen = 127.0.0.1:9000\n\n; \u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u65b9\u5f0f\npm = dynamic\npm.max_children = 50\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 35\npm.max_requests = 500\n\n; \u30e6\u30fc\u30b6\u30fc\u3068\u30b0\u30eb\u30fc\u30d7\nuser = www-data\ngroup = www-data\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-20\">\u30b5\u30fc\u30d3\u30b9\u306e\u7ba1\u7406<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30b5\u30fc\u30d3\u30b9\u306e\u8d77\u52d5\nsudo systemctl start php8.1-fpm\n\n# \u30b5\u30fc\u30d3\u30b9\u306e\u505c\u6b62\nsudo systemctl stop php8.1-fpm\n\n# \u30b5\u30fc\u30d3\u30b9\u306e\u518d\u8d77\u52d5\nsudo systemctl restart php8.1-fpm\n\n# \u8d77\u52d5\u6642\u306b\u81ea\u52d5\u8d77\u52d5\u3055\u305b\u308b\nsudo systemctl enable php8.1-fpm\n\n# \u30b5\u30fc\u30d3\u30b9\u306e\u72b6\u614b\u78ba\u8a8d\nsudo systemctl status php8.1-fpm\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-21\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u78ba\u8a8d<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP-FPM\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u78ba\u8a8d\nphp-fpm8.1 -v\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u69cb\u6587\u30c1\u30a7\u30c3\u30af\nphp-fpm8.1 -t\n\n# \u30d7\u30ed\u30bb\u30b9\u304c\u5b9f\u884c\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\nps aux | grep php-fpm\n\n# \u30bd\u30b1\u30c3\u30c8\u307e\u305f\u306f\u30dd\u30fc\u30c8\u304c\u958b\u3044\u3066\u3044\u308b\u304b\u78ba\u8a8d\nsudo ls -la \/run\/php\/php8.1-fpm.sock\n# \u307e\u305f\u306f\nnetstat -tulpn | grep 9000\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-22\">CentOS \u3067\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u57fa\u672c\u8a2d\u5b9a<\/h3>\n\n\n\n<p>CentOS\u3084RHEL\u7cfb\u306e\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001yum\u307e\u305f\u306fdnf\u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u3092\u4f7f\u7528\u3057\u3066PHP-FPM\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-23\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5<\/h4>\n\n\n\n<p><strong>1. \u6a19\u6e96\u30ea\u30dd\u30b8\u30c8\u30ea\u304b\u3089\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08CentOS 7\uff09<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># EPEL\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8ffd\u52a0\nsudo yum install epel-release\n\n# PHP-FPM\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo yum install php-fpm\n<\/pre>\n\n\n\n<p><strong>2. \u6a19\u6e96\u30ea\u30dd\u30b8\u30c8\u30ea\u304b\u3089\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08CentOS 8\/Stream\uff09<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP-FPM\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo dnf install php-fpm\n<\/pre>\n\n\n\n<p><strong>3. Remi\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u4f7f\u7528\u3057\u305f\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u63a8\u5968\uff09<\/strong><\/p>\n\n\n\n<p>CentOS 7\u306e\u5834\u5408\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># EPEL\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8ffd\u52a0\nsudo yum install epel-release\n\n# Remi\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8ffd\u52a0\nsudo yum install https:\/\/rpms.remirepo.net\/enterprise\/remi-release-7.rpm\n\n# \u7279\u5b9a\u306ePHP\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u6709\u52b9\u5316\uff08\u4f8b\uff1aPHP 8.1\uff09\nsudo yum-config-manager --enable remi-php81\n\n# PHP-FPM\u3068\u3088\u304f\u4f7f\u7528\u3055\u308c\u308b\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo yum install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-intl\n<\/pre>\n\n\n\n<p>CentOS 8\/Stream\u306e\u5834\u5408\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># EPEL\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8ffd\u52a0\nsudo dnf install epel-release\n\n# Remi\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u8ffd\u52a0\nsudo dnf install https:\/\/rpms.remirepo.net\/enterprise\/remi-release-8.rpm\n\n# PHP\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u7279\u5b9a\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u6709\u52b9\u5316\nsudo dnf module reset php\nsudo dnf module enable php:remi-8.1\n\n# PHP-FPM\u3068\u3088\u304f\u4f7f\u7528\u3055\u308c\u308b\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo dnf install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-intl\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-24\">\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u69cb\u9020<\/h4>\n\n\n\n<p>CentOS\u3067\u306f\u3001\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u4ee5\u4e0b\u306e\u5834\u6240\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-b9556712-6794-401b-a213-bb74019bbc40\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d5\u30a1\u30a4\u30eb<\/th><th>\u5f79\u5272<\/th><th>\u5834\u6240<\/th><\/tr><\/thead><tbody><tr><td>php-fpm.conf<\/td><td>\u30e1\u30a4\u30f3\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb<\/td><td>\/etc\/php-fpm.conf<\/td><\/tr><tr><td>www.conf<\/td><td>\u30c7\u30d5\u30a9\u30eb\u30c8\u30d7\u30fc\u30eb\u306e\u8a2d\u5b9a<\/td><td>\/etc\/php-fpm.d\/www.conf<\/td><\/tr><tr><td>php.ini<\/td><td>PHP\u81ea\u4f53\u306e\u8a2d\u5b9a<\/td><td>\/etc\/php.ini<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"i-25\">\u57fa\u672c\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u91cd\u8981\u306a\u8a2d\u5b9a\u9805\u76ee\uff08\/etc\/php-fpm.d\/www.conf\uff09\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30ea\u30c3\u30b9\u30f3\u3059\u308b\u30bd\u30b1\u30c3\u30c8\u307e\u305f\u306f\u30dd\u30fc\u30c8\nlisten = \/var\/run\/php-fpm\/php-fpm.sock\n; \u307e\u305f\u306f\n; listen = 127.0.0.1:9000\n\n; \u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u65b9\u5f0f\npm = dynamic\npm.max_children = 50\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 35\npm.max_requests = 500\n\n; \u30e6\u30fc\u30b6\u30fc\u3068\u30b0\u30eb\u30fc\u30d7\nuser = apache\ngroup = apache\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-26\">SELinux\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<p>CentOS\u3067\u306fSELinux\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u304f\u3001Web\u30b5\u30fc\u30d0\u30fc\u304c\u6b63\u5e38\u306bPHP-FPM\u3068\u901a\u4fe1\u3067\u304d\u308b\u3088\u3046\u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Web\u30b5\u30fc\u30d0\u30fc\u304cPHP-FPM\u306b\u63a5\u7d9a\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\nsudo setsebool -P httpd_can_network_connect 1\n\n# \u30bd\u30b1\u30c3\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u6b63\u3057\u3044\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3092\u8a2d\u5b9a\nsudo semanage fcontext -a -t httpd_var_run_t \"\/var\/run\/php-fpm(\/.*)?\"\nsudo restorecon -Rv \/var\/run\/php-fpm\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-27\">\u30b5\u30fc\u30d3\u30b9\u306e\u7ba1\u7406<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30b5\u30fc\u30d3\u30b9\u306e\u8d77\u52d5\nsudo systemctl start php-fpm\n\n# \u30b5\u30fc\u30d3\u30b9\u306e\u505c\u6b62\nsudo systemctl stop php-fpm\n\n# \u30b5\u30fc\u30d3\u30b9\u306e\u518d\u8d77\u52d5\nsudo systemctl restart php-fpm\n\n# \u8d77\u52d5\u6642\u306b\u81ea\u52d5\u8d77\u52d5\u3055\u305b\u308b\nsudo systemctl enable php-fpm\n\n# \u30b5\u30fc\u30d3\u30b9\u306e\u72b6\u614b\u78ba\u8a8d\nsudo systemctl status php-fpm\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-28\">\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u8a2d\u5b9a<\/h4>\n\n\n\n<p>TCP\u30bd\u30b1\u30c3\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306e\u8a2d\u5b9a\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3067TCP\u30dd\u30fc\u30c89000\u3092\u958b\u653e\uff08\u5fc5\u8981\u306a\u5834\u5408\u306e\u307f\uff09\nsudo firewall-cmd --permanent --add-port=9000\/tcp\nsudo firewall-cmd --reload\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-29\">Windows \u74b0\u5883\u3067\u306e\u8a2d\u5b9a\u65b9\u6cd5\u3068\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>Windows\u3067\u306ePHP-FPM\u8a2d\u5b9a\u306f\u5c11\u3057\u8907\u96d1\u3067\u3059\u304c\u3001\u4ee5\u4e0b\u306e\u624b\u9806\u3067\u8a2d\u5b9a\u53ef\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-30\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u624b\u9806<\/h4>\n\n\n\n<p><strong>1. PHP\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/windows.php.net\/download\/\">PHP for Windows<\/a> \u304b\u3089\u6700\u65b0\u306ePHP ZIP\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002PHP-FPM\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001<strong>Non Thread Safe<\/strong>\u7248\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/li>\n\n\n\n<li>\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fZIP\u30d5\u30a1\u30a4\u30eb\u3092\u4efb\u610f\u306e\u30d5\u30a9\u30eb\u30c0\uff08\u4f8b\uff1a<code>C:\\PHP<\/code>\uff09\u306b\u89e3\u51cd\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>php.ini-production<\/code> \u3092\u30b3\u30d4\u30fc\u3057\u3066 <code>php.ini<\/code> \u306b\u30ea\u30cd\u30fc\u30e0\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>php.ini<\/code> \u30d5\u30a1\u30a4\u30eb\u3092\u7de8\u96c6\u3057\u3001\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\uff1a <code>extension_dir = \"ext\" extension=curl extension=gd extension=mbstring extension=mysqli extension=pdo_mysql ; \u305d\u306e\u4ed6\u5fc5\u8981\u306a\u62e1\u5f35\u6a5f\u80fd cgi.force_redirect = 0 fastcgi.impersonate = 1 fastcgi.logging = 0<\/code><\/li>\n\n\n\n<li>\u74b0\u5883\u5909\u6570PATH\u306bPHP\u30d5\u30a9\u30eb\u30c0\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002 <code>setx PATH \"%PATH%;C:\\PHP\" \/M<\/code><\/li>\n<\/ol>\n\n\n\n<p><strong>2. PHP-FPM\u306e\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>C:\\PHP\\etc<\/code> \u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u3001\u305d\u306e\u4e2d\u306b <code>php-fpm.conf<\/code> \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[global]\npid = C:\/PHP\/var\/run\/php-fpm.pid\nerror_log = C:\/PHP\/var\/log\/php-fpm.log\ndaemonize = no<\/pre>\n\n\n[www]\n\n\n\n<p>user = nobody group = nobody listen = 127.0.0.1:9000 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3<\/p>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><code>C:\\PHP\\var\\log<\/code> \u3068 <code>C:\\PHP\\var\\run<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-31\">PHP-FPM\u3092Windows\u30b5\u30fc\u30d3\u30b9\u3068\u3057\u3066\u5b9f\u884c<\/h4>\n\n\n\n<p>PHP-FPM\u3092Windows\u30b5\u30fc\u30d3\u30b9\u3068\u3057\u3066\u5b9f\u884c\u3059\u308b\u306b\u306f\u3001NSSM\uff08Non-Sucking Service Manager\uff09\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/nssm.cc\/download\">NSSM<\/a> \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u5c55\u958b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u7ba1\u7406\u8005\u6a29\u9650\u3067\u30b3\u30de\u30f3\u30c9\u30d7\u30ed\u30f3\u30d7\u30c8\u3092\u958b\u304d\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059\uff1a <code>nssm.exe install PHP-FPM \"C:\\PHP\\php-cgi.exe\" \"-b 127.0.0.1:9000\" nssm.exe set PHP-FPM AppDirectory \"C:\\PHP\" nssm.exe set PHP-FPM Description \"PHP FastCGI Process Manager\" nssm.exe start PHP-FPM<\/code><\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-32\">IIS\u3068\u306e\u9023\u643a<\/h4>\n\n\n\n<p>IIS\u3067PHP-FPM\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u304c\u5fc5\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>IIS\u30de\u30cd\u30fc\u30b8\u30e3\u3067\u300c\u30e2\u30b8\u30e5\u30fc\u30eb\u300d\u6a5f\u80fd\u3092\u958b\u304d\u3001\u300c\u69cb\u6210\u306e\u7de8\u96c6\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>FastCgiModule<\/code> \u3092\u4f7f\u7528\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3057\u307e\u3059\uff1a\n<ul class=\"wp-block-list\">\n<li>PHP\u30d7\u30ed\u30b0\u30e9\u30e0\u30d1\u30b9\uff1a<code>C:\\PHP\\php-cgi.exe<\/code><\/li>\n\n\n\n<li>\u5f15\u6570\uff1a<code>-d cgi.force_redirect=0 -d open_basedir=none<\/code><\/li>\n\n\n\n<li>\u6700\u5927\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u6570\uff1a0\uff08\u7121\u5236\u9650\uff09<\/li>\n\n\n\n<li>\u74b0\u5883\u5909\u6570\uff1a<code>PHP_FCGI_MAX_REQUESTS=10000<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30cf\u30f3\u30c9\u30e9\u30fc\u30de\u30c3\u30d4\u30f3\u30b0\u3067\u3001<code>*.php<\/code> \u30ea\u30af\u30a8\u30b9\u30c8\u3092 <code>FastCgiModule<\/code> \u306b\u30de\u30c3\u30d4\u30f3\u30b0\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-33\">Windows\u3067\u306e\u4e00\u822c\u7684\u306a\u554f\u984c\u3068\u89e3\u6c7a\u65b9\u6cd5<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30dd\u30fc\u30c8\u7af6\u5408<\/strong>\uff1a9000\u756a\u30dd\u30fc\u30c8\u306f\u4ed6\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\uff08\u7279\u306bJava\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\uff09\u3067\u3082\u4f7f\u308f\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u7af6\u5408\u3059\u308b\u5834\u5408\u306f\u3001\u5225\u306e\u30dd\u30fc\u30c8\uff08\u4f8b\uff1a9001\uff09\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/li>\n\n\n\n<li><strong>\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u554f\u984c<\/strong>\uff1aPHP\u30b9\u30af\u30ea\u30d7\u30c8\u3084\u30ed\u30b0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3078\u306e\u9069\u5207\u306a\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u304c\u5fc5\u8981\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30d1\u30b9\u533a\u5207\u308a\u6587\u5b57<\/strong>\uff1aWindows\u306e\u30d1\u30b9\u306f\u300c\\\u300d\u3092\u4f7f\u7528\u3057\u307e\u3059\u304c\u3001\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u5185\u3067\u306f\u300c\/\u300d\u307e\u305f\u306f\u300c\\\\\u300d\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>PHP-FPM\u304c\u8d77\u52d5\u3057\u306a\u3044\u5834\u5408<\/strong>\uff1a\u30ed\u30b0\u3092\u78ba\u8a8d\u3057\u3001\u6b63\u3057\u3044\u30d1\u30b9\u3068\u8a2d\u5b9a\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-34\">\u5171\u901a\u306e\u8a2d\u5b9a\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>\u3069\u306e\u74b0\u5883\u3067\u3082\u3001\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u9805\u76ee\u306f\u7279\u306b\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-35\">\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u65b9\u5f0f\uff08dynamic\/static\/ondemand\uff09\npm = dynamic\n\n; \u6700\u5927\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.max_children = 50\n\n; \u8d77\u52d5\u6642\u306e\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.start_servers = 5\n\n; \u6700\u5c0f\u30a2\u30a4\u30c9\u30eb\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.min_spare_servers = 5\n\n; \u6700\u5927\u30a2\u30a4\u30c9\u30eb\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.max_spare_servers = 35\n\n; \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u518d\u8d77\u52d5\u307e\u3067\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u6570\npm.max_requests = 500\n<\/pre>\n\n\n\n<p>\u5404\u30b5\u30fc\u30d0\u30fc\u306e\u30b9\u30da\u30c3\u30af\u306b\u5fdc\u3058\u3066\u3001\u3053\u308c\u3089\u306e\u5024\u3092\u8abf\u6574\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u7279\u306b <code>pm.max_children<\/code> \u306e\u5024\u306f\u91cd\u8981\u3067\u3001\u30b5\u30fc\u30d0\u30fc\u306e\u30e1\u30e2\u30ea\u5bb9\u91cf\u3068\u5404PHP\u30d7\u30ed\u30bb\u30b9\u304c\u4f7f\u7528\u3059\u308b\u30e1\u30e2\u30ea\u91cf\u304b\u3089\u8a08\u7b97\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pm.max_children = \u30b5\u30fc\u30d0\u30fc\u306e\u5229\u7528\u53ef\u80fd\u30e1\u30e2\u30ea \u00f7 \u5e73\u5747\u7684\u306aPHP\u30d7\u30ed\u30bb\u30b9\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-36\">\u63a5\u7d9a\u8a2d\u5b9a<\/h4>\n\n\n\n<p>UNIX\u30bd\u30b1\u30c3\u30c8\u3068TCP\u30bd\u30b1\u30c3\u30c8\u306e\u3069\u3061\u3089\u3092\u4f7f\u7528\u3059\u308b\u304b\u3092\u6c7a\u5b9a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; UNIX\u30bd\u30b1\u30c3\u30c8\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\nlisten = \/path\/to\/php-fpm.sock\nlisten.owner = www-data\nlisten.group = www-data\nlisten.mode = 0660\n\n; TCP\u30bd\u30b1\u30c3\u30c8\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\nlisten = 127.0.0.1:9000\n<\/pre>\n\n\n\n<p>UNIX\u30bd\u30b1\u30c3\u30c8\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u9ad8\u304f\u3001\u540c\u4e00\u30b5\u30fc\u30d0\u30fc\u4e0a\u3067\u306e\u307f\u4f7f\u7528\u53ef\u80fd\u3067\u3059\u3002TCP\u30bd\u30b1\u30c3\u30c8\u306f\u7570\u306a\u308b\u30b5\u30fc\u30d0\u30fc\u9593\u3067\u63a5\u7d9a\u3059\u308b\u5834\u5408\u306b\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-37\">\u30a8\u30e9\u30fc\u30ed\u30b0\u8a2d\u5b9a<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30a8\u30e9\u30fc\u30ed\u30b0\u306e\u5834\u6240\nerror_log = \/var\/log\/php-fpm.log\n\n; \u30ed\u30b0\u30ec\u30d9\u30eb\uff08debug, notice, warning, error, alert, \u307e\u305f\u306f emergency\uff09\nlog_level = notice\n\n; \u30b9\u30ed\u30fc\u5b9f\u884c\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u30ed\u30b0\nrequest_slowlog_timeout = 5s\nslowlog = \/var\/log\/php-fpm-slow.log\n<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u304c\u3001PHP-FPM\u306e\u4e3b\u8981\u306a\u74b0\u5883\u3067\u306e\u5c0e\u5165\u624b\u9806\u3068\u57fa\u672c\u8a2d\u5b9a\u3067\u3059\u3002\u6b21\u7ae0\u3067\u306fNginx\u3068PHP-FPM\u306e\u9023\u643a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-38\">Nginx \u3068 PHP-FPM \u306e\u9023\u643a \u2013 \u9ad8\u901f\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30fc\u69cb\u7bc9\u306e\u57fa\u672c<\/h2>\n\n\n\n<p>Nginx\u3068PHP-FPM\u306e\u7d44\u307f\u5408\u308f\u305b\u306f\u3001\u9ad8\u6027\u80fd\u3067\u67d4\u8edf\u6027\u306e\u3042\u308bPHP\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5b9f\u884c\u74b0\u5883\u3068\u3057\u3066\u5e83\u304f\u63a1\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u7ae0\u3067\u306f\u3001Nginx\u3068PHP-FPM\u306e\u9023\u643a\u65b9\u6cd5\u306b\u3064\u3044\u3066\u3001\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u304b\u3089\u5b9f\u8df5\u7684\u306a\u69cb\u6210\u4f8b\u307e\u3067\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-39\">Nginx \u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067 PHP-FPM \u3068\u9023\u643a\u3059\u308b\u65b9\u6cd5<\/h3>\n\n\n\n<p>Nginx\u3068PHP-FPM\u306e\u9023\u643a\u306f\u3001FastCGI\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u4ecb\u3057\u3066\u884c\u308f\u308c\u307e\u3059\u3002\u3053\u306e\u9023\u643a\u3092\u6b63\u3057\u304f\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u9759\u7684\u30d5\u30a1\u30a4\u30eb\u306fNginx\u304c\u76f4\u63a5\u51e6\u7406\u3057\u3001PHP\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u307f\u3092PHP-FPM\u306b\u8ee2\u9001\u3059\u308b\u52b9\u7387\u7684\u306a\u51e6\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-40\">\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u30d5\u30ed\u30fc<\/h4>\n\n\n\n<p>Nginx\u3068PHP-FPM\u306e\u4e00\u822c\u7684\u306a\u51e6\u7406\u30d5\u30ed\u30fc\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u304cNginx\u3078\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u4fe1<\/li>\n\n\n\n<li>Nginx\u304c\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u3051\u53d6\u308a\u3001URI\u3092\u30c1\u30a7\u30c3\u30af<\/li>\n\n\n\n<li>\u30ea\u30af\u30a8\u30b9\u30c8\u304cPHP\u30d5\u30a1\u30a4\u30eb\uff08.php\u62e1\u5f35\u5b50\uff09\u306e\u5834\u5408\u3001Nginx\u306fFastCGI\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u4f7f\u7528\u3057\u3066PHP-FPM\u306b\u8ee2\u9001<\/li>\n\n\n\n<li>PHP-FPM\u304cPHP\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c<\/li>\n\n\n\n<li>PHP-FPM\u304c\u5b9f\u884c\u7d50\u679c\u3092Nginx\u306b\u8fd4\u3059<\/li>\n\n\n\n<li>Nginx\u304c\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u7d50\u679c\u3092\u8fd4\u3059<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-41\">\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u69cb\u9020<\/h4>\n\n\n\n<p>Nginx\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u901a\u5e38 <code>\/etc\/nginx\/nginx.conf<\/code> \u306b\u3042\u308a\u3001\u30b5\u30a4\u30c8\u56fa\u6709\u306e\u8a2d\u5b9a\u306f <code>\/etc\/nginx\/sites-available\/<\/code> \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002\u4ee5\u4e0b\u306f\u3001\u57fa\u672c\u7684\u306aPHP-FPM\u9023\u643a\u8a2d\u5b9a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">server {\n    listen 80;\n    server_name example.com www.example.com;\n    root \/var\/www\/html;\n    index index.php index.html index.htm;\n\n    # PHP\u30d5\u30a1\u30a4\u30eb\u306e\u51e6\u7406\n    location ~ \\.php$ {\n        fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;  # PHP-FPM\u306e\u30bd\u30b1\u30c3\u30c8\u30d1\u30b9\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-42\">\u91cd\u8981\u306a\u8a2d\u5b9a\u30d1\u30e9\u30e1\u30fc\u30bf<\/h4>\n\n\n\n<p><strong>fastcgi_pass<\/strong>: PHP-FPM\u3078\u306e\u63a5\u7d9a\u65b9\u6cd5\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002UNIX\u30bd\u30b1\u30c3\u30c8\u307e\u305f\u306fIP\u30a2\u30c9\u30ec\u30b9:\u30dd\u30fc\u30c8\u306e\u5f62\u5f0f\u3067\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UNIX\u30bd\u30b1\u30c3\u30c8: <code>fastcgi_pass unix:\/path\/to\/php-fpm.sock;<\/code><\/li>\n\n\n\n<li>TCP\u30bd\u30b1\u30c3\u30c8: <code>fastcgi_pass 127.0.0.1:9000;<\/code><\/li>\n<\/ul>\n\n\n\n<p><strong>fastcgi_param SCRIPT_FILENAME<\/strong>: PHP\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u5b9f\u969b\u306e\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002\u3053\u306e\u8a2d\u5b9a\u304c\u6b63\u3057\u304f\u306a\u3044\u3068\u3001\u300cFile not found\u300d\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n<\/pre>\n\n\n\n<p><strong>include fastcgi_params<\/strong>: \u6a19\u6e96\u7684\u306aFastCGI\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u542b\u3080\u30d5\u30a1\u30a4\u30eb\u3092\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3057\u307e\u3059\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u3001PHP\u306b\u74b0\u5883\u5909\u6570\u3092\u6e21\u3059\u305f\u3081\u306e\u591a\u304f\u306e\u8a2d\u5b9a\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-43\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u3059\u308b\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP\u30d5\u30a1\u30a4\u30eb\u5185\u306b\u76f4\u63a5\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u62d2\u5426\nlocation ~ \/\\.(?!well-known).* {\n    deny all;\n}\n\n# \u5b58\u5728\u3057\u306a\u3044PHP\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u62d2\u5426\nlocation ~ \\.php$ {\n    try_files $uri =404;\n    # \u4ed6\u306efastcgi\u8a2d\u5b9a...\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-44\">\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u9577\u6642\u9593\u5b9f\u884c\u3055\u308c\u308bPHP\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a\u3092\u8abf\u6574\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">location ~ \\.php$ {\n    fastcgi_read_timeout 300;  # \u79d2\u5358\u4f4d\uff08\u30c7\u30d5\u30a9\u30eb\u30c8\u306f60\u79d2\uff09\n    # \u4ed6\u306efastcgi\u8a2d\u5b9a...\n}\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-45\">Unix \u30bd\u30b1\u30c3\u30c8 vs TCP \u30bd\u30b1\u30c3\u30c8 \u2013 \u3069\u3061\u3089\u3092\u9078\u3076\u3079\u304d\u304b<\/h3>\n\n\n\n<p>PHP-FPM\u306b\u63a5\u7d9a\u3059\u308b\u306b\u306f\u3001UNIX\u30bd\u30b1\u30c3\u30c8\u3068TCP\u30bd\u30b1\u30c3\u30c8\u306e2\u3064\u306e\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u308c\u305e\u308c\u306b\u9577\u6240\u3068\u77ed\u6240\u304c\u3042\u308b\u305f\u3081\u3001\u74b0\u5883\u3084\u8981\u4ef6\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u9078\u629e\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-46\">UNIX\u30bd\u30b1\u30c3\u30c8<\/h4>\n\n\n\n<p>UNIX\u30bd\u30b1\u30c3\u30c8\u306f\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u4e0a\u306e\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u8868\u73fe\u3055\u308c\u3001\u30d7\u30ed\u30bb\u30b9\u9593\u901a\u4fe1\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u8a2d\u5b9a\u65b9\u6cd5<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;\n<\/pre>\n\n\n\n<p>PHP-FPM\u5074\u306e\u8a2d\u5b9a\uff08\/etc\/php\/8.1\/fpm\/pool.d\/www.conf\uff09:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">listen = \/run\/php\/php8.1-fpm.sock\nlisten.owner = www-data\nlisten.group = www-data\nlisten.mode = 0660\n<\/pre>\n\n\n\n<p><strong>\u30e1\u30ea\u30c3\u30c8<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u9ad8\u3044\uff08\u7279\u306b\u9ad8\u8ca0\u8377\u74b0\u5883\u30675-10%\u7a0b\u5ea6\u306e\u5dee\u304c\u51fa\u308b\u3053\u3068\u3082\uff09<\/li>\n\n\n\n<li>\u30d5\u30a1\u30a4\u30eb\u30c7\u30a3\u30b9\u30af\u30ea\u30d7\u30bf\u306e\u4f7f\u7528\u52b9\u7387\u304c\u826f\u3044<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30b9\u30bf\u30c3\u30af\u3092\u7d4c\u7531\u3057\u306a\u3044\u305f\u3081\u3001\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u5c11\u306a\u3044<\/li>\n\n\n\n<li>\u30ed\u30fc\u30ab\u30eb\u30e6\u30fc\u30b6\u30fc\u306e\u307f\u304c\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a\u305f\u3081\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u9762\u3067\u512a\u308c\u308b<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30c7\u30e1\u30ea\u30c3\u30c8<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7570\u306a\u308b\u30b5\u30fc\u30d0\u30fc\u9593\u3067\u306f\u4f7f\u7528\u3067\u304d\u306a\u3044<\/li>\n\n\n\n<li>\u30d5\u30a1\u30a4\u30eb\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u7ba1\u7406\u304c\u5fc5\u8981<\/li>\n\n\n\n<li>\u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u3067\u306f\u8ffd\u52a0\u8a2d\u5b9a\u304c\u5fc5\u8981\u306a\u5834\u5408\u304c\u3042\u308b<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-47\">TCP\u30bd\u30b1\u30c3\u30c8<\/h4>\n\n\n\n<p>TCP\u30bd\u30b1\u30c3\u30c8\u306fIP\u30a2\u30c9\u30ec\u30b9\u3068\u30dd\u30fc\u30c8\u756a\u53f7\u306b\u3088\u3063\u3066\u8b58\u5225\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u8a2d\u5b9a\u65b9\u6cd5<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">fastcgi_pass 127.0.0.1:9000;\n<\/pre>\n\n\n\n<p>PHP-FPM\u5074\u306e\u8a2d\u5b9a:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">listen = 127.0.0.1:9000\n<\/pre>\n\n\n\n<p><strong>\u30e1\u30ea\u30c3\u30c8<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7570\u306a\u308b\u30b5\u30fc\u30d0\u30fc\u9593\u3067\u306e\u63a5\u7d9a\u304c\u53ef\u80fd<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u304c\u30b7\u30f3\u30d7\u30eb<\/li>\n\n\n\n<li>Docker\u306a\u3069\u306e\u30b3\u30f3\u30c6\u30ca\u9593\u901a\u4fe1\u306b\u9069\u3057\u3066\u3044\u308b<\/li>\n\n\n\n<li>\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u304c\u4e0d\u8981<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30c7\u30e1\u30ea\u30c3\u30c8<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UNIX\u30bd\u30b1\u30c3\u30c8\u3088\u308a\u308f\u305a\u304b\u306b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u4f4e\u3044<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30b9\u30bf\u30c3\u30af\u3092\u7d4c\u7531\u3059\u308b\u305f\u3081\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u3042\u308b<\/li>\n\n\n\n<li>\u30dd\u30fc\u30c8\u7af6\u5408\u306b\u6ce8\u610f\u304c\u5fc5\u8981<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30a2\u30af\u30bb\u30b9\u5236\u9650\u304c\u5fc5\u8981<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-48\">\u9078\u629e\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3<\/h4>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u6761\u4ef6\u306b\u57fa\u3065\u3044\u3066\u9078\u629e\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-62496cfd-d5dd-4402-ab0a-91d8371969ea\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6761\u4ef6<\/th><th>\u63a8\u5968<\/th><\/tr><\/thead><tbody><tr><td>\u540c\u4e00\u30b5\u30fc\u30d0\u30fc\u4e0a\u306eNginx\u3068PHP-FPM<\/td><td>UNIX\u30bd\u30b1\u30c3\u30c8<\/td><\/tr><tr><td>\u7570\u306a\u308b\u30b5\u30fc\u30d0\u30fc\u4e0a\u306eNginx\u3068PHP-FPM<\/td><td>TCP\u30bd\u30b1\u30c3\u30c8<\/td><\/tr><tr><td>\u9ad8\u8ca0\u8377\u306e\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883<\/td><td>UNIX\u30bd\u30b1\u30c3\u30c8<\/td><\/tr><tr><td>Docker\u30b3\u30f3\u30c6\u30ca<\/td><td>TCP\u30bd\u30b1\u30c3\u30c8\uff08\u5358\u4e00\u30db\u30b9\u30c8\uff09\u307e\u305f\u306fUNIX\u30bd\u30b1\u30c3\u30c8\uff08\u30dc\u30ea\u30e5\u30fc\u30e0\u5171\u6709\u6642\uff09<\/td><\/tr><tr><td>\u958b\u767a\u74b0\u5883<\/td><td>\u3069\u3061\u3089\u3067\u3082\uff08\u8a2d\u5b9a\u306e\u30b7\u30f3\u30d7\u30eb\u3055\u304b\u3089TCP\u30bd\u30b1\u30c3\u30c8\u304c\u4fbf\u5229\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u5b9f\u969b\u306e\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u3067\u306f\u3001\u5c0f\u301c\u4e2d\u898f\u6a21\u306e\u30b5\u30a4\u30c8\u3067\u306f\u4e21\u8005\u306e\u5dee\u306f\u307b\u3068\u3093\u3069\u7121\u8996\u3067\u304d\u308b\u30ec\u30d9\u30eb\u3067\u3059\u304c\u3001\u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u30b5\u30a4\u30c8\u3067\u306fUNIX\u30bd\u30b1\u30c3\u30c8\u306e\u65b9\u304c\u52b9\u7387\u7684\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-49\">\u5b9f\u8df5\u7684\u306aNginx+PHP-FPM\u69cb\u6210\u4f8b\u3068\u89e3\u8aac<\/h3>\n\n\n\n<p>\u3053\u3053\u3067\u306f\u3001\u5b9f\u969b\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u5225\u306bNginx\u3068PHP-FPM\u306e\u8a2d\u5b9a\u4f8b\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-50\">\u30b7\u30f3\u30d7\u30eb\u306aPHP\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u7528\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u57fa\u672c\u7684\u306aPHP\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u7528\u306e\u8a2d\u5b9a\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">server {\n    listen 80;\n    server_name example.com www.example.com;\n    root \/var\/www\/html;\n    index index.php index.html;\n\n    # \u3059\u3079\u3066\u306e .php \u30d5\u30a1\u30a4\u30eb\u3092PHP-FPM\u306b\u8ee2\u9001\n    location ~ \\.php$ {\n        try_files $uri =404;\n        fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n        \n        # \u30d0\u30c3\u30d5\u30a1\u8a2d\u5b9a\n        fastcgi_buffers 16 16k;\n        fastcgi_buffer_size 32k;\n    }\n    \n    # \u5b58\u5728\u3057\u306a\u3044\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092404\u306b\u3059\u308b\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n    \n    # \u96a0\u3057\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u62d2\u5426\n    location ~ \/\\. {\n        deny all;\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-51\">WordPress\u7528\u306e\u6700\u9069\u5316\u8a2d\u5b9a<\/h4>\n\n\n\n<p>WordPress\u30b5\u30a4\u30c8\u7528\u306e\u6700\u9069\u5316\u8a2d\u5b9a\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">server {\n    listen 80;\n    server_name wordpress-site.com;\n    root \/var\/www\/wordpress;\n    index index.php;\n    \n    # WordPress\u7528\u306e\u304d\u308c\u3044\u306aURL\u8a2d\u5b9a\n    location \/ {\n        try_files $uri $uri\/ \/index.php?$args;\n    }\n    \n    # PHP\u51e6\u7406\n    location ~ \\.php$ {\n        try_files $uri =404;\n        fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n        \n        # WordPress\u306e\u5927\u304d\u306a\u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5bfe\u5fdc\n        fastcgi_read_timeout 300;\n        client_max_body_size 32m;\n    }\n    \n    # WordPress\u56fa\u6709\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u5bfe\u3059\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\n    location ~* wp-config.php {\n        deny all;\n    }\n    \n    # \u9759\u7684\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\n    location ~* \\.(js|css|png|jpg|jpeg|gif|ico|svg)$ {\n        expires max;\n        log_not_found off;\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u3067\u306f\u3001WordPress\u306e\u30d1\u30fc\u30de\u30ea\u30f3\u30af\u6a5f\u80fd\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u305f\u3081\u306b\u91cd\u8981\u306a <code>try_files $uri $uri\/ \/index.php?$args;<\/code> \u8a2d\u5b9a\u304c\u8ffd\u52a0\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-52\">\u8907\u6570\u30b5\u30a4\u30c8\u30fb\u8907\u6570PHP\u30d0\u30fc\u30b8\u30e7\u30f3\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u7570\u306a\u308bPHP\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u8907\u6570\u306e\u30b5\u30a4\u30c8\u3092\u904b\u7528\u3059\u308b\u8a2d\u5b9a\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP 7.4\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\nserver {\n    listen 80;\n    server_name site1.example.com;\n    root \/var\/www\/site1;\n    index index.php;\n    \n    location ~ \\.php$ {\n        fastcgi_pass unix:\/run\/php\/php7.4-fpm.sock;\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n}\n\n# PHP 8.1\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\nserver {\n    listen 80;\n    server_name site2.example.com;\n    root \/var\/www\/site2;\n    index index.php;\n    \n    location ~ \\.php$ {\n        fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001\u540c\u3058\u30b5\u30fc\u30d0\u30fc\u4e0a\u3067\u7570\u306a\u308bPHP\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\u3092\u7c21\u5358\u306b\u904b\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-53\">\u30de\u30a4\u30af\u30ed\u30ad\u30e3\u30c3\u30b7\u30e5\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/h4>\n\n\n\n<p>\u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u30b5\u30a4\u30c8\u5411\u3051\u306e\u30de\u30a4\u30af\u30ed\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30ad\u30e3\u30c3\u30b7\u30e5\u30be\u30fc\u30f3\u306e\u5b9a\u7fa9\nfastcgi_cache_path \/var\/cache\/nginx levels=1:2 keys_zone=PHPCACHE:10m inactive=60m;\nfastcgi_cache_key \"$scheme$request_method$host$request_uri\";\n\nserver {\n    listen 80;\n    server_name high-traffic-site.com;\n    root \/var\/www\/high-traffic;\n    index index.php;\n\n    # \u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\/\u3057\u306a\u3044\u30da\u30fc\u30b8\u306e\u8a2d\u5b9a\n    set $skip_cache 0;\n    \n    # \u30ed\u30b0\u30a4\u30f3\u753b\u9762\u3084\u7ba1\u7406\u8005\u30da\u30fc\u30b8\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u306a\u3044\n    if ($request_uri ~* \"\/wp-admin\/|\/wp-login.php\") {\n        set $skip_cache 1;\n    }\n    # POST\u30ea\u30af\u30a8\u30b9\u30c8\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u306a\u3044\n    if ($request_method = POST) {\n        set $skip_cache 1;\n    }\n    # \u30af\u30c3\u30ad\u30fc\u304c\u3042\u308b\u5834\u5408\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u306a\u3044\n    if ($http_cookie ~* \"comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in\") {\n        set $skip_cache 1;\n    }\n    \n    location \/ {\n        try_files $uri $uri\/ \/index.php?$args;\n    }\n    \n    location ~ \\.php$ {\n        try_files $uri =404;\n        fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;\n        fastcgi_index index.php;\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n        \n        # \u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a\n        fastcgi_cache PHPCACHE;\n        fastcgi_cache_valid 200 60m;  # 200\u5fdc\u7b54\u309260\u5206\u9593\u30ad\u30e3\u30c3\u30b7\u30e5\n        fastcgi_cache_bypass $skip_cache;\n        fastcgi_no_cache $skip_cache;\n        \n        # \u30ad\u30e3\u30c3\u30b7\u30e5\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u30d8\u30c3\u30c0\u30fc\u306b\u8ffd\u52a0\n        add_header X-Cache-Status $upstream_cache_status;\n    }\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30de\u30a4\u30af\u30ed\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a\u306b\u3088\u308a\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068PHP\u51e6\u7406\u306e\u8ca0\u8377\u3092\u5927\u5e45\u306b\u8efd\u6e1b\u3057\u3001\u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u30b5\u30a4\u30c8\u3067\u3082\u9ad8\u901f\u306a\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u7dad\u6301\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-54\">\u4e00\u822c\u7684\u306a\u554f\u984c\u3068\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h4>\n\n\n\n<p>Nginx\u3068PHP-FPM\u306e\u9023\u643a\u3067\u767a\u751f\u3057\u3084\u3059\u3044\u554f\u984c\u3068\u89e3\u6c7a\u7b56\u3067\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. 502 Bad Gateway \u30a8\u30e9\u30fc<\/strong><\/p>\n\n\n\n<p>\u539f\u56e0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP-FPM\u30b5\u30fc\u30d3\u30b9\u304c\u52d5\u4f5c\u3057\u3066\u3044\u306a\u3044<\/li>\n\n\n\n<li>\u30bd\u30b1\u30c3\u30c8\u30d1\u30b9\u306e\u6307\u5b9a\u30df\u30b9<\/li>\n\n\n\n<li>\u30bd\u30b1\u30c3\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u554f\u984c<\/li>\n<\/ul>\n\n\n\n<p>\u89e3\u6c7a\u7b56:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP-FPM\u30b5\u30fc\u30d3\u30b9\u306e\u72b6\u614b\u78ba\u8a8d\nsudo systemctl status php8.1-fpm\n\n# \u30bd\u30b1\u30c3\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u5b58\u5728\u78ba\u8a8d\nls -la \/run\/php\/php8.1-fpm.sock\n\n# \u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u4fee\u6b63\nsudo chown www-data:www-data \/run\/php\/php8.1-fpm.sock\nsudo chmod 660 \/run\/php\/php8.1-fpm.sock\n<\/pre>\n\n\n\n<p><strong>2. 504 Gateway Timeout<\/strong><\/p>\n\n\n\n<p>\u539f\u56e0: PHP\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u5b9f\u884c\u6642\u9593\u304c\u9577\u3059\u304e\u308b<\/p>\n\n\n\n<p>\u89e3\u6c7a\u7b56:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Nginx\u5074\u306e\u8a2d\u5b9a\nlocation ~ \\.php$ {\n    fastcgi_read_timeout 300;  # \u30c7\u30d5\u30a9\u30eb\u30c8\u306f60\u79d2\n    # \u4ed6\u306e\u8a2d\u5b9a...\n}\n<\/pre>\n\n\n\n<p>PHP\u5074\u306e\u8a2d\u5b9a\uff08php.ini\uff09:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">max_execution_time = 300\n<\/pre>\n\n\n\n<p><strong>3. 404 File Not Found<\/strong><\/p>\n\n\n\n<p>\u539f\u56e0: SCRIPT_FILENAME\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u8a2d\u5b9a\u30df\u30b9<\/p>\n\n\n\n<p>\u89e3\u6c7a\u7b56:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u6b63\u3057\u3044\u8a2d\u5b9a\nfastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u3088\u3046\u306b\u3001Nginx\u3068PHP-FPM\u306e\u7d44\u307f\u5408\u308f\u305b\u306f\u3001\u9069\u5207\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u9ad8\u6027\u80fd\u304b\u3064\u67d4\u8edf\u306aPHP\u5b9f\u884c\u74b0\u5883\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002\u6b21\u7ae0\u3067\u306f\u3001\u5f93\u6765\u304b\u3089\u4f7f\u308f\u308c\u3066\u3044\u308bApache\u3068PHP-FPM\u306e\u9023\u643a\u306b\u3064\u3044\u3066\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-55\">Apache \u3068 PHP-FPM \u306e\u9023\u643a \u2013 \u5f93\u6765\u74b0\u5883\u304b\u3089\u306e\u79fb\u884c\u30ac\u30a4\u30c9<\/h2>\n\n\n\n<p>Apache\u306fPHP\u306e\u5b9f\u884c\u74b0\u5883\u3068\u3057\u3066\u9577\u3044\u6b74\u53f2\u3092\u6301\u3063\u3066\u304a\u308a\u3001\u591a\u304f\u306e\u672c\u756a\u74b0\u5883\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5f93\u6765\u306fmod_php\u3068\u3044\u3046Apache\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u901a\u3058\u3066PHP\u3092\u5b9f\u884c\u3059\u308b\u306e\u304c\u4e00\u822c\u7684\u3067\u3057\u305f\u304c\u3001PHP-FPM\u3078\u306e\u79fb\u884c\u306b\u3088\u3063\u3066\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u306e\u7ae0\u3067\u306f\u3001Apache\u304b\u3089PHP-FPM\u3078\u306e\u79fb\u884c\u65b9\u6cd5\u3068\u6ce8\u610f\u70b9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-56\">mod_proxy \u3068 mod_fcgi \u3092\u4f7f\u3063\u305f\u9023\u643a\u8a2d\u5b9a<\/h3>\n\n\n\n<p>Apache\u3068PHP-FPM\u3092\u9023\u643a\u3055\u305b\u308b\u306b\u306f\u3001\u4e3b\u306b2\u3064\u306e\u65b9\u6cd5\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>mod_proxy_fcgi<\/strong>\uff08Apache 2.4\u4ee5\u964d\u3067\u63a8\u5968\uff09<\/li>\n\n\n\n<li><strong>mod_fastcgi<\/strong>\uff08\u5f93\u6765\u304b\u3089\u3042\u308b\u65b9\u6cd5\uff09<\/li>\n<\/ol>\n\n\n\n<p>\u591a\u304f\u306e\u5834\u5408\u3001mod_proxy_fcgi\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u304c\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-57\">mod_proxy_fcgi\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5<\/h4>\n\n\n\n<p>Apache 2.4\u4ee5\u964d\u3067\u306f\u3001mod_proxy_fcgi\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066PHP-FPM\u3068\u9023\u643a\u3059\u308b\u306e\u304c\u6700\u3082\u52b9\u7387\u7684\u3067\u3059\u3002<\/p>\n\n\n\n<p><strong>\u5fc5\u8981\u306a\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u6709\u52b9\u5316<\/strong><\/p>\n\n\n\n<p>\u307e\u305a\u3001\u5fc5\u8981\u306aApache\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Debian\/Ubuntu\nsudo a2enmod proxy proxy_fcgi\n\n# CentOS\/RHEL\n# httpd.conf\u3067\u4ee5\u4e0b\u306e\u884c\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u89e3\u9664\n# LoadModule proxy_module modules\/mod_proxy.so\n# LoadModule proxy_fcgi_module modules\/mod_proxy_fcgi.so\n\n# \u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\napachectl -M | grep proxy_fcgi\n<\/pre>\n\n\n\n<p><strong>\u57fa\u672c\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>Apache\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306b\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\uff08apache2.conf\u307e\u305f\u306fhttpd.conf\uff09\n&lt;FilesMatch \\.php$&gt;\n    # TCP\u7d4c\u7531\u3067\u306e\u63a5\u7d9a\n    SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n    \n    # \u307e\u305f\u306f\u3001UNIX\u30bd\u30b1\u30c3\u30c8\u7d4c\u7531\u3067\u306e\u63a5\u7d9a\uff08\u3088\u308a\u9ad8\u901f\uff09\n    # SetHandler \"proxy:unix:\/run\/php\/php8.1-fpm.sock|fcgi:\/\/localhost\"\n&lt;\/FilesMatch&gt;\n<\/pre>\n\n\n\n<p><strong>\u4eee\u60f3\u30db\u30b9\u30c8\u8a2d\u5b9a\u4f8b<\/strong><\/p>\n\n\n\n<p>\u4e00\u822c\u7684\u306a\u4eee\u60f3\u30db\u30b9\u30c8\u8a2d\u5b9a\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;VirtualHost *:80&gt;\n    ServerName example.com\n    DocumentRoot \/var\/www\/html\n    \n    &lt;FilesMatch \\.php$&gt;\n        # TCP\u7d4c\u7531\u3067\u306e\u63a5\u7d9a\n        SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n    &lt;\/FilesMatch&gt;\n    \n    &lt;Directory \/var\/www\/html&gt;\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    &lt;\/Directory&gt;\n&lt;\/VirtualHost&gt;\n<\/pre>\n\n\n\n<p><strong>DOCUMENT_ROOT\u306e\u660e\u793a\u7684\u306a\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>PHP-FPM\u306fApache\u3068\u306f\u72ec\u7acb\u3057\u3066\u3044\u308b\u305f\u3081\u3001DOCUMENT_ROOT\u3092\u6b63\u3057\u304f\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;FilesMatch \\.php$&gt;\n    SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n    # PHP\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u6b63\u3057\u3044\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30eb\u30fc\u30c8\u3092\u4f1d\u3048\u308b\n    ProxyFCGISetEnvIf \"true\" DOCUMENT_ROOT \"\/var\/www\/html\"\n&lt;\/FilesMatch&gt;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-58\">mod_fastcgi\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\uff08\u30ec\u30ac\u30b7\u30fc\u30b7\u30b9\u30c6\u30e0\u5411\u3051\uff09<\/h4>\n\n\n\n<p>\u53e4\u3044Apache\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u3001mod_fastcgi\u3092\u4f7f\u7528\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u6709\u52b9\u5316<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Debian\/Ubuntu\nsudo apt install libapache2-mod-fastcgi\nsudo a2enmod fastcgi\n\n# CentOS\/RHEL (EPEL\u30ea\u30dd\u30b8\u30c8\u30ea\u304c\u5fc5\u8981)\nsudo yum install mod_fastcgi\n<\/pre>\n\n\n\n<p><strong>\u57fa\u672c\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># FastCGI\u8a2d\u5b9a\nLoadModule fastcgi_module modules\/mod_fastcgi.so\n\nAddHandler php-fastcgi .php\nAction php-fastcgi \/php-fcgi\nAlias \/php-fcgi \/usr\/lib\/cgi-bin\/php-fcgi\nFastCgiExternalServer \/usr\/lib\/cgi-bin\/php-fcgi -socket \/run\/php\/php8.1-fpm.sock -pass-header Authorization\n\n&lt;Directory \/usr\/lib\/cgi-bin&gt;\n    Require all granted\n&lt;\/Directory&gt;\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u65b9\u6cd5\u306f\u8907\u96d1\u3067\u3001\u6700\u8fd1\u306eApache\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u306f\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u305f\u3081\u3001\u53ef\u80fd\u3067\u3042\u308c\u3070mod_proxy_fcgi\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-59\">Apache \u304b\u3089 PHP-FPM \u3078\u306e\u79fb\u884c\u6642\u306e\u6ce8\u610f\u70b9<\/h3>\n\n\n\n<p>mod_php\u304b\u3089PHP-FPM\u3078\u306e\u79fb\u884c\u306b\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u91cd\u8981\u306a\u8003\u616e\u70b9\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-60\">\u8a2d\u5b9a\u306e\u9055\u3044\u3092\u7406\u89e3\u3059\u308b<\/h4>\n\n\n\n<p><strong>1. PHP\u8a2d\u5b9a\u306e\u5206\u96e2<\/strong><\/p>\n\n\n\n<p>mod_php\u3067\u306f\u3001PHP\u306e\u8a2d\u5b9a\u306fApache\u306e\u8a2d\u5b9a\u5185\u3067\u76f4\u63a5\u5236\u5fa1\u3067\u304d\u307e\u3057\u305f\u304c\u3001PHP-FPM\u3067\u306f\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u5206\u96e2\u3057\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-a045a548-b21e-42e0-8cb1-4d742fd57798\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>mod_php<\/th><th>PHP-FPM<\/th><\/tr><\/thead><tbody><tr><td>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb<\/td><td>\/etc\/php\/8.1\/apache2\/php.ini<\/td><td>\/etc\/php\/8.1\/fpm\/php.ini<\/td><\/tr><tr><td>\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6<\/td><td>php_admin_value\u3001php_value<\/td><td>PHP-FPM\u30d7\u30fc\u30eb\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u5185\u306ephp_admin_value\u3001php_value<\/td><\/tr><tr><td>.htaccess\u3067\u306e\u8a2d\u5b9a<\/td><td>\u53ef\u80fd<\/td><td>\u76f4\u63a5\u4e0d\u53ef\uff08\u74b0\u5883\u5909\u6570\u7d4c\u7531\u3067\u4e00\u90e8\u53ef\u80fd\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p><strong>2. \u74b0\u5883\u5909\u6570\u306e\u8ee2\u9001<\/strong><\/p>\n\n\n\n<p>PHP-FPM\u3067\u306f\u3001Apache\u304b\u3089\u74b0\u5883\u5909\u6570\u3092\u9069\u5207\u306b\u8ee2\u9001\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;FilesMatch \\.php$&gt;\n    SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n    # \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\n    ProxyFCGISetEnvIf \"true\" PHP_VALUE \"memory_limit=256M\"\n    ProxyFCGISetEnvIf \"true\" PHP_ADMIN_VALUE \"upload_max_filesize=20M\"\n&lt;\/FilesMatch&gt;\n<\/pre>\n\n\n\n<p><strong>3. \u30d1\u30b9\u89e3\u6c7a\u306e\u9055\u3044<\/strong><\/p>\n\n\n\n<p>mod_php\u3068PHP-FPM\u3067\u306f\u3001\u30d1\u30b9\u306e\u89e3\u6c7a\u65b9\u6cd5\u304c\u7570\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;FilesMatch \\.php$&gt;\n    SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n    # \u6b63\u3057\u3044\u30d1\u30b9\u89e3\u6c7a\u306e\u305f\u3081\u306e\u8a2d\u5b9a\n    ProxyFCGISetEnvIf \"true\" SCRIPT_FILENAME \"$document_root$fastcgi_script_name\"\n    ProxyFCGISetEnvIf \"true\" DOCUMENT_ROOT \"$document_root\"\n&lt;\/FilesMatch&gt;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-61\">\u6a29\u9650\u306e\u554f\u984c<\/h4>\n\n\n\n<p>PHP-FPM\u306f\u901a\u5e38\u3001Apache\u3068\u306f\u307e\u3055\u3063\u305f\u30e6\u30fc\u30b6\u30fc\u3068\u30b0\u30eb\u30fc\u30d7\u3068\u3057\u3066\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d5\u30a1\u30a4\u30eb\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u306e\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u30e6\u30fc\u30b6\u30fc\u3068\u30b0\u30eb\u30fc\u30d7\u306e\u78ba\u8a8d<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Apache\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u78ba\u8a8d\nps aux | grep apache2  # \u307e\u305f\u306f httpd\n\n# PHP-FPM\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u78ba\u8a8d\nps aux | grep php-fpm\n<\/pre>\n\n\n\n<p><strong>2. PHP-FPM\u30d7\u30fc\u30eb\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>PHP-FPM\u306e\u30d7\u30fc\u30eb\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\uff08\u4f8b\uff1a\/etc\/php\/8.1\/fpm\/pool.d\/www.conf\uff09\u3067\u3001\u9069\u5207\u306a\u30e6\u30fc\u30b6\u30fc\u3068\u30b0\u30eb\u30fc\u30d7\u3092\u8a2d\u5b9a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; Apache\u3068\u540c\u3058\u30e6\u30fc\u30b6\u30fc\u3067\u5b9f\u884c\u3059\u308b\u5834\u5408\nuser = www-data\ngroup = www-data\n<\/pre>\n\n\n\n<p><strong>3. \u30d5\u30a1\u30a4\u30eb\u306e\u6a29\u9650\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u9069\u5207\u306a\u6a29\u9650\u3092\u8a2d\u5b9a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6a29\u9650\nfind \/var\/www\/html -type d -exec chmod 755 {} \\;\n\n# \u30d5\u30a1\u30a4\u30eb\u306e\u6a29\u9650\nfind \/var\/www\/html -type f -exec chmod 644 {} \\;\n\n# \u66f8\u304d\u8fbc\u307f\u53ef\u80fd\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\nchmod 775 \/var\/www\/html\/uploads\nchown www-data:www-data \/var\/www\/html\/uploads\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-62\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0<\/h4>\n\n\n\n<p>PHP-FPM\u306b\u79fb\u884c\u3059\u308b\u4e3b\u306a\u76ee\u7684\u306e\u4e00\u3064\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u3067\u3059\u304c\u3001\u9069\u5207\u306a\u8a2d\u5b9a\u304c\u5fc5\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. Apache\u306eMPM\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>PHP-FPM\u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u5834\u5408\u3001Apache\u306eMPM Event\u30e2\u30fc\u30c9\u304c\u6700\u3082\u52b9\u7387\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># mpm_event.conf\n&lt;IfModule mpm_event_module&gt;\n    StartServers             3\n    MinSpareThreads         25\n    MaxSpareThreads         75\n    ThreadLimit             64\n    ThreadsPerChild         25\n    MaxRequestWorkers      150\n    MaxConnectionsPerChild   0\n&lt;\/IfModule&gt;\n<\/pre>\n\n\n\n<p><strong>2. PHP-FPM\u306e\u30d7\u30ed\u30bb\u30b9\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>\u30b5\u30fc\u30d0\u30fc\u30b9\u30da\u30c3\u30af\u306b\u5408\u308f\u305b\u3066PHP-FPM\u306e\u30d7\u30ed\u30bb\u30b9\u6570\u3092\u6700\u9069\u5316\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; PHP-FPM\u30d7\u30ed\u30bb\u30b9\u8a2d\u5b9a\npm = dynamic\npm.max_children = 50         ; \u6700\u5927\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.start_servers = 5         ; \u8d77\u52d5\u6642\u306e\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.min_spare_servers = 5     ; \u6700\u5c0f\u30a2\u30a4\u30c9\u30eb\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.max_spare_servers = 35    ; \u6700\u5927\u30a2\u30a4\u30c9\u30eb\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\npm.max_requests = 500        ; \u5b50\u30d7\u30ed\u30bb\u30b9\u304c\u51e6\u7406\u3059\u308b\u30ea\u30af\u30a8\u30b9\u30c8\u6570\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-63\">\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u74b0\u5883\u3067\u306e\u904b\u7528\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>\u4e00\u5ea6\u306b\u3059\u3079\u3066\u306e\u30b7\u30b9\u30c6\u30e0\u3092PHP-FPM\u306b\u79fb\u884c\u3067\u304d\u306a\u3044\u5834\u5408\u3084\u3001\u69d8\u3005\u306a\u8981\u4ef6\u304c\u6df7\u5728\u3059\u308b\u5834\u5408\u306f\u3001\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u74b0\u5883\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-64\">\u8907\u6570\u306ePHP\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5171\u5b58\u3055\u305b\u308b<\/h4>\n\n\n\n<p>\u7570\u306a\u308bPHP\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u5fc5\u8981\u3068\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u540c\u3058\u30b5\u30fc\u30d0\u30fc\u3067\u904b\u7528\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u8907\u6570\u306ePHP-FPM\u30d7\u30fc\u30eb\u306e\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>\u7570\u306a\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u306ePHP-FPM\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001\u305d\u308c\u305e\u308c\u7570\u306a\u308b\u30bd\u30b1\u30c3\u30c8\u307e\u305f\u306f\u30dd\u30fc\u30c8\u3067\u52d5\u4f5c\u3055\u305b\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u7570\u306a\u308bPHP\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08Ubuntu\u4f8b\uff09\nsudo add-apt-repository ppa:ondrej\/php\nsudo apt update\nsudo apt install php7.4-fpm php8.1-fpm\n<\/pre>\n\n\n\n<p><strong>2. \u4eee\u60f3\u30db\u30b9\u30c8\u3054\u3068\u306e\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP 7.4\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\n&lt;VirtualHost *:80&gt;\n    ServerName php74.example.com\n    DocumentRoot \/var\/www\/php74\n    \n    &lt;FilesMatch \\.php$&gt;\n        SetHandler \"proxy:fcgi:\/\/127.0.0.1:9074\"\n    &lt;\/FilesMatch&gt;\n&lt;\/VirtualHost&gt;\n\n# PHP 8.1\u3092\u4f7f\u7528\u3059\u308b\u30b5\u30a4\u30c8\n&lt;VirtualHost *:80&gt;\n    ServerName php81.example.com\n    DocumentRoot \/var\/www\/php81\n    \n    &lt;FilesMatch \\.php$&gt;\n        SetHandler \"proxy:fcgi:\/\/127.0.0.1:9081\"\n    &lt;\/FilesMatch&gt;\n&lt;\/VirtualHost&gt;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-65\">\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3054\u3068\u306b\u7570\u306a\u308bPHP\u51e6\u7406\u3092\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u540c\u3058\u30b5\u30fc\u30d0\u30fc\u4e0a\u306e\u7570\u306a\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u7570\u306a\u308bPHP\u51e6\u7406\u65b9\u6cd5\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;VirtualHost *:80&gt;\n    ServerName example.com\n    DocumentRoot \/var\/www\/html\n    \n    # \u30c7\u30d5\u30a9\u30eb\u30c8\u306fmod_php\u3092\u4f7f\u7528\n    LoadModule php7_module modules\/libphp7.so\n    AddHandler php7-script .php\n    \n    # \u7279\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306fPHP-FPM\u3092\u4f7f\u7528\n    &lt;Directory \/var\/www\/html\/app&gt;\n        &lt;FilesMatch \\.php$&gt;\n            SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n            ProxyFCGISetEnvIf \"true\" DOCUMENT_ROOT \"\/var\/www\/html\/app\"\n        &lt;\/FilesMatch&gt;\n    &lt;\/Directory&gt;\n&lt;\/VirtualHost&gt;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-66\">\u6bb5\u968e\u7684\u306a\u79fb\u884c\u624b\u9806<\/h4>\n\n\n\n<p>PHP-FPM\u3078\u306e\u79fb\u884c\u3092\u6bb5\u968e\u7684\u306b\u884c\u3046\u305f\u3081\u306e\u63a8\u5968\u624b\u9806\uff1a<\/p>\n\n\n\n<p><strong>\u30b9\u30c6\u30c3\u30d71: \u74b0\u5883\u6e96\u5099<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>PHP-FPM\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/li>\n\n\n\n<li>\u57fa\u672c\u8a2d\u5b9a\u3092\u884c\u3046<\/li>\n\n\n\n<li>Apache\u7528\u306e\u5fc5\u8981\u306a\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u6709\u52b9\u5316\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p><strong>\u30b9\u30c6\u30c3\u30d72: \u30c6\u30b9\u30c8\u74b0\u5883\u306e\u69cb\u7bc9<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30c6\u30b9\u30c8\u7528\u306e\u4eee\u60f3\u30db\u30b9\u30c8\u3092\u4f5c\u6210\u3059\u308b<\/li>\n\n\n\n<li>PHP-FPM\u3068\u9023\u643a\u3059\u308b\u3088\u3046\u8a2d\u5b9a\u3059\u308b<\/li>\n\n\n\n<li>\u30c6\u30b9\u30c8\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u52d5\u4f5c\u78ba\u8a8d\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p><strong>\u30b9\u30c6\u30c3\u30d73: \u554f\u984c\u306e\u7279\u5b9a\u3068\u89e3\u6c7a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a8\u30e9\u30fc\u30ed\u30b0\u3092\u78ba\u8a8d\u3059\u308b<\/li>\n\n\n\n<li>\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b<\/li>\n\n\n\n<li>\u30d1\u30b9\u306e\u554f\u984c\u3092\u4fee\u6b63\u3059\u308b<\/li>\n\n\n\n<li>PHP\u8a2d\u5b9a\u306e\u9055\u3044\u3092\u8abf\u6574\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p><strong>\u30b9\u30c6\u30c3\u30d74: \u6bb5\u968e\u7684\u306a\u672c\u756a\u79fb\u884c<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5f71\u97ff\u306e\u5c11\u306a\u3044\u30b5\u30a4\u30c8\u304b\u3089\u9806\u306b\u79fb\u884c\u3059\u308b<\/li>\n\n\n\n<li>\u5404\u30b5\u30a4\u30c8\u306e\u79fb\u884c\u5f8c\u306b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u6a5f\u80fd\u3092\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3059\u308b<\/li>\n\n\n\n<li>\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u8a2d\u5b9a\u3092\u5fae\u8abf\u6574\u3059\u308b<\/li>\n\n\n\n<li>\u3059\u3079\u3066\u306e\u30b5\u30a4\u30c8\u3067\u554f\u984c\u306a\u304f\u52d5\u4f5c\u3059\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p><strong>\u30b9\u30c6\u30c3\u30d75: \u6700\u9069\u5316<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d9\u30f3\u30c1\u30de\u30fc\u30af\u30c4\u30fc\u30eb\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6e2c\u5b9a\u3059\u308b<\/li>\n\n\n\n<li>PHP-FPM\u306e\u30d7\u30ed\u30bb\u30b9\u8a2d\u5b9a\u3092\u6700\u9069\u5316\u3059\u308b<\/li>\n\n\n\n<li>Apache\u306e\u8a2d\u5b9a\u3092\u6700\u9069\u5316\u3059\u308b<\/li>\n\n\n\n<li>\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0\u3092\u5c0e\u5165\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-67\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h4>\n\n\n\n<p>\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u74b0\u5883\u3067\u306e\u4e00\u822c\u7684\u306a\u554f\u984c\u3068\u89e3\u6c7a\u7b56\uff1a<\/p>\n\n\n\n<p><strong>1. \u300cFile not found\u300d\u30a8\u30e9\u30fc<\/strong><\/p>\n\n\n\n<p>\u554f\u984c: PHP-FPM\u304c\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u898b\u3064\u3051\u3089\u308c\u306a\u3044<\/p>\n\n\n\n<p>\u89e3\u6c7a\u7b56:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;FilesMatch \\.php$&gt;\n    SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n    # \u7d76\u5bfe\u30d1\u30b9\u3067\u6307\u5b9a\n    ProxyFCGISetEnvIf \"true\" SCRIPT_FILENAME \"\/var\/www\/html$fastcgi_script_name\"\n&lt;\/FilesMatch&gt;\n<\/pre>\n\n\n\n<p><strong>2. \u74b0\u5883\u5909\u6570\u304c\u6b63\u3057\u304f\u6e21\u3055\u308c\u306a\u3044<\/strong><\/p>\n\n\n\n<p>\u554f\u984c: PHP-FPM\u3067Apache\u306e\u74b0\u5883\u5909\u6570\u304c\u898b\u3048\u306a\u3044<\/p>\n\n\n\n<p>\u89e3\u6c7a\u7b56:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;FilesMatch \\.php$&gt;\n    SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n    # \u74b0\u5883\u5909\u6570\u3092\u660e\u793a\u7684\u306b\u8a2d\u5b9a\n    ProxyFCGISetEnvIf \"true\" HTTP_HOST \"$http_host\"\n    ProxyFCGISetEnvIf \"true\" REMOTE_ADDR \"$remote_addr\"\n    # \u305d\u306e\u4ed6\u5fc5\u8981\u306a\u5909\u6570\n&lt;\/FilesMatch&gt;\n<\/pre>\n\n\n\n<p><strong>3. \u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306e\u554f\u984c<\/strong><\/p>\n\n\n\n<p>\u554f\u984c: \u30d5\u30a1\u30a4\u30eb\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u304c\u6a5f\u80fd\u3057\u306a\u3044<\/p>\n\n\n\n<p>\u89e3\u6c7a\u7b56:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Apache\u306e\u8a2d\u5b9a\nLimitRequestBody 10485760  # 10MB\n\n# PHP-FPM\u306ephp.ini\u8a2d\u5b9a\n# \/etc\/php\/8.1\/fpm\/php.ini\nupload_max_filesize = 10M\npost_max_size = 10M\n<\/pre>\n\n\n\n<p><strong>4. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u554f\u984c<\/strong><\/p>\n\n\n\n<p>\u554f\u984c: PHP-FPM\u306b\u79fb\u884c\u5f8c\u306b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u4f4e\u4e0b\u3057\u305f<\/p>\n\n\n\n<p>\u89e3\u6c7a\u7b56:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP-FPM\u306e\u30d7\u30ed\u30bb\u30b9\u6570\u3092\u9069\u5207\u306b\u8a2d\u5b9a\u3059\u308b<\/li>\n\n\n\n<li>UNIX\u30bd\u30b1\u30c3\u30c8\u3092\u4f7f\u7528\u3059\u308b\uff08TCP\u30bd\u30b1\u30c3\u30c8\u3088\u308a\u9ad8\u901f\uff09<\/li>\n\n\n\n<li>Apache\u306eMPM\u8a2d\u5b9a\u3092\u6700\u9069\u5316\u3059\u308b<\/li>\n\n\n\n<li>PHP-FPM\u306e<code>pm.max_children<\/code>\u3092\u9069\u5207\u306a\u5024\u306b\u8a2d\u5b9a\u3059\u308b<\/li>\n<\/ul>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u65b9\u6cd5\u3067\u3001Apache\u3068PHP-FPM\u306e\u9023\u643a\u304c\u52b9\u7387\u7684\u306b\u884c\u3048\u3001\u5f93\u6765\u306emod_php\u74b0\u5883\u304b\u3089\u306e\u30b9\u30e0\u30fc\u30ba\u306a\u79fb\u884c\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u8a2d\u5b9a\u6700\u9069\u5316\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-68\">PHP-FPM \u306e\u8a2d\u5b9a\u6700\u9069\u5316 \u2013 7 \u3064\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af<\/h2>\n\n\n\n<p>PHP-FPM\u306e\u771f\u4fa1\u3092\u767a\u63ee\u3059\u308b\u306b\u306f\u3001\u9069\u5207\u306a\u8a2d\u5b9a\u6700\u9069\u5316\u304c\u4e0d\u53ef\u6b20\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u8a2d\u5b9a\u306e\u307e\u307e\u3067\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u30ea\u30bd\u30fc\u30b9\u3092\u5341\u5206\u306b\u6d3b\u7528\u3067\u304d\u305a\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u554f\u984c\u3084\u4e0d\u5b89\u5b9a\u306a\u52d5\u4f5c\u3092\u5f15\u304d\u8d77\u3053\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6700\u5927\u5316\u3059\u308b\u305f\u3081\u306e7\u3064\u306e\u5b9f\u8df5\u30c6\u30af\u30cb\u30c3\u30af\u3092\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-69\">\u30c6\u30af\u30cb\u30c3\u30af1:\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u8a2d\u5b9a\u306e\u6700\u9069\u5316\u624b\u6cd5<\/h3>\n\n\n\n<p>PHP-FPM\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5de6\u53f3\u3059\u308b\u6700\u3082\u91cd\u8981\u306a\u8981\u7d20\u306f\u3001\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u8a2d\u5b9a\u3067\u3059\u3002\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u3063\u3066\u3001\u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u52b9\u7387\u3068\u5fdc\u7b54\u6027\u306e\u30d0\u30e9\u30f3\u30b9\u304c\u6c7a\u307e\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-70\">\u30d7\u30ed\u30bb\u30b9\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u30bf\u30a4\u30d7\u306e\u9078\u629e<\/h4>\n\n\n\n<p>PHP-FPM\u306b\u306f3\u3064\u306e\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u30e2\u30fc\u30c9\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-3565ec0d-16db-4107-bdde-5b7cf6fe0182\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e2\u30fc\u30c9<\/th><th>\u8aac\u660e<\/th><th>\u9069\u3057\u305f\u30b7\u30ca\u30ea\u30aa<\/th><\/tr><\/thead><tbody><tr><td>static<\/td><td>\u56fa\u5b9a\u6570\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u5e38\u306b\u7dad\u6301<\/td><td>\u4e88\u6e2c\u53ef\u80fd\u306a\u9ad8\u8ca0\u8377\u30b5\u30a4\u30c8\u3001\u30ea\u30bd\u30fc\u30b9\u8c4a\u5bcc\u306a\u30b5\u30fc\u30d0\u30fc<\/td><\/tr><tr><td>dynamic<\/td><td>\u8ca0\u8377\u306b\u5fdc\u3058\u3066\u30d7\u30ed\u30bb\u30b9\u6570\u3092\u52d5\u7684\u306b\u8abf\u6574<\/td><td>\u8ca0\u8377\u5909\u52d5\u306e\u3042\u308b\u30b5\u30a4\u30c8\u3001\u4e00\u822c\u7684\u306a\u7528\u9014<\/td><\/tr><tr><td>ondemand<\/td><td>\u5fc5\u8981\u6642\u306e\u307f\u30d7\u30ed\u30bb\u30b9\u3092\u8d77\u52d5\u3057\u3001\u30a2\u30a4\u30c9\u30eb\u72b6\u614b\u304c\u7d9a\u304f\u3068\u7d42\u4e86<\/td><td>\u4f4e\uff5e\u4e2d\u7a0b\u5ea6\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3001\u30ea\u30bd\u30fc\u30b9\u5236\u7d04\u306e\u3042\u308b\u30b5\u30fc\u30d0\u30fc<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u30e2\u30fc\u30c9\u306e\u8a2d\u5b9a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; static \u30e2\u30fc\u30c9\npm = static\npm.max_children = 50\n\n; dynamic \u30e2\u30fc\u30c9\npm = dynamic\npm.max_children = 50\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 35\n\n; ondemand \u30e2\u30fc\u30c9\npm = ondemand\npm.max_children = 30\npm.process_idle_timeout = 10s\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-71\">\u6700\u9069\u306a\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\u306e\u8a08\u7b97<\/h4>\n\n\n\n<p><code>pm.max_children<\/code> \u306f\u5229\u7528\u53ef\u80fd\u306a\u30b5\u30fc\u30d0\u30fc\u30e1\u30e2\u30ea\u3068\u5404PHP\u30d7\u30ed\u30bb\u30b9\u306e\u5e73\u5747\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306b\u57fa\u3065\u3044\u3066\u8a08\u7b97\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pm.max_children = \u4f7f\u7528\u53ef\u80fd\u30e1\u30e2\u30ea \u00f7 \u5e73\u5747\u7684\u306aPHP\u30d7\u30ed\u30bb\u30b9\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\n<\/pre>\n\n\n\n<p>\u4f8b\u3048\u3070\u30018GB\u306e\u30e1\u30e2\u30ea\u3092\u6301\u3064\u30b5\u30fc\u30d0\u30fc\u3067\u3001\u30b7\u30b9\u30c6\u30e0\u3068\u4ed6\u306e\u30b5\u30fc\u30d3\u30b9\u306b2GB\u3092\u78ba\u4fdd\u3057\u3001\u5404PHP\u30d7\u30ed\u30bb\u30b9\u304c\u5e73\u574760MB\u4f7f\u7528\u3059\u308b\u5834\u5408\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u4f7f\u7528\u53ef\u80fd\u30e1\u30e2\u30ea = 8GB - 2GB = 6GB = 6144MB\npm.max_children = 6144MB \u00f7 60MB \u2248 100\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-72\">\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\u306e\u5b9f\u969b\u306e\u8a08\u6e2c\u65b9\u6cd5<\/h4>\n\n\n\n<p>\u5b9f\u969b\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u8a08\u6e2c\u3059\u308b\u306b\u306f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP-FPM\u30d7\u30ed\u30bb\u30b9\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u8868\u793a\nps -ylC php-fpm --sort:rss\n\n# \u5e73\u5747\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u8a08\u7b97\nps --no-headers -o \"rss,cmd\" -C php-fpm | grep \"pool www\" | awk '{ sum+=$1 } END { printf \"\u5e73\u5747: %.2f MB\\n\", sum\/NR\/1024 }'\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-73\">\u8d77\u52d5\u6642\u30d7\u30ed\u30bb\u30b9\u6570\u3068\u30b9\u30da\u30a2\u30d7\u30ed\u30bb\u30b9\u6570\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<p>dynamic \u30e2\u30fc\u30c9\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3082\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>pm.start_servers<\/code>: \u8d77\u52d5\u6642\u306b\u751f\u6210\u3055\u308c\u308b\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\uff08\u63a8\u5968\u5024: max_children\u306e10-20%\uff09<\/li>\n\n\n\n<li><code>pm.min_spare_servers<\/code>: \u30a2\u30a4\u30c9\u30eb\u72b6\u614b\u306e\u6700\u5c0f\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\uff08\u4f4e\u8ca0\u8377\u6642\u306b\u5fc5\u8981\u306a\u6700\u5c0f\u6570\uff09<\/li>\n\n\n\n<li><code>pm.max_spare_servers<\/code>: \u30a2\u30a4\u30c9\u30eb\u72b6\u614b\u306e\u6700\u5927\u5b50\u30d7\u30ed\u30bb\u30b9\u6570\uff08max_children\u306e30%\u7a0b\u5ea6\uff09<\/li>\n<\/ul>\n\n\n\n<p>\u30d0\u30e9\u30f3\u30b9\u306e\u53d6\u308c\u305f\u8a2d\u5b9a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u4e2d\u898f\u6a21\u30b5\u30a4\u30c8\u5411\u3051\u8a2d\u5b9a\npm = dynamic\npm.max_children = 50\npm.start_servers = 10     ; max_children\u306e20%\npm.min_spare_servers = 5  ; \u4f4e\u8ca0\u8377\u6642\u306e\u6700\u5c0f\u6570\npm.max_spare_servers = 15 ; \u6025\u5897\u306b\u5099\u3048\u305f\u4f59\u88d5\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-74\">\u30d7\u30ed\u30bb\u30b9\u306e\u518d\u8d77\u52d5\u5236\u5fa1<\/h4>\n\n\n\n<p>\u9577\u6642\u9593\u5b9f\u884c\u3055\u308c\u308bPHP\u30d7\u30ed\u30bb\u30b9\u306f\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u3084\u30ea\u30bd\u30fc\u30b9\u67af\u6e07\u306e\u539f\u56e0\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<code>pm.max_requests<\/code> \u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u30d7\u30ed\u30bb\u30b9\u304c\u4e00\u5b9a\u6570\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3057\u305f\u5f8c\u306b\u518d\u8d77\u52d5\u3059\u308b\u3088\u3046\u5236\u5fa1\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; 500\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u5f8c\u306b\u30d7\u30ed\u30bb\u30b9\u3092\u518d\u8d77\u52d5\npm.max_requests = 500\n<\/pre>\n\n\n\n<p>\u5927\u898f\u6a21\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u8907\u96d1\u306aCMS\u3067\u306f\u3001\u30e1\u30e2\u30ea\u30ea\u30fc\u30af\u306e\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u305f\u3081\u3001\u3053\u306e\u5024\u3092\u5c0f\u3055\u304f\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u5236\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-75\">\u30c6\u30af\u30cb\u30c3\u30af2: \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u91cd\u70b9\u8a2d\u5b9a\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>PHP-FPM\u306e\u52b9\u7387\u7684\u306a\u30e1\u30e2\u30ea\u4f7f\u7528\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30b5\u30fc\u30d0\u30fc\u306e\u5b89\u5b9a\u6027\u306b\u76f4\u7d50\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-76\">\u30e1\u30e2\u30ea\u5236\u9650\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<p>\u5404PHP\u30d7\u30ed\u30bb\u30b9\u306e\u30e1\u30e2\u30ea\u5236\u9650\u306f\u3001\u6271\u3046\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8981\u4ef6\u306b\u5408\u308f\u305b\u3066\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30d7\u30fc\u30eb\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u5185\u3067\u8a2d\u5b9a\nphp_admin_value[memory_limit] = 128M\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5024\u304c\u5c0f\u3055\u3059\u304e\u308b\u3068\u30e1\u30e2\u30ea\u4e0d\u8db3\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u3001\u5927\u304d\u3059\u304e\u308b\u3068\u4f7f\u7528\u53ef\u80fd\u306a\u30d7\u30ed\u30bb\u30b9\u6570\u304c\u5236\u9650\u3055\u308c\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u8981\u7d20\u3092\u8003\u616e\u3057\u3066\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\uff08\u901a\u5e38\u306e2\u500d\u3092\u76ee\u5b89\u306b\uff09<\/li>\n\n\n\n<li>\u540c\u6642\u5b9f\u884c\u30d7\u30ed\u30bb\u30b9\u6570<\/li>\n\n\n\n<li>\u5229\u7528\u53ef\u80fd\u306a\u7269\u7406\u30e1\u30e2\u30ea<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-77\">OpCode\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<p>OPcache\u306fPHP\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u7d50\u679c\u3092\u30e1\u30e2\u30ea\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u3001\u5b9f\u884c\u901f\u5ea6\u3092\u5411\u4e0a\u3055\u305b\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; php.ini\u307e\u305f\u306f\u30d7\u30fc\u30eb\u8a2d\u5b9a\u3067\u8a2d\u5b9a\nphp_admin_value[opcache.enable] = 1\nphp_admin_value[opcache.memory_consumption] = 128\nphp_admin_value[opcache.interned_strings_buffer] = 8\nphp_admin_value[opcache.max_accelerated_files] = 10000\nphp_admin_value[opcache.validate_timestamps] = 0  ; \u672c\u756a\u74b0\u5883\u7528\nphp_admin_value[opcache.revalidate_freq] = 0\n<\/pre>\n\n\n\n<p>\u7279\u306b <code>validate_timestamps=0<\/code> \u306f\u672c\u756a\u74b0\u5883\u3067\u91cd\u8981\u3067\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d5\u30a1\u30a4\u30eb\u5909\u66f4\u306e\u691c\u51fa\u306e\u305f\u3081\u306e\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u30a2\u30af\u30bb\u30b9\u304c\u306a\u304f\u306a\u308a\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a\u3057\u307e\u3059\uff08\u305f\u3060\u3057\u3001\u30d5\u30a1\u30a4\u30eb\u5909\u66f4\u6642\u306b\u306fPHP-FPM\u306e\u518d\u8d77\u52d5\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\uff09\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-78\">\u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<p>PHP\u306e\u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\u306e\u6700\u9069\u5316\nphp_admin_value[session.gc_probability] = 1\nphp_admin_value[session.gc_divisor] = 1000\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306f\u30011\/1000\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u304c\u5b9f\u884c\u3055\u308c\u308b\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059\u3002<code>gc_probability<\/code> \u3068 <code>gc_divisor<\/code> \u306e\u6bd4\u7387\u3092\u8abf\u6574\u3059\u308b\u3053\u3068\u3067\u3001\u30ac\u30d9\u30fc\u30b8\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u306e\u983b\u5ea6\u3092\u5236\u5fa1\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-79\">\u5b9f\u969b\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u72b6\u6cc1\u306e\u76e3\u8996<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u73fe\u5728\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u72b6\u6cc1\u3092\u78ba\u8a8d\nwatch -n 1 \"ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | grep php-fpm | head -10\"\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30b3\u30de\u30f3\u30c9\u3067\u3001\u30e1\u30e2\u30ea\u3092\u6700\u3082\u591a\u304f\u4f7f\u7528\u3057\u3066\u3044\u308bPHP-FPM\u30d7\u30ed\u30bb\u30b9\u3092\u76e3\u8996\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-80\">\u30c6\u30af\u30cb\u30c3\u30af3: \u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u9ad8\u901f\u5316\u8a2d\u5b9a<\/h3>\n\n\n\n<p>\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u52b9\u7387\u5316\u306f\u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\u306b\u76f4\u7d50\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3067\u30ec\u30b9\u30dd\u30f3\u30b9\u6642\u9593\u3092\u77ed\u7e2e\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-81\">\u63a5\u7d9a\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<p>\u9ad8\u8ca0\u8377\u30b5\u30a4\u30c8\u3067\u306f\u3001\u63a5\u7d9a\u30d0\u30c3\u30af\u30ed\u30b0\u306e\u30b5\u30a4\u30ba\u3092\u5897\u3084\u3059\u3053\u3068\u3067\u63a5\u7d9a\u306e\u5f85\u3061\u6642\u9593\u3092\u6e1b\u3089\u305b\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30d0\u30c3\u30af\u30ed\u30b0\u30ad\u30e5\u30fc\u30b5\u30a4\u30ba\u306e\u5897\u52a0\nlisten.backlog = 511\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306f\u3001\u540c\u6642\u306b\u591a\u6570\u306e\u63a5\u7d9a\u304c\u767a\u751f\u3059\u308b\u74b0\u5883\u3067\u91cd\u8981\u3067\u3059\u3002\u5024\u306f\u4f7f\u7528\u3059\u308bOS\u306e\u4e0a\u9650\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\uff08\u591a\u304f\u306eLinux\u30b7\u30b9\u30c6\u30e0\u3067\u306f65535\u304c\u4e0a\u9650\uff09\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-82\">\u30aa\u30fc\u30d7\u30f3\u30d5\u30a1\u30a4\u30eb\u5236\u9650\u306e\u8abf\u6574<\/h4>\n\n\n\n<p>\u5404PHP-FPM\u30d7\u30ed\u30bb\u30b9\u304c\u958b\u3051\u308b\u30d5\u30a1\u30a4\u30eb\u6570\u306e\u4e0a\u9650\u3092\u8a2d\u5b9a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30aa\u30fc\u30d7\u30f3\u30d5\u30a1\u30a4\u30eb\u6570\u306e\u5236\u9650\u3092\u5897\u3084\u3059\nrlimit_files = 4096\n<\/pre>\n\n\n\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u3084\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u304c\u591a\u3044\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u306e\u5024\u3092\u5927\u304d\u304f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\u30b7\u30b9\u30c6\u30e0\u306eulimit\u8a2d\u5b9a\u3068\u306e\u6574\u5408\u6027\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-83\">\u30d0\u30c3\u30d5\u30a1\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u51fa\u529b\u30d0\u30c3\u30d5\u30a1\u30ea\u30f3\u30b0\u3092\u9069\u5207\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u51fa\u529b\u306e\u52b9\u7387\u304c\u5411\u4e0a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; PHP\u30ec\u30d9\u30eb\u306e\u51fa\u529b\u30d0\u30c3\u30d5\u30a1\u30ea\u30f3\u30b0\nphp_admin_value[output_buffering] = 4096\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306fPHP\u304c\u51fa\u529b\u3092\u5c0f\u3055\u306a\u65ad\u7247\u3067\u306f\u306a\u304f\u307e\u3068\u307e\u3063\u305f\u30d6\u30ed\u30c3\u30af\u3068\u3057\u3066\u9001\u4fe1\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002\u7279\u306b\u591a\u304f\u306e\u5c0f\u3055\u306a\u51fa\u529b\u3092\u751f\u6210\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-84\">\u63a5\u7d9a\u65b9\u5f0f\u306e\u9078\u629e<\/h4>\n\n\n\n<p>UNIX\u30bd\u30b1\u30c3\u30c8\u3068TCP\u30bd\u30b1\u30c3\u30c8\u306e\u3069\u3061\u3089\u304b\u3092\u9078\u629e\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; UNIX\u30bd\u30b1\u30c3\u30c8\uff08\u9ad8\u901f\u3001\u540c\u4e00\u30b5\u30fc\u30d0\u30fc\u9650\u5b9a\uff09\nlisten = \/run\/php\/php8.1-fpm.sock\n\n; TCP\u30bd\u30b1\u30c3\u30c8\uff08\u7570\u306a\u308b\u30b5\u30fc\u30d0\u30fc\u9593\u3067\u4f7f\u7528\u53ef\u80fd\uff09\nlisten = 127.0.0.1:9000\n<\/pre>\n\n\n\n<p>\u540c\u4e00\u30b5\u30fc\u30d0\u30fc\u4e0a\u3067\u306eWeb\u30b5\u30fc\u30d0\u30fc\u3068PHP-FPM\u306e\u9023\u643a\u3067\u306f\u3001UNIX\u30bd\u30b1\u30c3\u30c8\u306e\u65b9\u304cTCP\u30bd\u30b1\u30c3\u30c8\u3088\u308a\u30825-10%\u7a0b\u5ea6\u9ad8\u901f\u3067\u3059\u3002\u3053\u308c\u306f\u3001TCP\u30b9\u30bf\u30c3\u30af\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u304c\u56de\u907f\u3055\u308c\u308b\u305f\u3081\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-85\">\u30c6\u30af\u30cb\u30c3\u30af4: php.ini\u3068\u306e\u9023\u643a\u306b\u3088\u308b\u7dcf\u5408\u6700\u9069\u5316<\/h3>\n\n\n\n<p>PHP-FPM\u306e\u8a2d\u5b9a\u306f\u3001php.ini\u306e\u8a2d\u5b9a\u3068\u9023\u643a\u3055\u305b\u308b\u3053\u3068\u3067\u52b9\u679c\u3092\u6700\u5927\u5316\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-86\">\u30d7\u30fc\u30eb\u3054\u3068\u306ePHP\u8a2d\u5b9a\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u5927\u304d\u306a\u5229\u70b9\u306e\u4e00\u3064\u306f\u3001\u30d7\u30fc\u30eb\u3054\u3068\u306b\u7570\u306a\u308bPHP\u8a2d\u5b9a\u3092\u9069\u7528\u3067\u304d\u308b\u3053\u3068\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; WordPress\u7528\u306e\u8a2d\u5b9a<\/pre>\n\n\n[wordpress]\n\n\n\n<p>php_admin_value[memory_limit] = 256M php_admin_value[upload_max_filesize] = 64M php_admin_value[post_max_size] = 64M ; API\u30b5\u30fc\u30d0\u30fc\u7528\u306e\u8a2d\u5b9a<\/p>\n\n\n[api]\n\n\n\n<p>php_admin_value[memory_limit] = 128M php_admin_value[max_execution_time] = 60 php_admin_value[default_socket_timeout] = 60<\/p>\n\n\n\n<p><code>php_admin_value<\/code> \u3068 <code>php_value<\/code> \u306e\u9055\u3044\u306f\u3001\u524d\u8005\u304c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304b\u3089\u4e0a\u66f8\u304d\u3067\u304d\u306a\u3044\u3053\u3068\u3067\u3059\u3002\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u95a2\u9023\u306e\u8a2d\u5b9a\u306b\u306f <code>php_admin_value<\/code> \u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-87\">\u30bb\u30c3\u30b7\u30e7\u30f3\u95a2\u9023\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u8907\u6570\u30b5\u30fc\u30d0\u30fc\u74b0\u5883\u3067\u306f\u3001\u30bb\u30c3\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a\u304c\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; Redis\u3092\u4f7f\u7528\u3057\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\nphp_admin_value[session.save_handler] = redis\nphp_admin_value[session.save_path] = \"tcp:\/\/redis-server:6379\"\n\n; \u30d5\u30a1\u30a4\u30eb\u30d9\u30fc\u30b9\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u8a2d\u5b9a\nphp_admin_value[session.save_handler] = files\nphp_admin_value[session.save_path] = \/var\/lib\/php\/sessions\nphp_admin_value[session.gc_maxlifetime] = 1440\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-88\">\u30a8\u30e9\u30fc\u5831\u544a\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<p>\u672c\u756a\u74b0\u5883\u3068\u958b\u767a\u74b0\u5883\u3067\u9069\u5207\u306a\u30a8\u30e9\u30fc\u5831\u544a\u30ec\u30d9\u30eb\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u958b\u767a\u74b0\u5883\nphp_admin_value[error_reporting] = E_ALL\nphp_admin_value[display_errors] = On\nphp_admin_value[display_startup_errors] = On\n\n; \u672c\u756a\u74b0\u5883\nphp_admin_value[error_reporting] = E_ALL &amp; ~E_DEPRECATED &amp; ~E_STRICT\nphp_admin_value[display_errors] = Off\nphp_admin_value[log_errors] = On\nphp_admin_value[error_log] = \/var\/log\/php\/error.log\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-89\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u6c38\u7d9a\u5316<\/h4>\n\n\n\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3092\u6e1b\u3089\u3059\u305f\u3081\u306b\u3001\u6c38\u7d9a\u7684\u63a5\u7d9a\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">php_admin_value[mysqli.allow_persistent] = On\nphp_admin_value[mysqli.max_persistent] = 5\n<\/pre>\n\n\n\n<p>\u305f\u3060\u3057\u3001\u3053\u306e\u8a2d\u5b9a\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30b5\u30fc\u30d0\u30fc\u306e\u63a5\u7d9a\u4e0a\u9650\u306b\u5f71\u97ff\u3059\u308b\u305f\u3081\u3001\u614e\u91cd\u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-90\">\u30c6\u30af\u30cb\u30c3\u30af5: \u30de\u30eb\u30c1\u30b5\u30a4\u30c8\u74b0\u5883\u3067\u306e\u500b\u5225\u30d7\u30fc\u30eb\u8a2d\u5b9a<\/h3>\n\n\n\n<p>\u8907\u6570\u306e\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u3084\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4e00\u3064\u306e\u30b5\u30fc\u30d0\u30fc\u3067\u904b\u7528\u3059\u308b\u5834\u5408\u3001PHP-FPM\u306e\u30d7\u30fc\u30eb\u6a5f\u80fd\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u52b9\u7387\u7684\u306a\u7ba1\u7406\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-91\">\u500b\u5225\u30d7\u30fc\u30eb\u306e\u57fa\u672c\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u5404\u30b5\u30a4\u30c8\u307e\u305f\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5411\u3051\u306b\u500b\u5225\u306e\u30d7\u30fc\u30eb\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \/etc\/php\/8.1\/fpm\/pool.d\/site1.conf<\/pre>\n\n\n[site1]\n\n\n\n<p>user = site1 group = site1 listen = \/run\/php\/php8.1-fpm-site1.sock pm = dynamic pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 10 ; \u30b5\u30a4\u30c8\u56fa\u6709\u306ePHP\u8a2d\u5b9a php_admin_value[memory_limit] = 128M php_admin_value[upload_max_filesize] = 20M<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-92\">\u30e6\u30fc\u30b6\u30fc\u5206\u96e2\u306b\u3088\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316<\/h4>\n\n\n\n<p>\u5404\u30d7\u30fc\u30eb\u3092\u7570\u306a\u308b\u30b7\u30b9\u30c6\u30e0\u30e6\u30fc\u30b6\u30fc\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u3001\u30b5\u30a4\u30c8\u9593\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5206\u96e2\u304c\u5f37\u5316\u3055\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30b5\u30a4\u30c8\u5c02\u7528\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210\nsudo useradd -r -s \/bin\/false -d \/var\/www\/site1 site1\nsudo chown -R site1:site1 \/var\/www\/site1\n<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30d7\u30fc\u30eb\u8a2d\u5b9a\u3067\u30e6\u30fc\u30b6\u30fc\u3092\u6307\u5b9a\nuser = site1\ngroup = site1\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-93\">\u30ea\u30bd\u30fc\u30b9\u5272\u308a\u5f53\u3066\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<p>\u5404\u30b5\u30a4\u30c8\u306e\u91cd\u8981\u5ea6\u3084\u8981\u4ef6\u306b\u5fdc\u3058\u3066\u30ea\u30bd\u30fc\u30b9\u3092\u914d\u5206\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u91cd\u8981\u5ea6\u306e\u9ad8\u3044\u30b5\u30a4\u30c8<\/pre>\n\n\n[important-site]\n\n\n\n<p>pm.max_children = 30 process.priority = -10 ; \u512a\u5148\u5ea6\u3092\u9ad8\u304f\u8a2d\u5b9a\uff08-19\uff5e20\u3001\u4f4e\u3044\u5024\u307b\u3069\u9ad8\u512a\u5148\u5ea6\uff09 php_admin_value[memory_limit] = 256M ; \u4f4e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u30b5\u30a4\u30c8<\/p>\n\n\n[low-traffic-site]\n\n\n\n<p>pm = ondemand pm.max_children = 10 process.priority = 5 ; \u512a\u5148\u5ea6\u3092\u4f4e\u304f\u8a2d\u5b9a php_admin_value[memory_limit] = 64M<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-94\">\u500b\u5225\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u5404\u30d7\u30fc\u30eb\u306e\u72b6\u614b\u3092\u500b\u5225\u306b\u76e3\u8996\u3067\u304d\u308b\u3088\u3046\u306b\u3001\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3092\u8a2d\u5b9a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u5404\u30d7\u30fc\u30eb\u306b\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3092\u8a2d\u5b9a\npm.status_path = \/status-site1\n<\/pre>\n\n\n\n<p>Web\u30b5\u30fc\u30d0\u30fc\u8a2d\u5b9a\u3067\u3001\u3053\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u9069\u5207\u306b\u5236\u9650\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Nginx\u3067\u306e\u8a2d\u5b9a\u4f8b\nlocation ~ ^\/status-site1$ {\n    include fastcgi_params;\n    fastcgi_pass unix:\/run\/php\/php8.1-fpm-site1.sock;\n    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    allow 127.0.0.1;\n    deny all;\n}\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-95\">\u30c6\u30af\u30cb\u30c3\u30af6: \u30b9\u30ed\u30fc\u30ed\u30b0\u5bfe\u7b56\u3068\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a<\/h3>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u554f\u984c\u3092\u7279\u5b9a\u3057\u89e3\u6c7a\u3059\u308b\u306b\u306f\u3001\u9045\u3044\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u691c\u51fa\u3057\u3001\u9069\u5207\u306a\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a\u3067\u51e6\u7406\u6642\u9593\u3092\u5236\u5fa1\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-96\">\u30b9\u30ed\u30fc\u30ed\u30b0\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u30b9\u30ed\u30fc\u30ed\u30b0\u306f\u3001\u5b9f\u884c\u6642\u9593\u304c\u9577\u3044\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u7279\u5b9a\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30b9\u30ed\u30fc\u30ed\u30b0\u306e\u6709\u52b9\u5316\nslowlog = \/var\/log\/php\/site1-slow.log\nrequest_slowlog_timeout = 3s\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u3067\u306f\u3001\u5b9f\u884c\u306b3\u79d2\u4ee5\u4e0a\u304b\u304b\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u30ed\u30b0\u306b\u8a18\u9332\u3055\u308c\u307e\u3059\u3002\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7279\u6027\u306b\u5408\u308f\u305b\u3066\u9069\u5207\u306a\u5024\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u30b9\u30ed\u30fc\u30ed\u30b0\u306f\u4ee5\u4e0b\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u8a18\u9332\u3055\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[dd-mm-yyyy hh:mm:ss] [pool site1] pid 12345\nscript_filename = \/var\/www\/site1\/slow_script.php\n[0x00007f75a4022520] execute_ex() \/var\/www\/site1\/slow_script.php:10\n[0x00007f75a40217e0] zend_execute_scripts() \/var\/www\/site1\/slow_script.php:0\n...\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u5b9f\u884c\u6642\u9593\u304c\u9577\u3044\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u7279\u5b9a\u3068\u6700\u9069\u5316\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-97\">\u9069\u5207\u306a\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u5b9f\u884c\u6642\u9593\u306b\u5236\u9650\u3092\u8a2d\u3051\u308b\u3053\u3068\u3067\u3001\u30b5\u30fc\u30d0\u30fc\u30ea\u30bd\u30fc\u30b9\u3092\u4fdd\u8b77\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; FPM\u30ec\u30d9\u30eb\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a\nrequest_terminate_timeout = 60s\n\n; PHP\u30ec\u30d9\u30eb\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u8a2d\u5b9a\nphp_admin_value[max_execution_time] = 60\nphp_admin_value[max_input_time] = 60\n<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>request_terminate_timeout<\/code>: PHP-FPM\u304c\u5f37\u5236\u7684\u306b\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u3092\u7d42\u4e86\u3059\u308b\u307e\u3067\u306e\u6642\u9593<\/li>\n\n\n\n<li><code>max_execution_time<\/code>: PHP\u30b9\u30af\u30ea\u30d7\u30c8\u81ea\u4f53\u306e\u5b9f\u884c\u5236\u9650\u6642\u9593<\/li>\n\n\n\n<li><code>max_input_time<\/code>: \u5165\u529b\u30c7\u30fc\u30bf\uff08POST\u306a\u3069\uff09\u306e\u89e3\u6790\u306b\u8a31\u53ef\u3055\u308c\u308b\u6642\u9593<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-98\">\u9577\u6642\u9593\u5b9f\u884c\u51e6\u7406\u306e\u5bfe\u7b56<\/h4>\n\n\n\n<p>\u30d0\u30c3\u30c1\u51e6\u7406\u306a\u3069\u306e\u9577\u6642\u9593\u5b9f\u884c\u30d7\u30ed\u30bb\u30b9\u306b\u306f\u3001\u5c02\u7528\u306e\u30d7\u30fc\u30eb\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[batch-processes]\npm = ondemand\npm.max_children = 2\nrequest_terminate_timeout = 3600  ; 1\u6642\u9593\nphp_admin_value[max_execution_time] = 0  ; \u7121\u5236\u9650\n<\/pre>\n\n\n\n<p>\u3042\u308b\u3044\u306f\u3001\u9577\u6642\u9593\u5b9f\u884c\u51e6\u7406\u3092\u30ad\u30e5\u30fc\u30b7\u30b9\u30c6\u30e0\u3092\u4f7f\u3063\u3066\u975e\u540c\u671f\u51e6\u7406\u306b\u5909\u63db\u3059\u308b\u3053\u3068\u3082\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u975e\u540c\u671f\u51e6\u7406\u306e\u4f8b\uff08Redis\u30ad\u30e5\u30fc\u3092\u4f7f\u7528\uff09\n$redis = new Redis();\n$redis-&gt;connect('127.0.0.1', 6379);\n$redis-&gt;lPush('task_queue', json_encode(['task' =&gt; 'process_data', 'id' =&gt; 123]));\n<\/pre>\n\n\n\n<p>\u305d\u3057\u3066\u3001\u5225\u306e\u30ef\u30fc\u30ab\u30fc\u30d7\u30ed\u30bb\u30b9\u3067\u3053\u308c\u3089\u306e\u30bf\u30b9\u30af\u3092\u51e6\u7406\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-99\">\u30c6\u30af\u30cb\u30c3\u30af7:\u8ca0\u8377\u76e3\u8996\u3068\u52d5\u7684\u306a\u30d7\u30ed\u30bb\u30b9\u8abf\u6574<\/h3>\n\n\n\n<p>\u30b5\u30fc\u30d0\u30fc\u306e\u8ca0\u8377\u72b6\u6cc1\u3092\u76e3\u8996\u3057\u3001\u305d\u308c\u306b\u5fdc\u3058\u3066PHP-FPM\u8a2d\u5b9a\u3092\u8abf\u6574\u3059\u308b\u3053\u3068\u3067\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6700\u9069\u306b\u4fdd\u3064\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-100\">FPM\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306e\u6d3b\u7528<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306f\u3001\u73fe\u5728\u306e\u72b6\u614b\u3092\u76e3\u8996\u3059\u308b\u305f\u3081\u306e\u8cb4\u91cd\u306a\u60c5\u5831\u6e90\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3092\u6709\u52b9\u5316\npm.status_path = \/status\n<\/pre>\n\n\n\n<p>\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u60c5\u5831\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pool:                 www\nprocess manager:      dynamic\nstart time:           17\/Mar\/2023:12:00:00 +0900\nstart since:          3600\naccepted conn:        10000\nlisten queue:         0\nmax listen queue:     5\nlisten queue len:     128\nidle processes:       5\nactive processes:     10\ntotal processes:      15\nmax active processes: 20\nmax children reached: 0\n<\/pre>\n\n\n\n<p>\u3053\u306e\u60c5\u5831\u304b\u3089\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6307\u6a19\u3092\u76e3\u8996\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>listen queue<\/code>: \u51e6\u7406\u5f85\u3061\u30ea\u30af\u30a8\u30b9\u30c8\u6570\uff08\u5897\u52a0\u50be\u5411\u306a\u3089\u30d7\u30ed\u30bb\u30b9\u6570\u5897\u52a0\u3092\u691c\u8a0e\uff09<\/li>\n\n\n\n<li><code>active processes<\/code> vs <code>max_children<\/code>: \u4f7f\u7528\u4e2d\u30d7\u30ed\u30bb\u30b9\u6570\u3068\u4e0a\u9650\u306e\u6bd4\u7387<\/li>\n\n\n\n<li><code>max children reached<\/code>: \u5b50\u30d7\u30ed\u30bb\u30b9\u6570\u306e\u4e0a\u9650\u306b\u9054\u3057\u305f\u56de\u6570\uff08\u983b\u767a\u3059\u308b\u5834\u5408\u306f\u4e0a\u9650\u5f15\u304d\u4e0a\u3052\u3092\u691c\u8a0e\uff09<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-101\">\u5916\u90e8\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a<\/h4>\n\n\n\n<p>Prometheus\u3084Zabbix\u306a\u3069\u306e\u5916\u90e8\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30c4\u30fc\u30eb\u3068\u9023\u643a\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u9ad8\u5ea6\u306a\u76e3\u8996\u3068\u81ea\u52d5\u8abf\u6574\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Nginx\u3067\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u8a2d\u5b9a\u4f8b\uff08Prometheus\u7528\uff09\nlocation = \/status {\n    fastcgi_param SCRIPT_NAME $fastcgi_script_name;\n    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    include fastcgi_params;\n    fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;\n    allow 127.0.0.1;\n    deny all;\n}\n<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Prometheus\u7528\u306ePHP-FPM\u30a8\u30af\u30b9\u30dd\u30fc\u30bf\u30fc\u306e\u5b9f\u884c\u4f8b\n.\/php-fpm_exporter server --phpfpm.scrape-uri=http:\/\/127.0.0.1\/status\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-102\">\u8ca0\u8377\u306b\u57fa\u3065\u304f\u52d5\u7684\u8abf\u6574<\/h4>\n\n\n\n<p>\u30b5\u30fc\u30d0\u30fc\u8ca0\u8377\u306b\u5fdc\u3058\u3066\u8a2d\u5b9a\u3092\u52d5\u7684\u306b\u8abf\u6574\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\n# \u73fe\u5728\u306eCPU\u8ca0\u8377\u3092\u53d6\u5f97\nCPU_LOAD=$(uptime | awk '{print $10}' | tr -d ',')\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\nFPM_CONF=\"\/etc\/php\/8.1\/fpm\/pool.d\/www.conf\"\n\n# \u8ca0\u8377\u306b\u5fdc\u3058\u3066pm.max_children\u3092\u8abf\u6574\nif (( $(echo \"$CPU_LOAD &gt; 4\" | bc -l) )); then\n    # \u9ad8\u8ca0\u8377\u6642\uff1a\u30d7\u30ed\u30bb\u30b9\u6570\u524a\u6e1b\uff08DoS\u5bfe\u7b56\uff09\n    sed -i 's\/pm.max_children = .*\/pm.max_children = 20\/' $FPM_CONF\nelif (( $(echo \"$CPU_LOAD &gt; 2\" | bc -l) )); then\n    # \u4e2d\u8ca0\u8377\u6642\uff1a\u9069\u5ea6\u306a\u30d7\u30ed\u30bb\u30b9\u6570\n    sed -i 's\/pm.max_children = .*\/pm.max_children = 50\/' $FPM_CONF\nelse\n    # \u4f4e\u8ca0\u8377\u6642\uff1a\u30d7\u30ed\u30bb\u30b9\u6570\u5897\u52a0\n    sed -i 's\/pm.max_children = .*\/pm.max_children = 70\/' $FPM_CONF\nfi\n\n# PHP-FPM\u3092\u518d\u8aad\u307f\u8fbc\u307f\nsystemctl reload php8.1-fpm\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u30b9\u30af\u30ea\u30d7\u30c8\u3092cron\u3067\u5b9a\u671f\u7684\u306b\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u3001\u8ca0\u8377\u306b\u5fdc\u3058\u305f\u81ea\u52d5\u8abf\u6574\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-103\">\u5fdc\u7b54\u6642\u9593\u306b\u57fa\u3065\u304f\u6700\u9069\u5316<\/h4>\n\n\n\n<p>\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0\u306f\u91cd\u8981\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6307\u6a19\u3067\u3059\u3002PHP-FPM\u306e\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u3092\u6709\u52b9\u306b\u3059\u308b\u3053\u3068\u3067\u3001\u5fdc\u7b54\u6642\u9593\u3092\u76e3\u8996\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u3092\u6709\u52b9\u5316\naccess.log = \/var\/log\/php\/$pool.access.log\naccess.format = \"%R - %u %t \\\"%m %r%Q%q\\\" %s %f %{mili}d %{kilo}M %C%%\"\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u6642\u9593\uff08\u30df\u30ea\u79d2\uff09\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3001CPU\u4f7f\u7528\u7387\u306a\u3069\u3092\u8a18\u9332\u3057\u305f\u30ed\u30b0\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\u3053\u306e\u30c7\u30fc\u30bf\u3092\u5206\u6790\u3059\u308b\u3053\u3068\u3067\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u554f\u984c\u3092\u7279\u5b9a\u3057\u3001\u8a2d\u5b9a\u3092\u6700\u9069\u5316\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u5fdc\u7b54\u6642\u9593\u304c\u9577\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u30ed\u30b0\u304b\u3089\u62bd\u51fa\nawk '$9 &gt; 1000 {print $0}' \/var\/log\/php\/www.access.log\n<\/pre>\n\n\n\n<p>\u4ee5\u4e0a\u306e7\u3064\u306e\u30c6\u30af\u30cb\u30c3\u30af\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001PHP-FPM\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3055\u305b\u3001\u5b89\u5b9a\u3057\u305f\u904b\u7528\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30c7\u30d0\u30c3\u30b0\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-104\">PHP-FPM\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30c7\u30d0\u30c3\u30b0 \u2013 \u5b89\u5b9a\u904b\u7528\u306e\u305f\u3081\u306b<\/h2>\n\n\n\n<p>PHP-FPM\u3092\u672c\u756a\u74b0\u5883\u3067\u5b89\u5b9a\u3057\u3066\u904b\u7528\u3059\u308b\u305f\u3081\u306b\u306f\u3001\u9069\u5207\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30c7\u30d0\u30c3\u30b0\u306e\u4ed5\u7d44\u307f\u304c\u4e0d\u53ef\u6b20\u3067\u3059\u3002\u554f\u984c\u304c\u767a\u751f\u3057\u305f\u5f8c\u306b\u5bfe\u5fdc\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u4e88\u9632\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3092\u884c\u3046\u3053\u3068\u3067\u3001\u6f5c\u5728\u7684\u306a\u554f\u984c\u3092\u65e9\u671f\u306b\u767a\u898b\u3057\u3001\u30b7\u30b9\u30c6\u30e0\u30c0\u30a6\u30f3\u30bf\u30a4\u30e0\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u672c\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u52b9\u679c\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u624b\u6cd5\u3068\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-105\">\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306e\u6d3b\u7528\u3068\u76e3\u8996\u65b9\u6cd5<\/h3>\n\n\n\n<p>PHP-FPM\u306b\u306f\u3001\u73fe\u5728\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u7d44\u307f\u8fbc\u307f\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u3002\u3053\u306e\u6a5f\u80fd\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u306bPHP-FPM\u306e\u72b6\u614b\u3092\u76e3\u8996\u3057\u3001\u6f5c\u5728\u7684\u306a\u554f\u984c\u3092\u65e9\u671f\u306b\u767a\u898b\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-106\">\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3092\u6709\u52b9\u306b\u3059\u308b\u306b\u306f\u3001PHP-FPM\u306e\u30d7\u30fc\u30eb\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\uff08\u901a\u5e38\u306f <code>\/etc\/php\/8.1\/fpm\/pool.d\/www.conf<\/code>\uff09\u306b\u4ee5\u4e0b\u306e\u8a2d\u5b9a\u3092\u8ffd\u52a0\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3092\u6709\u52b9\u5316\npm.status_path = \/status\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001<code>\/status<\/code> \u3068\u3044\u3046URL\u30d1\u30b9\u3067PHP-FPM\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u60c5\u5831\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\u3001\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306f\u5236\u9650\u3059\u3079\u304d\u3067\u3059\u3002Web\u30b5\u30fc\u30d0\u30fc\u306e\u8a2d\u5b9a\u3067\u3001\u7279\u5b9a\u306eIP\u30a2\u30c9\u30ec\u30b9\u304b\u3089\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306b\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>Nginx\u3067\u306e\u8a2d\u5b9a\u4f8b\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">location = \/status {\n    fastcgi_param SCRIPT_NAME $fastcgi_script_name;\n    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    include fastcgi_params;\n    fastcgi_pass unix:\/run\/php\/php8.1-fpm.sock;\n    \n    # \u30a2\u30af\u30bb\u30b9\u5236\u9650\n    allow 127.0.0.1;        # \u30ed\u30fc\u30ab\u30eb\u30a2\u30af\u30bb\u30b9\n    allow 192.168.1.0\/24;   # \u5185\u90e8\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\n    deny all;               # \u305d\u308c\u4ee5\u5916\u306f\u62d2\u5426\n}\n<\/pre>\n\n\n\n<p><strong>Apache\u3067\u306e\u8a2d\u5b9a\u4f8b\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;LocationMatch \"^\/status$\"&gt;\n    SetHandler \"proxy:fcgi:\/\/unix:\/run\/php\/php8.1-fpm.sock\"\n    Require ip 127.0.0.1 192.168.1.0\/24\n&lt;\/LocationMatch&gt;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-107\">\u30b9\u30c6\u30fc\u30bf\u30b9\u60c5\u5831\u306e\u89e3\u91c8<\/h4>\n\n\n\n<p>\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u60c5\u5831\u304c\u8868\u793a\u3055\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pool:                 www\nprocess manager:      dynamic\nstart time:           01\/May\/2023:00:00:00 +0900\nstart since:          86400\naccepted conn:        10000\nlisten queue:         0\nmax listen queue:     5\nlisten queue len:     128\nidle processes:       5\nactive processes:     10\ntotal processes:      15\nmax active processes: 20\nmax children reached: 0\nslow requests:        2\n<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5024\u306e\u610f\u5473\u3068\u3001\u76e3\u8996\u3059\u3079\u304d\u30dd\u30a4\u30f3\u30c8\u3092\u89e3\u8aac\u3057\u307e\u3059\uff1a<\/p>\n\n\n<div id=\"id-a67a701a-a757-49ae-8a4a-2ab75faf2842\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>\u8aac\u660e<\/th><th>\u6ce8\u610f\u3059\u3079\u304d\u5024<\/th><\/tr><\/thead><tbody><tr><td>pool<\/td><td>\u30d7\u30fc\u30eb\u540d<\/td><td>\u2013<\/td><\/tr><tr><td>process manager<\/td><td>\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u65b9\u5f0f<\/td><td>\u2013<\/td><\/tr><tr><td>start time<\/td><td>PHP-FPM\u958b\u59cb\u6642\u523b<\/td><td>\u2013<\/td><\/tr><tr><td>start since<\/td><td>\u8d77\u52d5\u304b\u3089\u306e\u7d4c\u904e\u6642\u9593\uff08\u79d2\uff09<\/td><td>\u7570\u5e38\u306b\u77ed\u3044\u5834\u5408\u306f\u30af\u30e9\u30c3\u30b7\u30e5\u306e\u53ef\u80fd\u6027<\/td><\/tr><tr><td>accepted conn<\/td><td>\u51e6\u7406\u3057\u305f\u63a5\u7d9a\u6570<\/td><td>\u2013<\/td><\/tr><tr><td>listen queue<\/td><td>\u73fe\u5728\u51e6\u7406\u5f85\u3061\u306e\u63a5\u7d9a\u6570<\/td><td>0\u3088\u308a\u5927\u304d\u3044\u5834\u5408\u306f\u30d7\u30ed\u30bb\u30b9\u6570\u4e0d\u8db3\u306e\u53ef\u80fd\u6027<\/td><\/tr><tr><td>max listen queue<\/td><td>\u6700\u5927\u51e6\u7406\u5f85\u3061\u63a5\u7d9a\u6570<\/td><td>\u9ad8\u3044\u5024\u306f\u30d7\u30ed\u30bb\u30b9\u6570\u4e0d\u8db3\u306e\u5146\u5019<\/td><\/tr><tr><td>listen queue len<\/td><td>\u30ea\u30c3\u30b9\u30f3\u30ad\u30e5\u30fc\u306e\u9577\u3055<\/td><td>\u2013<\/td><\/tr><tr><td>idle processes<\/td><td>\u30a2\u30a4\u30c9\u30eb\u72b6\u614b\u306e\u30d7\u30ed\u30bb\u30b9\u6570<\/td><td>\u5e38\u306b0\u306e\u5834\u5408\u306f\u30d7\u30ed\u30bb\u30b9\u6570\u5897\u52a0\u3092\u691c\u8a0e<\/td><\/tr><tr><td>active processes<\/td><td>\u30a2\u30af\u30c6\u30a3\u30d6\u306a\u30d7\u30ed\u30bb\u30b9\u6570<\/td><td>max_children\u306b\u8fd1\u3044\u5834\u5408\u306f\u6ce8\u610f<\/td><\/tr><tr><td>total processes<\/td><td>\u7dcf\u30d7\u30ed\u30bb\u30b9\u6570<\/td><td>\u2013<\/td><\/tr><tr><td>max active processes<\/td><td>\u6700\u5927\u540c\u6642\u30a2\u30af\u30c6\u30a3\u30d6\u6570<\/td><td>max_children\u306b\u8fd1\u3044\u5834\u5408\u306f\u5897\u52a0\u3092\u691c\u8a0e<\/td><\/tr><tr><td>max children reached<\/td><td>\u30d7\u30ed\u30bb\u30b9\u6570\u4e0a\u9650\u5230\u9054\u56de\u6570<\/td><td>0\u3088\u308a\u5927\u304d\u3044\u5834\u5408\u306fpm.max_children\u306e\u5897\u52a0\u3092\u691c\u8a0e<\/td><\/tr><tr><td>slow requests<\/td><td>\u9045\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u6570<\/td><td>0\u3088\u308a\u5927\u304d\u3044\u5834\u5408\u306f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u3092\u8abf\u67fb<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u7279\u306b\u6ce8\u76ee\u3059\u3079\u304d\u6307\u6a19\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>listen queue &gt; 0<\/strong>: \u73fe\u5728\u51e6\u7406\u3067\u304d\u306a\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u3042\u308b\u3053\u3068\u3092\u793a\u3057\u3001\u30d7\u30ed\u30bb\u30b9\u6570\u304c\u4e0d\u8db3\u3057\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>max children reached &gt; 0<\/strong>: \u30d7\u30ed\u30bb\u30b9\u6570\u306e\u4e0a\u9650\u306b\u9054\u3057\u305f\u3053\u3068\u304c\u3042\u308a\u3001\u4e00\u90e8\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u51e6\u7406\u3055\u308c\u306a\u304b\u3063\u305f\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>idle processes = 0 &amp; active processes = max_children<\/strong>: \u3059\u3079\u3066\u306e\u30d7\u30ed\u30bb\u30b9\u304c\u30a2\u30af\u30c6\u30a3\u30d6\u3067\u3001\u65b0\u3057\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3059\u308b\u4f59\u88d5\u304c\u306a\u3044\u72b6\u614b\u3067\u3059\u3002<\/li>\n\n\n\n<li><strong>slow requests &gt; 0<\/strong>: \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u554f\u984c\u304c\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-108\">JSON\u5f62\u5f0f\u3067\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u53d6\u5f97<\/h4>\n\n\n\n<p>\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306f\u3001JSON\u5f62\u5f0f\u3067\u3082\u60c5\u5831\u3092\u53d6\u5f97\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl 'http:\/\/localhost\/status?json'\n<\/pre>\n\n\n\n<p>\u3053\u306e\u5f62\u5f0f\u306f\u3001\u81ea\u52d5\u76e3\u8996\u30b9\u30af\u30ea\u30d7\u30c8\u3068\u9023\u643a\u3059\u308b\u5834\u5408\u306b\u7279\u306b\u4fbf\u5229\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n  \"pool\": \"www\",\n  \"process manager\": \"dynamic\",\n  \"start time\": 1682899200,\n  \"start since\": 86400,\n  \"accepted conn\": 10000,\n  \"listen queue\": 0,\n  \"max listen queue\": 5,\n  \"listen queue len\": 128,\n  \"idle processes\": 5,\n  \"active processes\": 10,\n  \"total processes\": 15,\n  \"max active processes\": 20,\n  \"max children reached\": 0,\n  \"slow requests\": 2\n}\n<\/pre>\n\n\n\n<p>\u3088\u308a\u8a73\u7d30\u306a\u60c5\u5831\u3092\u542b\u3080\u30d5\u30eb\u5f62\u5f0f\u3082\u5229\u7528\u53ef\u80fd\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl 'http:\/\/localhost\/status?json&amp;full'\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u5404\u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u72b6\u614b\u3084\u8a73\u7d30\u306a\u7d71\u8a08\u60c5\u5831\u3082\u53d6\u5f97\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-109\">\u5916\u90e8\u76e3\u8996\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306f\u3001\u69d8\u3005\u306a\u5916\u90e8\u76e3\u8996\u30c4\u30fc\u30eb\u3068\u9023\u643a\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. Prometheus + Grafana<\/strong><\/p>\n\n\n\n<p>PHP-FPM\u306e\u30e1\u30c8\u30ea\u30af\u30b9\u3092Prometheus\u3067\u53ce\u96c6\u3057\u3001Grafana\u3067\u30b0\u30e9\u30d5\u5316\u3059\u308b\u8a2d\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP-FPM\u30a8\u30af\u30b9\u30dd\u30fc\u30bf\u30fc\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u4f8b\ngo get github.com\/hipages\/php-fpm_exporter\n\n# \u30a8\u30af\u30b9\u30dd\u30fc\u30bf\u30fc\u306e\u5b9f\u884c\nphp-fpm_exporter server --phpfpm.scrape-uri=\"http:\/\/localhost\/status?json&amp;full\"\n<\/pre>\n\n\n\n<p>Prometheus\u8a2d\u5b9a\uff08prometheus.yml\uff09\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">scrape_configs:\n  - job_name: 'php-fpm'\n    static_configs:\n      - targets: ['localhost:9253']\n<\/pre>\n\n\n\n<p><strong>2. Zabbix<\/strong><\/p>\n\n\n\n<p>Zabbix\u3067PHP-FPM\u3092\u76e3\u8996\u3059\u308b\u305f\u3081\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u304c\u5229\u7528\u53ef\u80fd\u3067\u3059\u3002UserParameter\u3092\u8a2d\u5b9a\u3057\u3066\u3001PHP-FPM\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u60c5\u5831\u3092\u53ce\u96c6\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">UserParameter=php-fpm.status[*],curl -s \"http:\/\/localhost\/status?json\" | jq -r \".$1\"\n<\/pre>\n\n\n\n<p><strong>3. Munin<\/strong><\/p>\n\n\n\n<p>Munin\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u4f7f\u7528\u3057\u3066PHP-FPM\u306e\u72b6\u614b\u3092\u30b0\u30e9\u30d5\u5316\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Munin\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\napt install munin-plugins-php-fpm\n\n# \u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30ea\u30f3\u30af\u306e\u4f5c\u6210\nln -s \/usr\/share\/munin\/plugins\/phpfpm_* \/etc\/munin\/plugins\/\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-110\">\u30ed\u30b0\u8a2d\u5b9a\u3068\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h3>\n\n\n\n<p>PHP-FPM\u306f\u8907\u6570\u306e\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u751f\u6210\u3057\u3001\u554f\u984c\u306e\u8a3a\u65ad\u3068\u89e3\u6c7a\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002\u9069\u5207\u306a\u30ed\u30b0\u8a2d\u5b9a\u3068\u5206\u6790\u65b9\u6cd5\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306a\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-111\">\u30a8\u30e9\u30fc\u30ed\u30b0\u306e\u8a2d\u5b9a\u3068\u6d3b\u7528<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u30e1\u30a4\u30f3\u30a8\u30e9\u30fc\u30ed\u30b0\u306f\u3001\u30d7\u30ed\u30bb\u30b9\u306e\u8d77\u52d5\u30fb\u505c\u6b62\u3084\u8a2d\u5b9a\u30a8\u30e9\u30fc\u306a\u3069\u306e\u30b7\u30b9\u30c6\u30e0\u95a2\u9023\u306e\u554f\u984c\u3092\u8a18\u9332\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\nerror_log = \/var\/log\/php8.1-fpm.log\n\n; \u30ed\u30b0\u30ec\u30d9\u30eb\u306e\u8a2d\u5b9a\n; alert (\u6700\u3082\u91cd\u5927) &gt; error &gt; warning &gt; notice &gt; debug (\u6700\u3082\u8a73\u7d30)\nlog_level = notice\n<\/pre>\n\n\n\n<p>\u30d7\u30fc\u30eb\u5225\u306b\u30a8\u30e9\u30fc\u30ed\u30b0\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30d7\u30fc\u30eb\u5225\u306e\u30a8\u30e9\u30fc\u30ed\u30b0\u8a2d\u5b9a\nphp_admin_value[error_log] = \/var\/log\/php\/www-error.log\nphp_admin_value[log_errors] = on\n<\/pre>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30ed\u30b0\u304b\u3089\u4e00\u822c\u7684\u306a\u554f\u984c\u3092\u7279\u5b9a\u3059\u308b\u30b3\u30de\u30f3\u30c9\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u81f4\u547d\u7684\u306a\u30a8\u30e9\u30fc\u306e\u691c\u7d22\ngrep -i \"fatal\\|error\" \/var\/log\/php8.1-fpm.log\n\n# PHP-FPM\u306e\u518d\u8d77\u52d5\u5c65\u6b74\ngrep -i \"starting\\|shutdown\" \/var\/log\/php8.1-fpm.log\n\n# \u30e1\u30e2\u30ea\u95a2\u9023\u306e\u30a8\u30e9\u30fc\ngrep -i \"memory\" \/var\/log\/php\/www-error.log\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-112\">\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u8a2d\u5b9a\u3068\u5206\u6790<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306f\u3001\u5404\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u8a73\u7d30\u60c5\u5831\u3092\u8a18\u9332\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u6709\u52b9\u5316\naccess.log = \/var\/log\/php\/www.access.log\n\n; \u30ed\u30b0\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u8a2d\u5b9a\naccess.format = \"%R - %u %t \\\"%m %r%Q%q\\\" %s %f %{mili}d %{kilo}M %C%%\"\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3067\u8a18\u9332\u3055\u308c\u308b\u4e3b\u306a\u60c5\u5831\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>%R<\/code>: \u30ea\u30e2\u30fc\u30c8IP\u30a2\u30c9\u30ec\u30b9<\/li>\n\n\n\n<li><code>%t<\/code>: \u30a2\u30af\u30bb\u30b9\u6642\u523b<\/li>\n\n\n\n<li><code>%m %r%Q%q<\/code>: \u30ea\u30af\u30a8\u30b9\u30c8\u30e1\u30bd\u30c3\u30c9\u3068URI<\/li>\n\n\n\n<li><code>%s<\/code>: \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9<\/li>\n\n\n\n<li><code>%f<\/code>: \u5b9f\u884c\u3055\u308c\u305f\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30a1\u30a4\u30eb<\/li>\n\n\n\n<li><code>%{mili}d<\/code>: \u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u6642\u9593\uff08\u30df\u30ea\u79d2\uff09<\/li>\n\n\n\n<li><code>%{kilo}M<\/code>: \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\uff08KB\uff09<\/li>\n\n\n\n<li><code>%C%%<\/code>: CPU\u4f7f\u7528\u7387<\/li>\n<\/ul>\n\n\n\n<p>\u30a2\u30af\u30bb\u30b9\u30ed\u30b0\u306e\u5206\u6790\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u51e6\u7406\u6642\u9593\u304c\u9577\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u62bd\u51fa\uff08500ms\u4ee5\u4e0a\uff09\nawk '$9 &gt; 500 {print $0}' \/var\/log\/php\/www.access.log\n\n# \u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u304c\u591a\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u62bd\u51fa\uff0810MB\u4ee5\u4e0a\uff09\nawk '$10 &gt; 10000 {print $0}' \/var\/log\/php\/www.access.log\n\n# \u7279\u5b9a\u306eURL\u30d1\u30bf\u30fc\u30f3\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u5206\u6790\ngrep \"login.php\" \/var\/log\/php\/www.access.log | sort -nk9\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-113\">\u30b9\u30ed\u30fc\u30ed\u30b0\u306e\u8a2d\u5b9a\u3068\u6d3b\u7528<\/h4>\n\n\n\n<p>\u30b9\u30ed\u30fc\u30ed\u30b0\u306f\u3001\u5b9f\u884c\u6642\u9593\u304c\u9577\u3044\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u7279\u5b9a\u3059\u308b\u305f\u3081\u306e\u5f37\u529b\u306a\u30c4\u30fc\u30eb\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30b9\u30ed\u30fc\u30ed\u30b0\u306e\u8a2d\u5b9a\nslowlog = \/var\/log\/php\/www-slow.log\n\n; 5\u79d2\u4ee5\u4e0a\u304b\u304b\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u30ed\u30b0\u306b\u8a18\u9332\nrequest_slowlog_timeout = 5s\n<\/pre>\n\n\n\n<p>\u30b9\u30ed\u30fc\u30ed\u30b0\u306e\u30a8\u30f3\u30c8\u30ea\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[25-Apr-2023 12:34:56]  [pool www] pid 12345\nscript_filename = \/var\/www\/html\/heavy-script.php\n[0x00007f75a4022520] execute_ex() \/var\/www\/html\/heavy-script.php:10\n[0x00007f75a40217e0] zend_execute_scripts() \/var\/www\/html\/heavy-script.php:0\n...\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30ed\u30b0\u304b\u3089\u3001\u5b9f\u884c\u6642\u9593\u306e\u9577\u3044\u30b9\u30af\u30ea\u30d7\u30c8\u3068\u305d\u306e\u30b3\u30fc\u30eb\u30b9\u30bf\u30c3\u30af\u3092\u7279\u5b9a\u3067\u304d\u307e\u3059\u3002\u7279\u306b\u7e70\u308a\u8fd4\u3057\u51fa\u73fe\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u3001\u6700\u9069\u5316\u306e\u512a\u5148\u5bfe\u8c61\u3068\u3059\u3079\u304d\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u30b9\u30ed\u30fc\u30ed\u30b0\u306e\u5206\u6790\u30b3\u30de\u30f3\u30c9\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u6700\u3082\u983b\u7e41\u306b\u51fa\u73fe\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u62bd\u51fa\ngrep \"script_filename\" \/var\/log\/php\/www-slow.log | sort | uniq -c | sort -nr\n\n# \u7279\u5b9a\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u306e\u8a73\u7d30\u3092\u78ba\u8a8d\ngrep -A 20 \"problematic-script.php\" \/var\/log\/php\/www-slow.log\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-114\">\u30ed\u30b0\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u9577\u671f\u904b\u7528\u3067\u306f\u3001\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u306e\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u304c\u91cd\u8981\u3067\u3059\u3002\u4ee5\u4e0b\u306flogrotate\u3092\u4f7f\u7528\u3057\u305f\u8a2d\u5b9a\u4f8b\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/var\/log\/php\/*.log {\n    daily\n    missingok\n    rotate 14\n    compress\n    delaycompress\n    notifempty\n    create 0640 www-data www-data\n    sharedscripts\n    postrotate\n        if [ -s \/run\/php\/php8.1-fpm.pid ]; then\n            kill -USR1 $(cat \/run\/php\/php8.1-fpm.pid)\n        fi\n    endscript\n}\n<\/pre>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u3067\u306f\u3001\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u304c\u6bce\u65e5\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3055\u308c\u300114\u65e5\u5206\u304c\u4fdd\u6301\u3055\u308c\u307e\u3059\u3002\u307e\u305f\u3001\u30ed\u30b0\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u5f8c\u306bPHP-FPM\u306bUSR1\u30b7\u30b0\u30ca\u30eb\u3092\u9001\u4fe1\u3057\u3066\u3001\u65b0\u3057\u3044\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304f\u3088\u3046\u306b\u6307\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-115\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u306e\u767a\u898b\u3068\u89e3\u6d88<\/h3>\n\n\n\n<p>PHP-FPM\u306e\u6027\u80fd\u3092\u6700\u5927\u9650\u306b\u767a\u63ee\u3059\u308b\u306b\u306f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u3092\u7279\u5b9a\u3057\u89e3\u6d88\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-116\">\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u767a\u898b\u306e\u30a2\u30d7\u30ed\u30fc\u30c1<\/h4>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u3092\u7279\u5b9a\u3059\u308b\u306b\u306f\u3001\u4e3b\u306b\u6b21\u306e2\u3064\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u30c8\u30c3\u30d7\u30c0\u30a6\u30f3\u30a2\u30d7\u30ed\u30fc\u30c1<\/strong><\/p>\n\n\n\n<p>\u30b7\u30b9\u30c6\u30e0\u5168\u4f53\u306e\u72b6\u614b\u304b\u3089\u59cb\u3081\u3066\u3001\u554f\u984c\u3092\u3088\u308a\u8a73\u7d30\u306a\u30ec\u30d9\u30eb\u306b\u7d5e\u308a\u8fbc\u307f\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b7\u30b9\u30c6\u30e0\u30ea\u30bd\u30fc\u30b9\u306e\u78ba\u8a8d<\/strong>: <code># \u5168\u4f53\u7684\u306a\u30b7\u30b9\u30c6\u30e0\u8ca0\u8377 top # \u30e1\u30e2\u30ea\u4f7f\u7528\u72b6\u6cc1 free -m # \u30c7\u30a3\u30b9\u30afI\/O\u72b6\u6cc1 iostat -xz 1<\/code><\/li>\n\n\n\n<li><strong>PHP-FPM\u30d7\u30ed\u30bb\u30b9\u306e\u76e3\u8996<\/strong>: <code># PHP-FPM\u30d7\u30ed\u30bb\u30b9\u306e\u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u72b6\u6cc1 ps aux | grep php-fpm | grep -v grep # \u30d7\u30ed\u30bb\u30b9\u5225\u306e\u8a73\u7d30\u60c5\u5831 top -p $(pgrep -d ',' php-fpm)<\/code><\/li>\n\n\n\n<li><strong>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u63a5\u7d9a\u306e\u78ba\u8a8d<\/strong>: <code># PHP-FPM\u306e\u63a5\u7d9a\u72b6\u614b netstat -anp | grep php-fpm # \u63a5\u7d9a\u6570\u306e\u96c6\u8a08 netstat -anp | grep php-fpm | grep ESTABLISHED | wc -l<\/code><\/li>\n<\/ol>\n\n\n\n<p><strong>2. \u30dc\u30c8\u30e0\u30a2\u30c3\u30d7\u30a2\u30d7\u30ed\u30fc\u30c1<\/strong><\/p>\n\n\n\n<p>\u7279\u5b9a\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3084\u30b3\u30fc\u30c9\u304b\u3089\u59cb\u3081\u3066\u3001\u305d\u306e\u5f71\u97ff\u3092\u8abf\u67fb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b9\u30ed\u30fc\u30ed\u30b0\u306e\u5206\u6790<\/strong>: \u554f\u984c\u306e\u3042\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u7279\u5b9a\u3057\u3001\u305d\u306e\u30b3\u30fc\u30c9\u3092\u6700\u9069\u5316\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>APM\u30c4\u30fc\u30eb\u306e\u6d3b\u7528<\/strong>: Blackfire\u3001Tideways\u3001New Relic\u306a\u3069\u306e\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u3001\u8a73\u7d30\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\u3092\u884c\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u30d6\u30e9\u30a6\u30b6\u306e\u30c7\u30d9\u30ed\u30c3\u30d1\u30fc\u30c4\u30fc\u30eb<\/strong>: \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30bf\u30d6\u3067\u30ea\u30af\u30a8\u30b9\u30c8\u6642\u9593\u3092\u5206\u6790\u3057\u3001\u9045\u3044\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u7279\u5b9a\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-117\">\u4e00\u822c\u7684\u306a\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u3068\u89e3\u6c7a\u7b56<\/h4>\n\n\n\n<p><strong>1. \u30d7\u30ed\u30bb\u30b9\u6570\u4e0d\u8db3<\/strong><\/p>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3067 <code>listen queue &gt; 0<\/code><\/li>\n\n\n\n<li>Web\u30b5\u30fc\u30d0\u30fc\u306e\u30a8\u30e9\u30fc\u30ed\u30b0\u306b\u5927\u91cf\u306e\u300c\u63a5\u7d9a\u62d2\u5426\u300d\u30a8\u30e9\u30fc<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30d7\u30ed\u30bb\u30b9\u6570\u306e\u5897\u52a0\npm.max_children = 50  ; \u4ee5\u524d\u306e\u5024\u3088\u308a\u5897\u52a0\npm.start_servers = 10\npm.min_spare_servers = 5\npm.max_spare_servers = 15\n<\/pre>\n\n\n\n<p><strong>2. \u30e1\u30e2\u30ea\u5236\u9650\u306e\u554f\u984c<\/strong><\/p>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP\u30a8\u30e9\u30fc\u30ed\u30b0\u306b \u201cAllowed memory size of \u2026 bytes exhausted\u201d<\/li>\n\n\n\n<li>\u30d7\u30ed\u30bb\u30b9\u304c\u983b\u7e41\u306b\u7d42\u4e86\u3057\u518d\u8d77\u52d5\u3059\u308b<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30e1\u30e2\u30ea\u5236\u9650\u306e\u5897\u52a0\nphp_admin_value[memory_limit] = 256M\n\n; \u540c\u6642\u306b\u3001\u30d7\u30ed\u30bb\u30b9\u6570\u3068\u30e1\u30e2\u30ea\u306e\u30d0\u30e9\u30f3\u30b9\u3092\u8abf\u6574\n; \u4f8b\uff1a\u30b5\u30fc\u30d0\u30fc\u306b8GB\u30e1\u30e2\u30ea\u304c\u3042\u308a\u3001\u5404\u30d7\u30ed\u30bb\u30b9\u304c\u7d04200MB\u4f7f\u7528\u3059\u308b\u5834\u5408\npm.max_children = 35  ; (8000MB - 1000MB\u4e88\u5099) \/ 200MB\n<\/pre>\n\n\n\n<p><strong>3. \u30b9\u30ed\u30fc\u30b9\u30af\u30ea\u30d7\u30c8<\/strong><\/p>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b9\u30ed\u30fc\u30ed\u30b0\u306b\u30a8\u30f3\u30c8\u30ea\u304c\u5897\u52a0<\/li>\n\n\n\n<li>\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0\u306e\u5897\u52a0<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u306e\u6700\u9069\u5316\u3068\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u8ffd\u52a0<\/li>\n\n\n\n<li>\u975e\u52b9\u7387\u306a\u30eb\u30fc\u30d7\u3084\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306e\u6539\u5584<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u5c0e\u5165\uff08OPcache\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u3001\u7d50\u679c\u30ad\u30e3\u30c3\u30b7\u30e5\uff09<\/li>\n\n\n\n<li>\u5916\u90e8API\u547c\u3073\u51fa\u3057\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<p>\u4f8b\uff1aRedis\u3092\u4f7f\u3063\u305f\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u5c0e\u5165<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$redis = new Redis();\n$redis-&gt;connect('127.0.0.1', 6379);\n\n$cacheKey = 'expensive_query_' . md5($query);\n$result = $redis-&gt;get($cacheKey);\n\nif ($result === false) {\n    \/\/ \u30ad\u30e3\u30c3\u30b7\u30e5\u304c\u306a\u3044\u5834\u5408\u306f\u51e6\u7406\u3092\u5b9f\u884c\n    $result = expensiveOperation();\n    \/\/ \u7d50\u679c\u3092\u30ad\u30e3\u30c3\u30b7\u30e5\u306b\u4fdd\u5b58\uff08TTL 300\u79d2\uff09\n    $redis-&gt;setex($cacheKey, 300, $result);\n}\n<\/pre>\n\n\n\n<p><strong>4. \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u554f\u984c<\/strong><\/p>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201cToo many connections\u201d \u30a8\u30e9\u30fc<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u64cd\u4f5c\u304c\u9045\u3044<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u30d7\u30fc\u30eb\u306e\u5c0e\u5165<\/li>\n\n\n\n<li>\u6301\u7d9a\u7684\u63a5\u7d9a\u306e\u4f7f\u7528\uff08\u305f\u3060\u3057\u8a2d\u5b9a\u306b\u6ce8\u610f\uff09<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u63a5\u7d9a\u3092\u30af\u30ed\u30fc\u30ba\u3059\u308b<\/li>\n\n\n\n<li>\u30af\u30a8\u30ea\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6d3b\u7528<\/li>\n<\/ul>\n\n\n\n<p><strong>5. \u30d5\u30a1\u30a4\u30ebI\/O\u901f\u5ea6\u306e\u554f\u984c<\/strong><\/p>\n\n\n\n<p><strong>\u75c7\u72b6<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c7\u30a3\u30b9\u30afI\/O\u304c\u9ad8\u3044<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u3084\u30d5\u30a1\u30a4\u30eb\u30ad\u30e3\u30c3\u30b7\u30e5\u64cd\u4f5c\u304c\u9045\u3044<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RAM\u30c7\u30a3\u30b9\u30af\uff08tmpfs\uff09\u306e\u5229\u7528: <code># \u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092tmpfs\u306b\u30de\u30a6\u30f3\u30c8 mount -t tmpfs -o size=1G,mode=1777 tmpfs \/var\/lib\/php\/sessions<\/code><\/li>\n\n\n\n<li>SSD\u30b9\u30c8\u30ec\u30fc\u30b8\u3078\u306e\u79fb\u884c<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u306e\u524a\u6e1b<\/li>\n\n\n\n<li>Redis\/Memcached\u306a\u3069\u3092\u4f7f\u7528\u3057\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u4fdd\u5b58<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-118\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6e2c\u5b9a\u30c4\u30fc\u30eb<\/h4>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u306e\u52b9\u679c\u3092\u6e2c\u5b9a\u3059\u308b\u305f\u3081\u306e\u30c4\u30fc\u30eb\uff1a<\/p>\n\n\n\n<p><strong>1. Apache Bench (ab)<\/strong><\/p>\n\n\n\n<p>\u7c21\u6613\u7684\u306a\u8ca0\u8377\u30c6\u30b9\u30c8\u306b\u5f79\u7acb\u3061\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># 100\u4eba\u306e\u540c\u6642\u63a5\u7d9a\u30671000\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u4fe1\nab -n 1000 -c 100 http:\/\/example.com\/\n<\/pre>\n\n\n\n<p><strong>2. Siege<\/strong><\/p>\n\n\n\n<p>\u3088\u308a\u9ad8\u5ea6\u306a\u8ca0\u8377\u30c6\u30b9\u30c8\u3068\u8a73\u7d30\u306a\u7d71\u8a08\u60c5\u5831\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># 30\u79d2\u9593\u300150\u4eba\u306e\u540c\u6642\u30e6\u30fc\u30b6\u30fc\u3067\u30c6\u30b9\u30c8\nsiege -c 50 -t 30S http:\/\/example.com\/\n<\/pre>\n\n\n\n<p><strong>3. WebPageTest \/ Lighthouse<\/strong><\/p>\n\n\n\n<p>\u30a8\u30f3\u30c9\u30e6\u30fc\u30b6\u30fc\u8996\u70b9\u3067\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6e2c\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Lighthouse CLI\u306e\u4f7f\u7528\u4f8b\nlighthouse http:\/\/example.com\/ --output json --output-path .\/report.json\n<\/pre>\n\n\n\n<p><strong>4. XHProf \/ Tideways<\/strong><\/p>\n\n\n\n<p>PHP\u30b3\u30fc\u30c9\u306e\u8a73\u7d30\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\u30ea\u30f3\u30b0\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; Tideways\u306e\u57fa\u672c\u8a2d\u5b9a\nphp_admin_value[tideways.api_key] = \"your_api_key\"\nphp_admin_value[tideways.sample_rate] = 25\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-119\">\u7d99\u7d9a\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u6027<\/h4>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306f\u4e00\u5ea6\u3060\u3051\u3067\u306a\u304f\u3001\u7d99\u7d9a\u7684\u306a\u30d7\u30ed\u30bb\u30b9\u3067\u3059\u3002\u9577\u671f\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3092\u901a\u3058\u3066\u3001\u5f90\u3005\u306b\u767a\u751f\u3059\u308b\u554f\u984c\u3084\u5b63\u7bc0\u7684\u306a\u5909\u52d5\u3092\u7279\u5b9a\u3057\u3001\u5bfe\u5fdc\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u6bce\u65e5\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u7d71\u8a08\u306e\u53ce\u96c6\uff08\u30af\u30fc\u30ed\u30f3\u30b8\u30e7\u30d6\u4f8b\uff09\n0 0 * * * php \/path\/to\/collect_performance_metrics.php &gt;&gt; \/var\/log\/perf_metrics.log\n<\/pre>\n\n\n\n<p>\u7d99\u7d9a\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3092\u901a\u3058\u3066\u3001\u65b0\u3057\u3044\u30b3\u30fc\u30c9\u306e\u30c7\u30d7\u30ed\u30a4\u304c\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u4e0e\u3048\u308b\u5f71\u97ff\u3092\u628a\u63e1\u3057\u3001\u6027\u80fd\u52a3\u5316\u306e\u65e9\u671f\u767a\u898b\u306b\u3064\u306a\u3052\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u65b9\u6cd5\u3092\u9069\u5207\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001PHP-FPM\u306e\u5b89\u5b9a\u904b\u7528\u3068\u6700\u9069\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u7dad\u6301\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002\u6b21\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-120\">PHP-FPM\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56 \u2013 \u5b89\u5168\u306a\u904b\u7528\u306e\u305f\u3081\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<p>PHP-FPM\u3092\u672c\u756a\u74b0\u5883\u3067\u904b\u7528\u3059\u308b\u969b\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u306f\u975e\u5e38\u306b\u91cd\u8981\u306a\u8981\u7d20\u3067\u3059\u3002\u9069\u5207\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3092\u8b1b\u3058\u306a\u3044\u3068\u3001\u30b5\u30fc\u30d0\u30fc\u5168\u4f53\u304c\u5371\u967a\u306b\u3055\u3089\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u672c\u7ae0\u3067\u306f\u3001PHP-FPM\u3092\u5b89\u5168\u306b\u904b\u7528\u3059\u308b\u305f\u3081\u306e\u5b9f\u8df5\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3092\u8a73\u3057\u304f\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-121\">\u6a29\u9650\u8a2d\u5b9a\u3068\u30e6\u30fc\u30b6\u30fc\u5206\u96e2\u306b\u3088\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316<\/h3>\n\n\n\n<p>\u6700\u5c0f\u6a29\u9650\u306e\u539f\u5247\u306b\u57fa\u3065\u304d\u3001PHP-FPM\u30d7\u30ed\u30bb\u30b9\u304c\u5fc5\u8981\u6700\u5c0f\u9650\u306e\u6a29\u9650\u306e\u307f\u3067\u5b9f\u884c\u3055\u308c\u308b\u3088\u3046\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-122\">\u5c02\u7528\u30e6\u30fc\u30b6\u30fc\u3068\u30b0\u30eb\u30fc\u30d7\u306e\u4f5c\u6210<\/h4>\n\n\n\n<p>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u3059\u308b\u305f\u3081\u306e\u7b2c\u4e00\u6b69\u306f\u3001PHP-FPM\u30d7\u30ed\u30bb\u30b9\u5c02\u7528\u306e\u30b7\u30b9\u30c6\u30e0\u30e6\u30fc\u30b6\u30fc\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># PHP-FPM\u5c02\u7528\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210\nsudo useradd -r -s \/bin\/false -d \/var\/www php-user\n<\/pre>\n\n\n\n<p>\u3053\u306e\u30b3\u30de\u30f3\u30c9\u3067\u4f5c\u6210\u3055\u308c\u308b\u30e6\u30fc\u30b6\u30fc\u306b\u306f\u4ee5\u4e0b\u306e\u7279\u5fb4\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>-r<\/code>: \u30b7\u30b9\u30c6\u30e0\u30a2\u30ab\u30a6\u30f3\u30c8\uff08\u4f4e\u3044UID\uff09\u3068\u3057\u3066\u4f5c\u6210<\/li>\n\n\n\n<li><code>-s \/bin\/false<\/code>: \u30ed\u30b0\u30a4\u30f3\u30b7\u30a7\u30eb\u3092\u7121\u52b9\u5316\u3057\u3001\u76f4\u63a5\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u3059\u308b<\/li>\n\n\n\n<li><code>-d \/var\/www<\/code>: \u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u8a2d\u5b9a<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-123\">PHP-FPM\u30d7\u30fc\u30eb\u8a2d\u5b9a\u3067\u306e\u6a29\u9650\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u4f5c\u6210\u3057\u305f\u30e6\u30fc\u30b6\u30fc\u3092PHP-FPM\u30d7\u30fc\u30eb\u306e\u8a2d\u5b9a\u306b\u9069\u7528\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \/etc\/php\/8.1\/fpm\/pool.d\/www.conf<\/pre>\n\n\n[www]\n\n\n\n<p>; \u30d7\u30ed\u30bb\u30b9\u3092\u5b9f\u884c\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u3068\u30b0\u30eb\u30fc\u30d7 user = php-user group = php-user ; UNIX\u30bd\u30b1\u30c3\u30c8\u306e\u8a2d\u5b9a listen = \/run\/php\/php8.1-fpm.sock listen.owner = www-data ; Web\u30b5\u30fc\u30d0\u30fc\u30e6\u30fc\u30b6\u30fc listen.group = www-data ; Web\u30b5\u30fc\u30d0\u30fc\u30b0\u30eb\u30fc\u30d7 listen.mode = 0660 ; \u6240\u6709\u8005\u3068\u30b0\u30eb\u30fc\u30d7\u306e\u307f\u8aad\u307f\u66f8\u304d\u53ef\u80fd<\/p>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>PHP-FPM\u30d7\u30ed\u30bb\u30b9\u306f\u5236\u9650\u3055\u308c\u305f\u6a29\u9650\u306e\u30e6\u30fc\u30b6\u30fc\uff08php-user\uff09\u3068\u3057\u3066\u5b9f\u884c<\/li>\n\n\n\n<li>Web\u30b5\u30fc\u30d0\u30fc\uff08www-data\uff09\u306f\u30bd\u30b1\u30c3\u30c8\u3092\u901a\u3058\u3066PHP-FPM\u3068\u901a\u4fe1\u53ef\u80fd<\/li>\n\n\n\n<li>\u4ed6\u306e\u30e6\u30fc\u30b6\u30fc\u306f\u30bd\u30b1\u30c3\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-124\">\u8907\u6570\u30b5\u30a4\u30c8\u74b0\u5883\u3067\u306e\u30e6\u30fc\u30b6\u30fc\u5206\u96e2<\/h4>\n\n\n\n<p>\u8907\u6570\u306e\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u3092\u540c\u4e00\u30b5\u30fc\u30d0\u30fc\u3067\u30db\u30b9\u30c6\u30a3\u30f3\u30b0\u3059\u308b\u5834\u5408\u3001\u30b5\u30a4\u30c8\u3054\u3068\u306b\u7570\u306a\u308b\u30e6\u30fc\u30b6\u30fc\u3068\u30d7\u30fc\u30eb\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30b5\u30a4\u30c8\u3054\u3068\u306b\u5c02\u7528\u30e6\u30fc\u30b6\u30fc\u3092\u4f5c\u6210\nsudo useradd -r -s \/bin\/false -d \/var\/www\/site1 site1-user\nsudo useradd -r -s \/bin\/false -d \/var\/www\/site2 site2-user\n<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \/etc\/php\/8.1\/fpm\/pool.d\/site1.conf<\/pre>\n\n\n[site1]\n\n\n\n<p>user = site1-user group = site1-user listen = \/run\/php\/php8.1-fpm-site1.sock listen.owner = www-data listen.group = www-data listen.mode = 0660 ; \/etc\/php\/8.1\/fpm\/pool.d\/site2.conf<\/p>\n\n\n[site2]\n\n\n\n<p>user = site2-user group = site2-user listen = \/run\/php\/php8.1-fpm-site2.sock listen.owner = www-data listen.group = www-data listen.mode = 0660<\/p>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306e\u4e3b\u306a\u30e1\u30ea\u30c3\u30c8\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u3042\u308b\u30b5\u30a4\u30c8\u304c\u4fb5\u5bb3\u3055\u308c\u3066\u3082\u3001\u4ed6\u306e\u30b5\u30a4\u30c8\u3078\u306e\u5f71\u97ff\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b<\/li>\n\n\n\n<li>\u30b5\u30a4\u30c8\u3054\u3068\u306b\u7570\u306a\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30dd\u30ea\u30b7\u30fc\u3092\u9069\u7528\u53ef\u80fd<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u91cf\u3092\u30b5\u30a4\u30c8\u3054\u3068\u306b\u5206\u96e2<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-125\">\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u6a29\u9650\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u306b\u9069\u5207\u306a\u6a29\u9650\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3082\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n<div id=\"id-fcab8e64-71fb-4356-9b23-885c58b0cedf\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d5\u30a1\u30a4\u30eb\u7a2e\u5225<\/th><th>\u63a8\u5968\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3<\/th><th>\u8aac\u660e<\/th><\/tr><\/thead><tbody><tr><td>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea<\/td><td>755 (drwxr-xr-x)<\/td><td>\u6240\u6709\u8005\u306f\u8aad\u307f\u66f8\u304d\u5b9f\u884c\u53ef\u3001\u30b0\u30eb\u30fc\u30d7\u3068\u305d\u306e\u4ed6\u306f\u8aad\u307f\u5b9f\u884c\u306e\u307f<\/td><\/tr><tr><td>\u901a\u5e38\u30d5\u30a1\u30a4\u30eb<\/td><td>644 (rw-r\u2013r\u2013)<\/td><td>\u6240\u6709\u8005\u306f\u8aad\u307f\u66f8\u304d\u53ef\u3001\u30b0\u30eb\u30fc\u30d7\u3068\u305d\u306e\u4ed6\u306f\u8aad\u307f\u306e\u307f<\/td><\/tr><tr><td>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb<\/td><td>640 (rw-r\u2014\u2013)<\/td><td>\u6240\u6709\u8005\u306f\u8aad\u307f\u66f8\u304d\u53ef\u3001\u30b0\u30eb\u30fc\u30d7\u306f\u8aad\u307f\u306e\u307f\u3001\u305d\u306e\u4ed6\u306f\u30a2\u30af\u30bb\u30b9\u4e0d\u53ef<\/td><\/tr><tr><td>\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb<\/td><td>750 (rwxr-x\u2014)<\/td><td>\u6240\u6709\u8005\u306f\u8aad\u307f\u66f8\u304d\u5b9f\u884c\u53ef\u3001\u30b0\u30eb\u30fc\u30d7\u306f\u8aad\u307f\u5b9f\u884c\u306e\u307f\u3001\u305d\u306e\u4ed6\u306f\u30a2\u30af\u30bb\u30b9\u4e0d\u53ef<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d5\u30a1\u30a4\u30eb\u6240\u6709\u6a29\u3068\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u3092\u8a2d\u5b9a\u3059\u308b\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u306e\u8a2d\u5b9a\nsudo mkdir -p \/var\/www\/site1\nsudo chown -R site1-user:site1-user \/var\/www\/site1\nsudo find \/var\/www\/site1 -type d -exec chmod 755 {} \\;\nsudo find \/var\/www\/site1 -type f -exec chmod 644 {} \\;\n\n# \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u8a2d\u5b9a\uff08\u66f8\u304d\u8fbc\u307f\u6a29\u9650\u5fc5\u8981\uff09\nsudo mkdir -p \/var\/www\/site1\/uploads\nsudo chown site1-user:www-data \/var\/www\/site1\/uploads\nsudo chmod 770 \/var\/www\/site1\/uploads\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-126\">\u74b0\u5883\u5909\u6570\u3068\u30aa\u30fc\u30d7\u30f3\u30bb\u30c3\u30c6\u306b\u3088\u308b\u6a5f\u5bc6\u60c5\u5831\u306e\u7ba1\u7406<\/h3>\n\n\n\n<p>\u6a5f\u5bc6\u60c5\u5831\uff08\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a8d\u8a3c\u60c5\u5831\u306a\u3069\uff09\u3092\u30b3\u30fc\u30c9\u306b\u76f4\u63a5\u8a18\u8ff0\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u74b0\u5883\u5909\u6570\u3092\u4f7f\u7528\u3057\u3066\u5b89\u5168\u306b\u7ba1\u7406\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-127\">PHP-FPM\u30d7\u30fc\u30eb\u8a2d\u5b9a\u3067\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u30d7\u30fc\u30eb\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u74b0\u5883\u5909\u6570\u3092\u5b9a\u7fa9\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \/etc\/php\/8.1\/fpm\/pool.d\/site1.conf<\/pre>\n\n\n[site1]\n\n\n\n<p>user = site1-user group = site1-user ; \u74b0\u5883\u5909\u6570\u306e\u5b9a\u7fa9 env[DB_HOST] = localhost env[DB_NAME] = site1db env[DB_USER] = site1dbuser env[DB_PASS] = \u201csecure_password\u201d ; \u89aa\u30d7\u30ed\u30bb\u30b9\u304b\u3089\u306e\u74b0\u5883\u5909\u6570\u3092\u7d99\u627f\u3057\u306a\u3044 clear_env = yes<\/p>\n\n\n\n<p><code>clear_env = yes<\/code> \u306e\u8a2d\u5b9a\u306f\u91cd\u8981\u3067\u3001\u3053\u308c\u306b\u3088\u308aPHP\u30d7\u30ed\u30bb\u30b9\u306f\u89aa\u30d7\u30ed\u30bb\u30b9\u304b\u3089\u74b0\u5883\u5909\u6570\u3092\u7d99\u627f\u305b\u305a\u3001\u660e\u793a\u7684\u306b\u8a2d\u5b9a\u3055\u308c\u305f\u5909\u6570\u306e\u307f\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30b7\u30b9\u30c6\u30e0\u74b0\u5883\u5909\u6570\u304b\u3089\u306e\u610f\u56f3\u3057\u306a\u3044\u60c5\u5831\u6f0f\u6d29\u3092\u9632\u6b62\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>PHP\u30b3\u30fc\u30c9\u3067\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u74b0\u5883\u5909\u6570\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n$dbHost = getenv('DB_HOST');\n$dbName = getenv('DB_NAME');\n$dbUser = getenv('DB_USER');\n$dbPass = getenv('DB_PASS');\n\n$db = new PDO(\"mysql:host=$dbHost;dbname=$dbName\", $dbUser, $dbPass);\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-128\">Web\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u306e\u74b0\u5883\u5909\u6570\u8a2d\u5b9a<\/h4>\n\n\n\n<p>Web\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3082\u53ef\u80fd\u3067\u3059\uff1a<\/p>\n\n\n\n<p><strong>Nginx\u306e\u5834\u5408\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Nginx\u306e\u8a2d\u5b9a\nlocation ~ \\.php$ {\n    include fastcgi_params;\n    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    fastcgi_pass unix:\/run\/php\/php8.1-fpm-site1.sock;\n    \n    # \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\n    fastcgi_param DB_HOST localhost;\n    fastcgi_param DB_NAME site1db;\n    fastcgi_param DB_USER site1dbuser;\n    fastcgi_param DB_PASS \"secure_password\";\n}\n<\/pre>\n\n\n\n<p><strong>Apache\u306e\u5834\u5408\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;VirtualHost *:80&gt;\n    ServerName site1.example.com\n    DocumentRoot \/var\/www\/site1\n    \n    &lt;FilesMatch \\.php$&gt;\n        SetHandler \"proxy:fcgi:\/\/unix:\/run\/php\/php8.1-fpm-site1.sock\"\n        \n        # \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\n        SetEnv DB_HOST localhost\n        SetEnv DB_NAME site1db\n        SetEnv DB_USER site1dbuser\n        SetEnv DB_PASS \"secure_password\"\n    &lt;\/FilesMatch&gt;\n&lt;\/VirtualHost&gt;\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-129\">.env\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u305f\u74b0\u5883\u5909\u6570\u7ba1\u7406<\/h4>\n\n\n\n<p>\u591a\u304f\u306ePHP\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u63a1\u7528\u3055\u308c\u3066\u3044\u308b\u65b9\u6cd5\u306f\u3001<code>.env<\/code>\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u305f\u74b0\u5883\u5909\u6570\u7ba1\u7406\u3067\u3059\u3002PHP DotEnv\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u5b9f\u88c5\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Composer\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\ncomposer require vlucas\/phpdotenv\n<\/pre>\n\n\n\n<p><code>.env<\/code>\u30d5\u30a1\u30a4\u30eb\u306e\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">DB_HOST=localhost\nDB_NAME=site1db\nDB_USER=site1dbuser\nDB_PASS=secure_password\n<\/pre>\n\n\n\n<p>PHP\u30b3\u30fc\u30c9\u3067\u306e\u5229\u7528\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\nrequire_once __DIR__ . '\/vendor\/autoload.php';\n\n$dotenv = Dotenv\\Dotenv::createImmutable(__DIR__);\n$dotenv-&gt;load();\n\n$dbHost = $_ENV['DB_HOST'];\n$dbName = $_ENV['DB_NAME'];\n$dbUser = $_ENV['DB_USER'];\n$dbPass = $_ENV['DB_PASS'];\n<\/pre>\n\n\n\n<p><code>.env<\/code>\u30d5\u30a1\u30a4\u30eb\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u78ba\u4fdd\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Nginx\u3067.env\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u62d2\u5426\nlocation ~ \\.env$ {\n    deny all;\n}\n<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Apache\u3067.env\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u62d2\u5426\n&lt;FilesMatch \"^\\.env\"&gt;\n    Order allow,deny\n    Deny from all\n&lt;\/FilesMatch&gt;\n<\/pre>\n\n\n\n<p>\u307e\u305f\u3001<code>.env<\/code>\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u3092\u5236\u9650\u3059\u308b\u3053\u3068\u3082\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># .env\u30d5\u30a1\u30a4\u30eb\u306e\u6a29\u9650\u3092\u5236\u9650\nchmod 640 \/var\/www\/site1\/.env\nchown site1-user:site1-user \/var\/www\/site1\/.env\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-130\">open_basedir\u5236\u9650\u306b\u3088\u308b\u30d5\u30a1\u30a4\u30eb\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/h4>\n\n\n\n<p><code>open_basedir<\/code>\u306fPHP\u304c\u8aad\u307f\u66f8\u304d\u3067\u304d\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u5236\u9650\u3059\u308b\u5f37\u529b\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u6a5f\u80fd\u3067\u3059\u3002PHP-FPM\u30d7\u30fc\u30eb\u3054\u3068\u306b\u8a2d\u5b9a\u53ef\u80fd\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \/etc\/php\/8.1\/fpm\/pool.d\/site1.conf<\/pre>\n\n\n[site1]\n\n\n\n<p>user = site1-user group = site1-user ; open_basedir\u5236\u9650 php_admin_value[open_basedir] = \/var\/www\/site1\/:\/tmp\/:\/var\/lib\/php\/sessions\/<\/p>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001PHP\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u6307\u5b9a\u3055\u308c\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff08\u3068\u305d\u306e\u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff09\u306b\u306e\u307f\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8106\u5f31\u6027\u304c\u60aa\u7528\u3055\u308c\u3066\u3082\u3001\u30b5\u30fc\u30d0\u30fc\u4e0a\u306e\u4ed6\u306e\u30d5\u30a1\u30a4\u30eb\u306b\u30a2\u30af\u30bb\u30b9\u3055\u308c\u308b\u30ea\u30b9\u30af\u3092\u5927\u5e45\u306b\u6e1b\u3089\u305b\u307e\u3059\u3002<\/p>\n\n\n\n<p><code>open_basedir<\/code>\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d1\u30b9\u3092\u30b3\u30ed\u30f3\uff08:\uff09\u3067\u533a\u5207\u308b\uff08Windows\u3067\u306f\u30bb\u30df\u30b3\u30ed\u30f3\uff08;\uff09\uff09<\/li>\n\n\n\n<li>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30d1\u30b9\u306e\u672b\u5c3e\u306b\u30b9\u30e9\u30c3\u30b7\u30e5\uff08\/\uff09\u3092\u4ed8\u3051\u308b<\/li>\n\n\n\n<li>\u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u7528\u306b<code>\/tmp\/<\/code>\u3092\u542b\u3081\u308b<\/li>\n\n\n\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u7528\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u542b\u3081\u308b<\/li>\n\n\n\n<li>\u6700\u5c0f\u9650\u5fc5\u8981\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u307f\u3092\u6307\u5b9a\u3059\u308b<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-131\">chroot\u6a5f\u80fd\u306e\u6d3b\u7528\u3068\u305d\u306e\u52b9\u679c<\/h3>\n\n\n\n<p>PHP-FPM\u306echroot\u6a5f\u80fd\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u306e\u9694\u96e2\u3092\u3055\u3089\u306b\u5f37\u5316\u3059\u308b\u305f\u3081\u306e\u9ad8\u5ea6\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-132\">chroot\u306e\u57fa\u672c\u6982\u5ff5<\/h4>\n\n\n\n<p>chroot\u3068\u306f\u300cChange Root\u300d\u306e\u7565\u3067\u3001\u30d7\u30ed\u30bb\u30b9\u304b\u3089\u898b\u3048\u308b\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\uff08\/\uff09\u3092\u5909\u66f4\u3059\u308b\u6a5f\u80fd\u3067\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u30d7\u30ed\u30bb\u30b9\u306f\u6307\u5b9a\u3055\u308c\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5916\u90e8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u7269\u7406\u7684\u306b\u4e0d\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>open_basedir\u304c\u300cPHP\u30ec\u30d9\u30eb\u300d\u306e\u5236\u9650\u3067\u3042\u308b\u306e\u306b\u5bfe\u3057\u3001chroot\u306f\u300cOS\u30ec\u30d9\u30eb\u300d\u306e\u5236\u9650\u3067\u3042\u308a\u3001\u3088\u308a\u5f37\u529b\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-133\">PHP-FPM\u3067\u306echroot\u8a2d\u5b9a<\/h4>\n\n\n\n<p>PHP-FPM\u30d7\u30fc\u30eb\u8a2d\u5b9a\u3067chroot\u6a5f\u80fd\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \/etc\/php\/8.1\/fpm\/pool.d\/site1.conf<\/pre>\n\n\n[site1]\n\n\n\n<p>user = site1-user group = site1-user ; chroot\u306e\u8a2d\u5b9a chroot = \/var\/www\/site1 chdir = \/ ; chroot\u306e\u4e2d\u3067\u306e\u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea ; chroot\u306e\u4e2d\u306e\u30d1\u30b9\u306a\u306e\u3067\u3001\u5b9f\u969b\u306e\u30d1\u30b9\u306f \/var\/www\/site1\/ \u306b\u306a\u308b<\/p>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001PHP-FPM\u306e\u30d7\u30ed\u30bb\u30b9\u306f <code>\/var\/www\/site1<\/code> \u3092\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3068\u3057\u3066\u8a8d\u8b58\u3057\u3001\u305d\u308c\u3088\u308a\u4e0a\u4f4d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-134\">chroot\u74b0\u5883\u306e\u6e96\u5099<\/h4>\n\n\n\n<p>chroot\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u3001PHP\u5b9f\u884c\u306b\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u3092chroot\u74b0\u5883\u5185\u306b\u7528\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># chroot\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u57fa\u672c\u69cb\u9020\u3092\u4f5c\u6210\nsudo mkdir -p \/var\/www\/site1\/{etc,lib,lib64,dev,tmp,usr\/lib}\n\n# \u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\nsudo cp \/etc\/{passwd,group} \/var\/www\/site1\/etc\/\nsudo cp -a \/lib\/ \/var\/www\/site1\/\nsudo cp -a \/lib64\/ \/var\/www\/site1\/\n\n# \u5fc5\u8981\u306a\u30c7\u30d0\u30a4\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\nsudo mknod -m 666 \/var\/www\/site1\/dev\/null c 1 3\nsudo mknod -m 444 \/var\/www\/site1\/dev\/urandom c 1 9\n\n# \u4e00\u6642\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u8a2d\u5b9a\nsudo chmod 1777 \/var\/www\/site1\/tmp\n<\/pre>\n\n\n\n<p>\u5b9f\u969b\u306b\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u4f7f\u7528\u3059\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3084\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u5fdc\u3058\u3066\u3001\u8ffd\u52a0\u306e\u30d5\u30a1\u30a4\u30eb\u3084\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u304c\u5fc5\u8981\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-135\">chroot\u306e\u5229\u70b9\u3068\u5236\u9650\u4e8b\u9805<\/h4>\n\n\n\n<p><strong>\u5229\u70b9<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u306e\u5b8c\u5168\u306a\u9694\u96e2\u306b\u3088\u308b\u5f37\u529b\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3<\/li>\n\n\n\n<li>PHP\u30ec\u30d9\u30eb\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u6a5f\u80fd\u304c\u56de\u907f\u3055\u308c\u3066\u3082OS\u30ec\u30d9\u30eb\u3067\u4fdd\u8b77<\/li>\n\n\n\n<li>\u8907\u6570\u306e\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u9593\u3067\u306e\u5b8c\u5168\u306a\u5206\u96e2<\/li>\n<\/ul>\n\n\n\n<p><strong>\u5236\u9650\u4e8b\u9805<\/strong>\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8a2d\u5b9a\u304c\u8907\u96d1\u3067\u3001\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u7279\u5b9a\u304c\u96e3\u3057\u3044<\/li>\n\n\n\n<li>OS\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u6642\u306b\u8ffd\u52a0\u4f5c\u696d\u304c\u5fc5\u8981<\/li>\n\n\n\n<li>PHP\u306e\u62e1\u5f35\u6a5f\u80fd\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u3088\u3063\u3066\u306f\u52d5\u4f5c\u3057\u306a\u3044\u3082\u306e\u304c\u3042\u308b<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u63a5\u7d9a\u3084\u30bd\u30b1\u30c3\u30c8\u901a\u4fe1\u306f\u5236\u9650\u3055\u308c\u306a\u3044<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u306b\u306froot\u6a29\u9650\u304c\u5fc5\u8981<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-136\">chroot\u306e\u4ee3\u66ff\u307e\u305f\u306f\u88dc\u5b8c\u6280\u8853<\/h4>\n\n\n\n<p>chroot\u306e\u8907\u96d1\u3055\u3092\u907f\u3051\u305f\u3044\u5834\u5408\u306e\u4ee3\u66ff\u307e\u305f\u306f\u88dc\u5b8c\u6280\u8853\uff1a<\/p>\n\n\n\n<p><strong>1. Docker\u30b3\u30f3\u30c6\u30ca<\/strong> PHP-FPM\u3092Docker\u30b3\u30f3\u30c6\u30ca\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u7c21\u5358\u306b\u74b0\u5883\u3092\u9694\u96e2\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">FROM php:8.1-fpm\nCOPY . \/var\/www\/html\nWORKDIR \/var\/www\/html\n<\/pre>\n\n\n\n<p><strong>2. AppArmor\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb<\/strong> Ubuntu\u306a\u3069\u306e\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u306fAppArmor\u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30bb\u30b9\u306e\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u3092\u5236\u9650\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \/etc\/apparmor.d\/usr.sbin.php-fpm8.1\n\/usr\/sbin\/php-fpm8.1 {\n  # \u57fa\u672c\u30eb\u30fc\u30eb\n  #include &lt;abstractions\/base&gt;\n  #include &lt;abstractions\/php&gt;\n\n  # \u7279\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u8a31\u53ef\n  \/var\/www\/site1\/** r,\n  \/tmp\/** rw,\n  \/var\/lib\/php\/sessions\/** rw,\n\n  # \u305d\u306e\u4ed6\u306e\u5fc5\u8981\u306a\u30a2\u30af\u30bb\u30b9\n  \/etc\/php\/** r,\n  \/usr\/lib\/** rm,\n  \/var\/log\/php\/** w,\n}\n<\/pre>\n\n\n\n<p><strong>3. SELinux<\/strong> CentOS\/RHEL\u306a\u3069\u306e\u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3067\u306fSELinux\u3092\u4f7f\u7528\u3057\u3066\u30d7\u30ed\u30bb\u30b9\u306e\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u3092\u5236\u9650\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-137\">\u8ffd\u52a0\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56<\/h3>\n\n\n\n<p>PHP-FPM\u306e\u5b89\u5168\u306a\u904b\u7528\u306e\u305f\u3081\u306e\u8ffd\u52a0\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-138\">\u5371\u967a\u306a\u95a2\u6570\u306e\u7121\u52b9\u5316<\/h4>\n\n\n\n<p>\u6f5c\u5728\u7684\u306b\u5371\u967a\u306aPHP\u95a2\u6570\u3092\u7121\u52b9\u5316\u3059\u308b\u3053\u3068\u3067\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \/etc\/php\/8.1\/fpm\/pool.d\/site1.conf<\/pre>\n\n\n[site1]\n\n\n\n<p>; \u5371\u967a\u306a\u95a2\u6570\u306e\u7121\u52b9\u5316 php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source<\/p>\n\n\n\n<p>\u3053\u306e\u8a2d\u5b9a\u306b\u3088\u308a\u3001\u30b7\u30a7\u30eb\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u95a2\u6570\u306a\u3069\u304c\u4f7f\u7528\u3067\u304d\u306a\u304f\u306a\u308a\u3001\u30b3\u30de\u30f3\u30c9\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u653b\u6483\u306e\u30ea\u30b9\u30af\u3092\u8efd\u6e1b\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-139\">PHP\u60c5\u5831\u306e\u975e\u8868\u793a\u5316<\/h4>\n\n\n\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u3001PHP\u306fHTTP\u30ec\u30b9\u30dd\u30f3\u30b9\u30d8\u30c3\u30c0\u30fc\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u542b\u3081\u307e\u3059\u304c\u3001\u3053\u308c\u3092\u7121\u52b9\u5316\u3059\u308b\u3053\u3068\u3067\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; PHP\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u975e\u8868\u793a\nphp_admin_value[expose_php] = Off\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-140\">\u30ea\u30e2\u30fc\u30c8URL\u306e\u5236\u9650<\/h4>\n\n\n\n<p>\u30ea\u30e2\u30fc\u30c8URL\u304b\u3089\u306e\u30d5\u30a1\u30a4\u30eb\u64cd\u4f5c\u3084\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3092\u5236\u9650\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30ea\u30e2\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u5236\u9650\nphp_admin_value[allow_url_fopen] = Off\nphp_admin_value[allow_url_include] = Off\n<\/pre>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u30ea\u30e2\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\uff08RFI\uff09\u653b\u6483\u306e\u30ea\u30b9\u30af\u3092\u8efd\u6e1b\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-141\">\u30bb\u30c3\u30b7\u30e7\u30f3\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u5f37\u5316<\/h4>\n\n\n\n<p>\u30bb\u30c3\u30b7\u30e7\u30f3\u30af\u30c3\u30ad\u30fc\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u5f37\u5316\u3059\u308b\u8a2d\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30bb\u30c3\u30b7\u30e7\u30f3\u30af\u30c3\u30ad\u30fc\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\nphp_admin_value[session.cookie_secure] = On       ; HTTPS\u3067\u306e\u307f\u9001\u4fe1\nphp_admin_value[session.cookie_httponly] = On     ; JavaScript\u304b\u3089\u30a2\u30af\u30bb\u30b9\u4e0d\u53ef\nphp_admin_value[session.cookie_samesite] = Strict ; \u30af\u30ed\u30b9\u30b5\u30a4\u30c8\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u306e\u9001\u4fe1\u3092\u5236\u9650\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-142\">OPcache\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u5f37\u5316<\/h4>\n\n\n\n<p>OPcache\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u95a2\u9023\u8a2d\u5b9a\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; OPcache\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\nphp_admin_value[opcache.validate_permission] = On  ; \u30d5\u30a1\u30a4\u30eb\u6a29\u9650\u3092\u691c\u8a3c\nphp_admin_value[opcache.validate_root] = On       ; \u30b7\u30f3\u30dc\u30ea\u30c3\u30af\u30ea\u30f3\u30af\u306e\u691c\u8a3c\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-143\">\u9069\u5207\u306a\u30a8\u30e9\u30fc\u8868\u793a\u8a2d\u5b9a<\/h4>\n\n\n\n<p>\u672c\u756a\u74b0\u5883\u3067\u306f\u8a73\u7d30\u306a\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u672c\u756a\u74b0\u5883\u3067\u306e\u30a8\u30e9\u30fc\u8868\u793a\u8a2d\u5b9a\nphp_admin_value[display_errors] = Off\nphp_admin_value[display_startup_errors] = Off\nphp_admin_value[log_errors] = On\nphp_admin_value[error_log] = \/var\/log\/php\/site1-error.log\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-144\">\u5b9a\u671f\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u8a2d\u5b9a\u3068Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8106\u5f31\u6027\u3092\u5b9a\u671f\u7684\u306b\u76e3\u67fb\u3059\u308b\u3053\u3068\u3082\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\uff08WAF\uff09\u306e\u5c0e\u5165<\/li>\n\n\n\n<li>\u4fb5\u5165\u691c\u77e5\u30b7\u30b9\u30c6\u30e0\uff08IDS\/IPS\uff09\u306e\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b9\u30ad\u30e3\u30ca\u30fc\u306b\u3088\u308b\u5b9a\u671f\u7684\u306a\u8a3a\u65ad<\/li>\n\n\n\n<li>PHP-FPM\u3068PHP\u306e\u5b9a\u671f\u7684\u306a\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8<\/li>\n\n\n\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b3\u30fc\u30c9\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ec\u30d3\u30e5\u30fc<\/li>\n<\/ul>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u5bfe\u7b56\u3092\u9069\u5207\u306b\u5b9f\u65bd\u3059\u308b\u3053\u3068\u3067\u3001PHP-FPM\u3092\u5b89\u5168\u306b\u904b\u7528\u3057\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ea\u30b9\u30af\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u6b21\u7ae0\u3067\u306f\u3001\u5b9f\u969b\u306e\u5c0e\u5165\u4e8b\u4f8b\u3092\u901a\u3058\u3066PHP-FPM\u306e\u6d3b\u7528\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-145\">PHP-FPM\u6d3b\u7528\u306e\u4f8b \u2013 \u5f53\u793e\u3067\u306e\u5c0e\u5165\u4e8b\u4f8b<\/h2>\n\n\n\n<p>\u3053\u308c\u307e\u3067\u306e\u7ae0\u3067\u3001PHP-FPM\u306e\u57fa\u672c\u6982\u5ff5\u304b\u3089\u8a2d\u5b9a\u3001\u6700\u9069\u5316\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u307e\u3067\u5e45\u5e83\u304f\u89e3\u8aac\u3057\u3066\u304d\u307e\u3057\u305f\u3002\u672c\u7ae0\u3067\u306f\u3001\u682a\u5f0f\u4f1a\u793eDexall\u304c\u5b9f\u969b\u306b\u624b\u304c\u3051\u305fPHP-FPM\u5c0e\u5165\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e8b\u4f8b\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u5b9f\u4f8b\u3092\u901a\u3058\u3066\u3001PHP-FPM\u304c\u5b9f\u969b\u306e\u30d3\u30b8\u30cd\u30b9\u74b0\u5883\u3067\u3069\u306e\u3088\u3046\u306b\u4fa1\u5024\u3092\u751f\u307f\u51fa\u3059\u304b\u3092\u5177\u4f53\u7684\u306b\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-146\">\u5927\u898f\u6a21EC\u30b5\u30a4\u30c8\u3067\u306ePHP-FPM\u5c0e\u5165\u52b9\u679c<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-147\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u80cc\u666f<\/h4>\n\n\n\n<p>\u5927\u624b\u30a2\u30d1\u30ec\u30eb\u30e1\u30fc\u30ab\u30fc\u304c\u904b\u55b6\u3059\u308b\u6708\u9593\u8a2a\u554f\u8005\u6570\u7d04500\u4e07\u4eba\u3001\u5546\u54c1\u657010\u4e07\u70b9\u4ee5\u4e0a\u306e\u5927\u898f\u6a21EC\u30b5\u30a4\u30c8\u3067\u306e\u4e8b\u4f8b\u3067\u3059\u3002\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u8ab2\u984c\u3092\u62b1\u3048\u3066\u3044\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u9ad8\u8ca0\u8377\u6642\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u4f4e\u4e0b<\/strong>: \u7279\u306b\u30bb\u30fc\u30eb\u30b9\u6642\u306b\u306f\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0\u304c5\u79d2\u4ee5\u4e0a\u306b\u60aa\u5316<\/li>\n\n\n\n<li><strong>\u30b5\u30fc\u30d0\u30fc\u30ea\u30bd\u30fc\u30b9\u306e\u975e\u52b9\u7387\u306a\u4f7f\u7528<\/strong>: mod_php\u3092\u4f7f\u7528\u3057\u3066\u3044\u305f\u305f\u3081\u3001Apache\u30d7\u30ed\u30bb\u30b9\u304c\u80a5\u5927\u5316<\/li>\n\n\n\n<li><strong>\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u306e\u96e3\u3057\u3055<\/strong>: \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u5897\u52a0\u306b\u5bfe\u5fdc\u3059\u308b\u305f\u3081\u306b\u30b5\u30fc\u30d0\u30fc\u53f0\u6570\u3092\u5897\u3084\u3059\u3068\u30b3\u30b9\u30c8\u304c\u5927\u5e45\u306b\u4e0a\u6607<\/li>\n\n\n\n<li><strong>\u5b89\u5b9a\u6027\u306e\u554f\u984c<\/strong>: \u8ca0\u8377\u304c\u9ad8\u3044\u6642\u9593\u5e2f\u306b\u983b\u7e41\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f<\/li>\n<\/ul>\n\n\n\n<p>\u5f93\u6765\u306e\u69cb\u6210\u306fApache + mod_php\u3068\u3044\u3046\u30af\u30e9\u30b7\u30c3\u30af\u306a\u7d44\u307f\u5408\u308f\u305b\u3067\u3057\u305f\u3002\u30b5\u30a4\u30c8\u306e\u898f\u6a21\u304c\u62e1\u5927\u3059\u308b\u306b\u3064\u308c\u3001\u3053\u306e\u69cb\u6210\u3067\u306f\u30ea\u30bd\u30fc\u30b9\u306e\u4f7f\u7528\u52b9\u7387\u304c\u60aa\u304f\u3001\u6700\u7d42\u7684\u306b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u5b89\u5b9a\u6027\u306e\u554f\u984c\u306b\u3064\u306a\u304c\u3063\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-148\">\u5c0e\u5165\u3057\u305f\u89e3\u6c7a\u7b56<\/h4>\n\n\n\n<p>\u5f53\u793e\u3067\u306f\u3001\u4ee5\u4e0b\u306e\u65bd\u7b56\u3092\u5b9f\u65bd\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Web\u30b5\u30fc\u30d0\u30fc\u306e\u5909\u66f4<\/strong>: Apache + mod_php\u304b\u3089Nginx + PHP-FPM\u3078\u306e\u79fb\u884c<\/li>\n\n\n\n<li><strong>PHP-FPM\u30d7\u30fc\u30eb\u306e\u6700\u9069\u5316<\/strong>: <code>; \u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u5411\u3051\u30d7\u30fc\u30eb<\/code><\/li>\n<\/ol>\n\n\n[frontend]\n\n\n\n<p>user = www-data group = www-data listen = \/run\/php\/php-fpm-frontend.sock pm = dynamic pm.max_children = 80 pm.start_servers = 20 pm.min_spare_servers = 10 pm.max_spare_servers = 30 pm.max_requests = 500 ; \u7ba1\u7406\u753b\u9762\u5411\u3051\u30d7\u30fc\u30eb<\/p>\n\n\n[admin]\n\n\n\n<p>user = admin-user group = admin-user listen = \/run\/php\/php-fpm-admin.sock pm = dynamic pm.max_children = 20 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 10 ; API\u5411\u3051\u30d7\u30fc\u30eb<\/p>\n\n\n[api]\n\n\n\n<p>user = api-user group = api-user listen = \/run\/php\/php-fpm-api.sock pm = dynamic pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20<\/p>\n\n\n\n<p><strong>\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u306e\u5f37\u5316<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OPcache\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>Redis\u3092\u4f7f\u7528\u3057\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u5c0e\u5165<\/li>\n\n\n\n<li>Nginx\u306e\u30de\u30a4\u30af\u30ed\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u8a2d\u5b9a<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u5f37\u5316<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u306e\u6709\u52b9\u5316\npm.status_path = \/status\n<\/pre>\n\n\n\n<p>Prometheus\u3068grafana\u3092\u4f7f\u7528\u3057\u305f\u76e3\u8996\u30b7\u30b9\u30c6\u30e0\u3092\u5c0e\u5165\u3057\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u53ef\u8996\u5316<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-149\">\u5c0e\u5165\u7d50\u679c\u3068\u52b9\u679c<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u5c0e\u5165\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u6539\u5584\u304c\u5b9f\u73fe\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n<div id=\"id-0781e2b6-2ad2-45a8-8cdd-568af26d8b0e\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6307\u6a19<\/th><th>\u5c0e\u5165\u524d<\/th><th>\u5c0e\u5165\u5f8c<\/th><th>\u6539\u5584\u7387<\/th><\/tr><\/thead><tbody><tr><td>\u5e73\u5747\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0<\/td><td>2.8\u79d2<\/td><td>0.9\u79d2<\/td><td>68%\u6539\u5584<\/td><\/tr><tr><td>\u30d4\u30fc\u30af\u6642\u30a8\u30e9\u30fc\u7387<\/td><td>10%<\/td><td>0.5%\u672a\u6e80<\/td><td>95%\u6539\u5584<\/td><\/tr><tr><td>\u30b5\u30fc\u30d0\u30fc\u3042\u305f\u308a\u306e\u540c\u6642\u63a5\u7d9a\u51e6\u7406\u80fd\u529b<\/td><td>200\u4ef6<\/td><td>500\u4ef6<\/td><td>150%\u5411\u4e0a<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/td><td>100%<\/td><td>55%<\/td><td>45%\u524a\u6e1b<\/td><\/tr><tr><td>\u5fc5\u8981\u30b5\u30fc\u30d0\u30fc\u53f0\u6570<\/td><td>10\u53f0<\/td><td>6\u53f0<\/td><td>40%\u524a\u6e1b<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u308c\u3089\u306e\u6539\u5584\u306b\u3088\u308a\u3001\u5e74\u9593\u306e\u30a4\u30f3\u30d5\u30e9\u30b3\u30b9\u30c8\u304c\u7d0430%\u524a\u6e1b\u3055\u308c\u305f\u3060\u3051\u3067\u306a\u304f\u3001\u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\u3082\u5927\u5e45\u306b\u5411\u4e0a\u3057\u307e\u3057\u305f\u3002\u7279\u306b\u6ce8\u76ee\u3059\u3079\u304d\u306f\u3001\u7e41\u5fd9\u671f\u306e\u30bb\u30fc\u30eb\u6642\u306b\u3082\u5b89\u5b9a\u3057\u305f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u7dad\u6301\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u305f\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-150\">\u63a1\u7528\u3057\u305f\u8a2d\u8a08\u3068\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/h4>\n\n\n\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u7279\u306b\u52b9\u679c\u7684\u3060\u3063\u305f\u8a2d\u8a08\u3068\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7528\u9014\u5225\u306e\u30d7\u30fc\u30eb\u5206\u96e2<\/strong>\uff1a\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3001\u7ba1\u7406\u753b\u9762\u3001API\u3067\u30d7\u30fc\u30eb\u3092\u5206\u96e2\u3057\u305f\u3053\u3068\u3067\u3001\u5404\u6a5f\u80fd\u306e\u91cd\u8981\u5ea6\u306b\u5fdc\u3058\u305f\u30ea\u30bd\u30fc\u30b9\u914d\u5206\u304c\u53ef\u80fd\u306b<\/li>\n\n\n\n<li>\u4e00\u90e8\u306e\u30d7\u30fc\u30eb\u3067\u554f\u984c\u304c\u767a\u751f\u3057\u3066\u3082\u4ed6\u3078\u306e\u5f71\u97ff\u3092\u6700\u5c0f\u9650\u306b\u6291\u5236<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>\u9759\u7684\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u52b9\u7387\u7684\u306a\u914d\u4fe1<\/strong>\uff1a <code># \u9759\u7684\u30d5\u30a1\u30a4\u30eb\u306fNginx\u3067\u76f4\u63a5\u51e6\u7406 location ~* \\.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; access_log off; }<\/code><\/li>\n\n\n\n<li><strong>FastCGI\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6d3b\u7528<\/strong>\uff1a <code># Nginx\u3067\u306e\u30de\u30a4\u30af\u30ed\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a fastcgi_cache_path \/var\/cache\/nginx levels=1:2 keys_zone=PHPCACHE:100m inactive=60m; set $skip_cache 0; # \u30ab\u30fc\u30c8\u30fb\u30e6\u30fc\u30b6\u30fc\u30ed\u30b0\u30a4\u30f3\u6642\u306f\u30ad\u30e3\u30c3\u30b7\u30e5\u3092\u30b9\u30ad\u30c3\u30d7 if ($cookie_user_logged_in) { set $skip_cache 1; } if ($request_uri ~* \"\/cart\/|\/checkout\/\") { set $skip_cache 1; } location ~ \\.php$ { # PHP-FPM\u3078\u306e\u30d1\u30b9\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a fastcgi_pass unix:\/run\/php\/php-fpm-frontend.sock; # \u305d\u306e\u4ed6\u306eFastCGI\u8a2d\u5b9a... fastcgi_cache PHPCACHE; fastcgi_cache_valid 200 60s; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; }<\/code><\/li>\n\n\n\n<li><strong>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\u306e\u6700\u9069\u5316<\/strong>\uff1a <code>; Redis\u3092\u4f7f\u7528\u3057\u305f\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406 php_value[session.save_handler] = redis php_value[session.save_path] = \"tcp:\/\/redis-master:6379, tcp:\/\/redis-slave:6379\"<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304b\u3089\u5f97\u3089\u308c\u305f\u91cd\u8981\u306a\u6559\u8a13\u306f\u3001\u5358\u306bPHP-FPM\u3092\u5c0e\u5165\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u7279\u6027\u306b\u5408\u308f\u305b\u305f\u9069\u5207\u306a\u8a2d\u5b9a\u3068\u3001\u52b9\u679c\u7684\u306a\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u306e\u7d44\u307f\u5408\u308f\u305b\u304c\u91cd\u8981\u3060\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-151\">\u30ec\u30ac\u30b7\u30fc\u30b7\u30b9\u30c6\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u4e8b\u4f8b<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-152\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u80cc\u666f<\/h4>\n\n\n\n<p>\u4e2d\u5805\u88fd\u9020\u696d\u304c15\u5e74\u4ee5\u4e0a\u904b\u7528\u3057\u3066\u304d\u305f\u793e\u5185\u306e\u751f\u7523\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u306e\u6539\u5584\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3059\u3002\u3053\u306e\u30b7\u30b9\u30c6\u30e0\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u72b6\u6cc1\u3067\u3057\u305f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP 5.3 + Apache + MySQL\u3068\u3044\u3046\u53e4\u3044\u6280\u8853\u30b9\u30bf\u30c3\u30af<\/li>\n\n\n\n<li>\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u9045\u5ef6\u304c\u696d\u52d9\u52b9\u7387\u306b\u5f71\u97ff<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u30ea\u30b9\u30af\u304c\u5897\u5927<\/li>\n\n\n\n<li>\u30b3\u30fc\u30c9\u306e\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u6027\u304c\u4f4e\u4e0b<\/li>\n<\/ul>\n\n\n\n<p>\u30b7\u30b9\u30c6\u30e0\u306f\u9577\u5e74\u306e\u904b\u7528\u3067\u591a\u304f\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u304c\u65bd\u3055\u308c\u3066\u304a\u308a\u3001\u4e00\u5ea6\u306b\u5b8c\u5168\u306a\u5237\u65b0\u306f\u696d\u52d9\u3078\u306e\u5f71\u97ff\u304c\u5927\u304d\u3059\u304e\u308b\u305f\u3081\u3001\u6bb5\u968e\u7684\u306a\u6539\u5584\u30a2\u30d7\u30ed\u30fc\u30c1\u304c\u5fc5\u8981\u3067\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-153\">\u79fb\u884c\u30a2\u30d7\u30ed\u30fc\u30c1<\/h4>\n\n\n\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u4ee5\u4e0b\u306e3\u6bb5\u968e\u306e\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u63a1\u7528\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<p><strong>\u30d5\u30a7\u30fc\u30ba1: PHP\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u30a2\u30c3\u30d7<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP 5.3\u304b\u30897.4\u3078\u306e\u79fb\u884c<\/li>\n\n\n\n<li>\u4e92\u63db\u6027\u554f\u984c\u306e\u89e3\u6c7a\u3068\u30b3\u30fc\u30c9\u306e\u4e00\u90e8\u4fee\u6b63<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30d5\u30a7\u30fc\u30ba2: PHP-FPM\u3078\u306e\u79fb\u884c<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Apache + mod_php\u304b\u3089Apache + PHP-FPM\u69cb\u6210\u3078\u306e\u79fb\u884c<\/li>\n\n\n\n<li>PHP-FPM\u306e\u8a2d\u5b9a\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30d5\u30a7\u30fc\u30ba3: \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u6539\u5584<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u306e\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u975e\u52b9\u7387\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30af\u30a8\u30ea\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u4e0d\u8981\u306a\u51e6\u7406\u306e\u524a\u9664<\/li>\n<\/ul>\n\n\n\n<p>\u7279\u306b\u30d5\u30a7\u30fc\u30ba2\u306ePHP-FPM\u79fb\u884c\u3067\u306f\u3001\u79fb\u884c\u4e2d\u3082\u696d\u52d9\u3092\u7d99\u7d9a\u3067\u304d\u308b\u3088\u3046\u614e\u91cd\u306b\u9032\u3081\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-154\">\u6280\u8853\u7684\u8ab2\u984c\u3068\u89e3\u6c7a\u7b56<\/h4>\n\n\n\n<p><strong>1. mod_php\u304b\u3089PHP-FPM\u3078\u306e\u79fb\u884c\u6642\u306e\u8ab2\u984c<\/strong><\/p>\n\n\n\n<p>mod_php\u3068PHP-FPM\u306e\u4e3b\u306a\u9055\u3044\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u8ab2\u984c\u304c\u767a\u751f\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u74b0\u5883\u5909\u6570\u306e\u6271\u3044\u306e\u9055\u3044<\/strong>\uff1amod_php\u3067\u306fApache\u306e\u74b0\u5883\u5909\u6570\u304c\u76f4\u63a5PHP\u3067\u5229\u7528\u53ef\u80fd\u3067\u3057\u305f\u304c\u3001PHP-FPM\u3067\u306f\u660e\u793a\u7684\u306b\u8a2d\u5b9a\u304c\u5fc5\u8981<\/li>\n\n\n\n<li><strong>\u30d5\u30a1\u30a4\u30eb\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u554f\u984c<\/strong>\uff1a\u5b9f\u884c\u30e6\u30fc\u30b6\u30fc\u304c\u5909\u308f\u308b\u3053\u3068\u306b\u3088\u308b\u30d5\u30a1\u30a4\u30eb\u30a2\u30af\u30bb\u30b9\u6a29\u9650\u306e\u554f\u984c<\/li>\n\n\n\n<li><strong>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406<\/strong>\uff1a\u30bb\u30c3\u30b7\u30e7\u30f3\u30d5\u30a1\u30a4\u30eb\u306e\u4fdd\u5b58\u5834\u6240\u3068\u6a29\u9650\u306e\u554f\u984c<\/li>\n<\/ul>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56<\/strong>\uff1a<\/p>\n\n\n\n<p>Apache\u8a2d\u5b9a\u3067\u306e\u74b0\u5883\u5909\u6570\u306e\u53d7\u3051\u6e21\u3057\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;VirtualHost *:80&gt;\n    # \u4ed6\u306e\u8a2d\u5b9a...\n    \n    &lt;FilesMatch \\.php$&gt;\n        # PHP-FPM\u3078\u306e\u63a5\u7d9a\u8a2d\u5b9a\n        SetHandler \"proxy:fcgi:\/\/127.0.0.1:9000\"\n        \n        # \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\n        ProxyFCGISetEnvIf \"true\" APP_ENV \"production\"\n        ProxyFCGISetEnvIf \"true\" LEGACY_COMPAT \"true\"\n    &lt;\/FilesMatch&gt;\n&lt;\/VirtualHost&gt;\n<\/pre>\n\n\n\n<p>\u30d5\u30a1\u30a4\u30eb\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u306e\u8abf\u6574\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6a29\u9650\u8a2d\u5b9a\nchown -R www-data:www-data \/var\/www\/upload\nchmod -R 775 \/var\/www\/upload\n\n# \u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6a29\u9650\u8a2d\u5b9a\nchown -R www-data:www-data \/var\/lib\/php\/sessions\nchmod -R 770 \/var\/lib\/php\/sessions\n<\/pre>\n\n\n\n<p><strong>2. \u30d0\u30c3\u30c1\u51e6\u7406\u3068\u5bfe\u8a71\u51e6\u7406\u306e\u5206\u96e2<\/strong><\/p>\n\n\n\n<p>\u30ec\u30ac\u30b7\u30fc\u30b7\u30b9\u30c6\u30e0\u306b\u306f\u3001\u6642\u9593\u306e\u304b\u304b\u308b\u30d0\u30c3\u30c1\u51e6\u7406\u3068\u5373\u6642\u5fdc\u7b54\u304c\u5fc5\u8981\u306a\u5bfe\u8a71\u51e6\u7406\u304c\u6df7\u5728\u3057\u3066\u3044\u307e\u3057\u305f\u3002\u3053\u308c\u3089\u3092\u540c\u3058\u30d7\u30fc\u30eb\u3067\u51e6\u7406\u3059\u308b\u3068\u3001\u30d0\u30c3\u30c1\u51e6\u7406\u304c\u5bfe\u8a71\u51e6\u7406\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p><strong>\u89e3\u6c7a\u7b56<\/strong>\uff1a\u7528\u9014\u5225\u306ePHP-FPM\u30d7\u30fc\u30eb\u8a2d\u5b9a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; \u5bfe\u8a71\u51e6\u7406\u7528\u30d7\u30fc\u30eb<\/pre>\n\n\n[www]\n\n\n\n<p>user = www-data group = www-data listen = \/run\/php\/php7.4-fpm.sock pm = dynamic pm.max_children = 40 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 15 pm.max_requests = 500 request_terminate_timeout = 60s ; \u30d0\u30c3\u30c1\u51e6\u7406\u7528\u30d7\u30fc\u30eb<\/p>\n\n\n[batch]\n\n\n\n<p>user = batch-user group = batch-user listen = \/run\/php\/php7.4-fpm-batch.sock pm = ondemand pm.max_children = 10 pm.process_idle_timeout = 60s request_terminate_timeout = 3600s<\/p>\n\n\n\n<p>\u3053\u308c\u306b\u3088\u308a\u3001\u91cd\u3044\u30d0\u30c3\u30c1\u51e6\u7406\u304c\u5b9f\u884c\u3055\u308c\u3066\u3044\u308b\u9593\u3082\u3001\u30e6\u30fc\u30b6\u30fc\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306f\u9ad8\u901f\u306a\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u7dad\u6301\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-155\">\u6539\u5584\u7d50\u679c<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u5c0e\u5165\u3068\u6bb5\u968e\u7684\u306a\u6539\u5584\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u52b9\u679c\u304c\u5f97\u3089\u308c\u307e\u3057\u305f\uff1a<\/p>\n\n\n<div id=\"id-c58cdb4c-373b-4252-90a3-b6f1381686e1\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u6307\u6a19<\/th><th>\u6539\u5584\u524d<\/th><th>\u6539\u5584\u5f8c<\/th><th>\u52b9\u679c<\/th><\/tr><\/thead><tbody><tr><td>\u5e73\u5747\u51e6\u7406\u6642\u9593<\/td><td>1.5\u79d2<\/td><td>0.53\u79d2<\/td><td>65%\u77ed\u7e2e<\/td><\/tr><tr><td>\u30d0\u30c3\u30c1\u51e6\u7406\u5b8c\u4e86\u6642\u9593<\/td><td>45\u5206<\/td><td>18\u5206<\/td><td>60%\u77ed\u7e2e<\/td><\/tr><tr><td>\u30b7\u30b9\u30c6\u30e0\u969c\u5bb3\u767a\u751f\u56de\u6570<\/td><td>\u6708\u5e73\u57475\u56de<\/td><td>\u6708\u5e73\u57471\u56de\u672a\u6e80<\/td><td>80%\u6e1b\u5c11<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/td><td>4GB<\/td><td>2GB<\/td><td>50%\u524a\u6e1b<\/td><\/tr><tr><td>CPU\u4f7f\u7528\u7387<\/td><td>\u5e73\u574765%<\/td><td>\u5e73\u574730%<\/td><td>54%\u524a\u6e1b<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u7279\u7b46\u3059\u3079\u304d\u306f\u3001\u3053\u308c\u3089\u306e\u6539\u5584\u304c\u65e2\u5b58\u306e\u7269\u7406\u30b5\u30fc\u30d0\u30fc\u3092\u4f7f\u7528\u3057\u305f\u307e\u307e\u3067\u9054\u6210\u3055\u308c\u305f\u3053\u3068\u3067\u3059\u3002\u7d50\u679c\u3068\u3057\u3066\u3001\u30b5\u30fc\u30d0\u30fc\u306e\u66f4\u65b0\u6642\u671f\u30922\u5e74\u5ef6\u9577\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u5927\u5e45\u306a\u30b3\u30b9\u30c8\u524a\u6e1b\u3092\u3082\u305f\u3089\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-156\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304b\u3089\u5f97\u3089\u308c\u305f\u77e5\u898b<\/h4>\n\n\n\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304b\u3089\u5f97\u3089\u308c\u305f\u4e3b\u306a\u77e5\u898b\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6bb5\u968e\u7684\u30a2\u30d7\u30ed\u30fc\u30c1\u306e\u6709\u52b9\u6027<\/strong>\uff1a\u4e00\u5ea6\u306b\u3059\u3079\u3066\u3092\u5909\u66f4\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u6bb5\u968e\u7684\u306b\u79fb\u884c\u3059\u308b\u3053\u3068\u3067\u30ea\u30b9\u30af\u3092\u6700\u5c0f\u5316\u3067\u304d\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li><strong>\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u91cd\u8981\u6027<\/strong>\uff1a\u5404\u30d5\u30a7\u30fc\u30ba\u306e\u524d\u5f8c\u3067\u8a73\u7d30\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6e2c\u5b9a\u3092\u884c\u3063\u305f\u3053\u3068\u3067\u3001\u6539\u5584\u52b9\u679c\u3092\u6b63\u78ba\u306b\u628a\u63e1\u3057\u3001\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u306e\u5224\u65ad\u6750\u6599\u306b\u3067\u304d\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li><strong>\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u57fa\u3065\u304f\u6700\u9069\u5316<\/strong>\uff1a\u5b9f\u969b\u306e\u696d\u52d9\u30d1\u30bf\u30fc\u30f3\u3092\u5206\u6790\u3057\u3001\u5bfe\u8a71\u51e6\u7406\u3068\u30d0\u30c3\u30c1\u51e6\u7406\u3092\u5206\u96e2\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u679c\u7684\u306a\u6700\u9069\u5316\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li><strong>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u306e\u4fa1\u5024<\/strong>\uff1a\u79fb\u884c\u306e\u5404\u30b9\u30c6\u30c3\u30d7\u3068\u8a2d\u5b9a\u5909\u66f4\u3092\u8a73\u7d30\u306b\u8a18\u9332\u3057\u305f\u3053\u3068\u3067\u3001\u5c06\u6765\u306e\u904b\u7528\u3084\u8ffd\u52a0\u6539\u5584\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-157\">\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u74b0\u5883\u3067\u306ePHP-FPM\u6d3b\u7528<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-158\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6982\u8981<\/h4>\n\n\n\n<p>\u30d5\u30a3\u30f3\u30c6\u30c3\u30af\u4f01\u696d\u5411\u3051\u306b\u958b\u767a\u3057\u305f\u9867\u5ba2\u5411\u3051\u91d1\u878d\u30b5\u30fc\u30d3\u30b9\u306e\u30d0\u30c3\u30af\u30a8\u30f3\u30c9API\u30b7\u30b9\u30c6\u30e0\u3067\u306e\u4e8b\u4f8b\u3067\u3059\u3002\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u306f\u4ee5\u4e0b\u306e\u8981\u4ef6\u304c\u3042\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9ad8\u3044\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u53ef\u7528\u6027<\/li>\n\n\n\n<li>\u67d4\u8edf\u306a\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3<\/li>\n\n\n\n<li>\u8fc5\u901f\u306a\u6a5f\u80fd\u8ffd\u52a0\u3068\u30c7\u30d7\u30ed\u30a4<\/li>\n\n\n\n<li>\u72ec\u7acb\u3057\u305f\u30c1\u30fc\u30e0\u306b\u3088\u308b\u4e26\u884c\u958b\u767a<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u8981\u4ef6\u3092\u6e80\u305f\u3059\u305f\u3081\u3001\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3092\u63a1\u7528\u3057\u3001\u7d0415\u306e\u72ec\u7acb\u3057\u305f\u30b5\u30fc\u30d3\u30b9\u3092\u958b\u767a\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-159\">PHP-FPM\u3068\u30b3\u30f3\u30c6\u30ca\u6280\u8853\u306e\u7d44\u307f\u5408\u308f\u305b<\/h4>\n\n\n\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001PHP-FPM\u3068Docker\u30b3\u30f3\u30c6\u30ca\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u63a1\u7528\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<p><strong>1. \u30b3\u30f3\u30c6\u30ca\u5316\u3055\u308c\u305fPHP-FPM<\/strong><\/p>\n\n\n\n<p>\u5404\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u306f\u72ec\u81ea\u306ePHP-FPM\u30b3\u30f3\u30c6\u30ca\u3067\u52d5\u4f5c\u3057\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a<code>Dockerfile<\/code>\u3067\u69cb\u7bc9\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">FROM php:8.1-fpm-alpine\n\n# \u5fc5\u8981\u306a\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nRUN apk add --no-cache $PHPIZE_DEPS \\\n    &amp;&amp; pecl install redis \\\n    &amp;&amp; docker-php-ext-install pdo_mysql \\\n    &amp;&amp; docker-php-ext-enable redis\n\n# PHP-FPM\u8a2d\u5b9a\nCOPY www.conf \/usr\/local\/etc\/php-fpm.d\/www.conf\nCOPY php.ini \/usr\/local\/etc\/php\/\n\n# \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b3\u30fc\u30c9\u306e\u30b3\u30d4\u30fc\nCOPY .\/src \/var\/www\/html\n\n# \u9069\u5207\u306a\u6a29\u9650\u8a2d\u5b9a\nRUN chown -R www-data:www-data \/var\/www\/html\n\n# \u975eroot \u30e6\u30fc\u30b6\u30fc\u3068\u3057\u3066\u5b9f\u884c\nUSER www-data\n\nEXPOSE 9000\nCMD [\"php-fpm\"]\n<\/pre>\n\n\n\n<p>PHP-FPM\u306e\u8a2d\u5b9a\u306f\u30b3\u30f3\u30c6\u30ca\u306b\u6700\u9069\u5316\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[www]\nuser = www-data\ngroup = www-data\nlisten = 9000\n\n; \u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u306b\u6700\u9069\u5316\u3055\u308c\u305f\u30d7\u30ed\u30bb\u30b9\u8a2d\u5b9a\npm = dynamic\npm.max_children = 20\npm.start_servers = 5\npm.min_spare_servers = 2\npm.max_spare_servers = 10\npm.max_requests = 500\n<\/pre>\n\n\n\n<p><strong>2. \u30b5\u30fc\u30d3\u30b9\u69cb\u6210<\/strong><\/p>\n\n\n\n<p>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u74b0\u5883\u3067\u306ePHP-FPM\u306e\u4e3b\u306a\u5f79\u5272\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>API\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8<\/strong>: \u5404\u30b5\u30fc\u30d3\u30b9\u306fRESTful API\u3092\u63d0\u4f9b<\/li>\n\n\n\n<li><strong>\u975e\u540c\u671f\u30b8\u30e7\u30d6\u51e6\u7406<\/strong>: \u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u30bf\u30b9\u30af\u306e\u51e6\u7406<\/li>\n\n\n\n<li><strong>\u30c7\u30fc\u30bf\u51e6\u7406<\/strong>: \u4ed6\u306e\u30b5\u30fc\u30d3\u30b9\u3068\u9023\u643a\u3057\u305f\u30c7\u30fc\u30bf\u52a0\u5de5<\/li>\n<\/ul>\n\n\n\n<p><strong>3. Kubernetes\u3067\u306e\u30aa\u30fc\u30b1\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3<\/strong><\/p>\n\n\n\n<p>Kubernetes\u4e0a\u3067\u306e\u4e00\u822c\u7684\u306a\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u69cb\u6210\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: auth-service\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: auth-service\n  template:\n    metadata:\n      labels:\n        app: auth-service\n    spec:\n      containers:\n      - name: nginx\n        image: nginx:alpine\n        ports:\n        - containerPort: 80\n        volumeMounts:\n        - name: nginx-config\n          mountPath: \/etc\/nginx\/conf.d\n      - name: php-fpm\n        image: company-registry\/auth-service:v1.2.3\n        env:\n        - name: DB_HOST\n          valueFrom:\n            configMapKeyRef:\n              name: auth-service-config\n              key: db_host\n        # \u4ed6\u306e\u74b0\u5883\u5909\u6570...\n        resources:\n          limits:\n            cpu: \"500m\"\n            memory: \"256Mi\"\n          requests:\n            cpu: \"200m\"\n            memory: \"128Mi\"\n      volumes:\n      - name: nginx-config\n        configMap:\n          name: nginx-config\n<\/pre>\n\n\n\n<p>\u3053\u306e\u69cb\u6210\u3067\u306f\u3001\u5404\u30b5\u30fc\u30d3\u30b9\u306fNginx\u3068PHP-FPM\u306e2\u3064\u306e\u30b3\u30f3\u30c6\u30ca\u3092\u542b\u3080Pod\u3068\u3057\u3066\u30c7\u30d7\u30ed\u30a4\u3055\u308c\u3001Nginx\u304c\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u3051\u53d6\u3063\u3066PHP-FPM\u306b\u8ee2\u9001\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>4. \u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u3068\u9ad8\u53ef\u7528\u6027<\/strong><\/p>\n\n\n\n<p>Kubernetes\u306e\u6c34\u5e73\u30dd\u30c3\u30c9\u30aa\u30fc\u30c8\u30b9\u30b1\u30fc\u30e9\u30fc\uff08HPA\uff09\u3092\u4f7f\u7528\u3057\u3066\u3001\u8ca0\u8377\u306b\u5fdc\u3058\u3066\u81ea\u52d5\u7684\u306b\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: autoscaling\/v2\nkind: HorizontalPodAutoscaler\nmetadata:\n  name: auth-service-hpa\nspec:\n  scaleTargetRef:\n    apiVersion: apps\/v1\n    kind: Deployment\n    name: auth-service\n  minReplicas: 3\n  maxReplicas: 10\n  metrics:\n  - type: Resource\n    resource:\n      name: cpu\n      target:\n        type: Utilization\n        averageUtilization: 70\n<\/pre>\n\n\n\n<p><strong>5. \u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30ed\u30ae\u30f3\u30b0<\/strong><\/p>\n\n\n\n<p>PHP-FPM\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3092Prometheus\u3068\u7d71\u5408\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: monitoring.coreos.com\/v1\nkind: ServiceMonitor\nmetadata:\n  name: php-fpm-monitor\nspec:\n  selector:\n    matchLabels:\n      app: auth-service\n  endpoints:\n  - port: metrics\n    path: \/status\n    interval: 15s\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-160\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u6210\u679c<\/h4>\n\n\n\n<p>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u306ePHP-FPM\u6d3b\u7528\u306b\u3088\u308a\u3001\u4ee5\u4e0b\u306e\u6210\u679c\u304c\u5f97\u3089\u308c\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u9ad8\u53ef\u7528\u6027<\/strong>: 99.99%\u306e\u30b5\u30fc\u30d3\u30b9\u53ef\u7528\u6027\u3092\u9054\u6210<\/li>\n\n\n\n<li><strong>\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3<\/strong>: \u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u30d4\u30fc\u30af\u6642\u306b\u81ea\u52d5\u7684\u306b10\u500d\u307e\u3067\u30b9\u30b1\u30fc\u30eb\u30a2\u30a6\u30c8<\/li>\n\n\n\n<li><strong>\u958b\u767a\u52b9\u7387<\/strong>: \u65b0\u6a5f\u80fd\u306e\u958b\u767a\u304b\u3089\u30c7\u30d7\u30ed\u30a4\u307e\u3067\u306e\u6642\u9593\u304c75%\u77ed\u7e2e<\/li>\n\n\n\n<li><strong>\u5b89\u5168\u306a\u30c7\u30d7\u30ed\u30a4<\/strong>: \u30ab\u30ca\u30ea\u30a2\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u306b\u3088\u308b\u5b89\u5168\u306a\u30ea\u30ea\u30fc\u30b9<\/li>\n\n\n\n<li><strong>\u30b3\u30b9\u30c8\u52b9\u7387<\/strong>: \u8ca0\u8377\u306b\u5fdc\u3058\u305f\u81ea\u52d5\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u306b\u3088\u308b\u30ea\u30bd\u30fc\u30b9\u6700\u9069\u5316<\/li>\n\n\n\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/strong>: \u5e73\u5747\u30ec\u30b9\u30dd\u30f3\u30b9\u30bf\u30a4\u30e0\u3092100ms\u672a\u6e80\u306b\u7dad\u6301<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-161\">\u5b66\u3093\u3060\u6559\u8a13\u3068\u77e5\u898b<\/h4>\n\n\n\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304b\u3089\u5f97\u3089\u308c\u305f\u4e3b\u306a\u77e5\u898b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>PHP-FPM\u306f\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u3068\u76f8\u6027\u304c\u826f\u3044<\/strong>: \u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u30e2\u30c7\u30eb\u304c\u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u306b\u9069\u3057\u3066\u3044\u308b<\/li>\n\n\n\n<li><strong>\u30ea\u30bd\u30fc\u30b9\u8a2d\u5b9a\u306e\u91cd\u8981\u6027<\/strong>: \u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u3067\u306f\u3001PHP-FPM\u306e\u30d7\u30ed\u30bb\u30b9\u6570\u3092\u30b3\u30f3\u30c6\u30ca\u306e\u30ea\u30bd\u30fc\u30b9\u5236\u9650\u306b\u5408\u308f\u305b\u3066\u9069\u5207\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u304c\u91cd\u8981<\/li>\n\n\n\n<li><strong>\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u306e\u5b9f\u88c5<\/strong>: PHP-FPM\u306e\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3092\u6d3b\u7528\u3057\u305f\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u304c\u53ef\u7528\u6027\u5411\u4e0a\u306b\u8ca2\u732e<\/li>\n\n\n\n<li><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u591a\u5c64\u9632\u5fa1<\/strong>: PHP-FPM\u306e\u30e6\u30fc\u30b6\u30fc\u5206\u96e2\u3001\u30b3\u30f3\u30c6\u30ca\u5206\u96e2\u3001\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30dd\u30ea\u30b7\u30fc\u306a\u3069\u8907\u6570\u306e\u30ec\u30a4\u30e4\u30fc\u3067\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u78ba\u4fdd<\/li>\n\n\n\n<li><strong>\u7d71\u4e00\u3055\u308c\u305f\u958b\u767a\u74b0\u5883<\/strong>: Docker\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u74b0\u5883\u3068\u672c\u756a\u74b0\u5883\u306e\u4e00\u8cab\u6027\u304c\u5411\u4e0a\u3057\u3001\u300c\u52d5\u4f5c\u3057\u306a\u3044\u300d\u554f\u984c\u304c\u6e1b\u5c11<\/li>\n<\/ol>\n\n\n\n<p>Dexall\u3067\u306f\u3001\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u7d4c\u9a13\u3092\u57fa\u306b\u3001PHP-FPM\u3068\u30b3\u30f3\u30c6\u30ca\u6280\u8853\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u69cb\u7bc9\u30ce\u30a6\u30cf\u30a6\u3092\u84c4\u7a4d\u3057\u3001\u4ed6\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u3082\u5fdc\u7528\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-162\">\u5c0e\u5165\u4e8b\u4f8b\u304b\u3089\u5b66\u3076\u6210\u529f\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u4e8b\u4f8b\u304b\u3089\u3001PHP-FPM\u5c0e\u5165\u306e\u6210\u529f\u306b\u5171\u901a\u3059\u308b\u30dd\u30a4\u30f3\u30c8\u3092\u307e\u3068\u3081\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u6bb5\u968e\u7684\u306a\u30a2\u30d7\u30ed\u30fc\u30c1<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u3059\u3079\u3066\u3092\u4e00\u5ea6\u306b\u5909\u66f4\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001\u8a08\u753b\u7684\u306b\u6bb5\u968e\u3092\u8e0f\u3093\u3067\u79fb\u884c<\/li>\n\n\n\n<li>\u5404\u30b9\u30c6\u30c3\u30d7\u3067\u306e\u691c\u8a3c\u3068\u554f\u984c\u89e3\u6c7a\u3092\u4e01\u5be7\u306b\u5b9f\u65bd<\/li>\n<\/ul>\n\n\n\n<p><strong>2. \u9069\u5207\u306a\u30ea\u30bd\u30fc\u30b9\u8a08\u753b<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b5\u30fc\u30d0\u30fc\u3084\u30b3\u30f3\u30c6\u30ca\u306e\u30ea\u30bd\u30fc\u30b9\u306b\u5408\u308f\u305b\u305fPHP-FPM\u306e\u30d7\u30ed\u30bb\u30b9\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u7528\u9014\u3054\u3068\u306e\u30d7\u30fc\u30eb\u5206\u96e2\u306b\u3088\u308b\u52b9\u7387\u7684\u306a\u30ea\u30bd\u30fc\u30b9\u914d\u5206<\/li>\n<\/ul>\n\n\n\n<p><strong>3. \u7dcf\u5408\u7684\u306a\u6700\u9069\u5316<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP-FPM\u3060\u3051\u3067\u306a\u304f\u3001Web\u30b5\u30fc\u30d0\u30fc\u3084\u30ad\u30e3\u30c3\u30b7\u30e5\u306a\u3069\u4ed6\u306e\u8981\u7d20\u3082\u542b\u3081\u305f\u7dcf\u5408\u7684\u306a\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b3\u30fc\u30c9\u306e\u6539\u5584\u3082\u4f75\u305b\u3066\u5b9f\u65bd<\/li>\n<\/ul>\n\n\n\n<p><strong>4. \u52b9\u679c\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8a73\u7d30\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306b\u3088\u308b\u554f\u984c\u306e\u65e9\u671f\u767a\u898b\u3068\u6700\u9069\u5316\u52b9\u679c\u306e\u6e2c\u5b9a<\/li>\n\n\n\n<li>\u672c\u756a\u74b0\u5883\u3067\u306e\u7d99\u7d9a\u7684\u306a\u76e3\u8996\u3068\u8abf\u6574<\/li>\n<\/ul>\n\n\n\n<p><strong>5. \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3078\u306e\u914d\u616e<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6a29\u9650\u5206\u96e2\u3084\u30d7\u30ed\u30bb\u30b9\u5206\u96e2\u306b\u3088\u308b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316<\/li>\n\n\n\n<li>\u74b0\u5883\u5909\u6570\u7ba1\u7406\u3084\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u9069\u5207\u306a\u4fdd\u8b77<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30dd\u30a4\u30f3\u30c8\u306f\u3001PHP-FPM\u306e\u5c0e\u5165\u3092\u691c\u8a0e\u3057\u3066\u3044\u308b\u4f01\u696d\u306b\u3068\u3063\u3066\u3001\u6709\u7528\u306a\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u3068\u306a\u308b\u3067\u3057\u3087\u3046\u3002\u6b21\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u6700\u65b0\u52d5\u5411\u3068\u5c06\u6765\u5c55\u671b\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-163\">PHP-FPM\u306e\u6700\u65b0\u52d5\u5411\u3068\u5c06\u6765\u5c55\u671b<\/h2>\n\n\n\n<p>PHP-FPM\u306f\u73fe\u5728\u306ePHP\u5b9f\u884c\u74b0\u5883\u3068\u3057\u3066\u6700\u3082\u5e83\u304f\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u304c\u3001PHP\u306e\u9032\u5316\u3084\u65b0\u8208\u6280\u8853\u306e\u53f0\u982d\u306b\u3088\u308a\u3001\u305d\u306e\u5f79\u5272\u3084\u4f4d\u7f6e\u3065\u3051\u306f\u5e38\u306b\u5909\u5316\u3057\u3066\u3044\u307e\u3059\u3002\u672c\u7ae0\u3067\u306f\u3001PHP-FPM\u306e\u6700\u65b0\u52d5\u5411\u3068\u4eca\u5f8c\u306e\u5c55\u671b\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3001\u5b9f\u52d9\u8005\u304c\u5c06\u6765\u306e\u6280\u8853\u9078\u5b9a\u306b\u5099\u3048\u308b\u305f\u3081\u306e\u8996\u70b9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-164\">\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u8ffd\u52a0\u3055\u308c\u305f\u6a5f\u80fd\u3068\u6539\u5584\u70b9<\/h3>\n\n\n\n<p>PHP\u8a00\u8a9e\u81ea\u4f53\u306e\u9032\u5316\u306b\u4f34\u3044\u3001PHP-FPM\u3082\u7d99\u7d9a\u7684\u306b\u6a5f\u80fd\u5f37\u5316\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6539\u5584\u304c\u884c\u308f\u308c\u3066\u3044\u307e\u3059\u3002PHP 8.0\u4ee5\u964d\u306e\u4e3b\u8981\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u5c0e\u5165\u3055\u308c\u305f\u5909\u66f4\u70b9\u3068\u3001\u305d\u308c\u304cPHP-FPM\u306e\u904b\u7528\u306b\u3082\u305f\u3089\u3059\u5f71\u97ff\u3092\u898b\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-165\">PHP 8.0\u306e\u4e3b\u8981\u306a\u5909\u66f4\u70b9\u3068PHP-FPM\u3078\u306e\u5f71\u97ff<\/h4>\n\n\n\n<p>PHP 8.0\u3067\u306f\u3001\u8a00\u8a9e\u306e\u6839\u672c\u7684\u306a\u90e8\u5206\u306b\u5927\u304d\u306a\u5909\u66f4\u304c\u52a0\u3048\u3089\u308c\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<p><strong>1. JIT\uff08Just-In-Time\uff09\u30b3\u30f3\u30d1\u30a4\u30e9\u306e\u5c0e\u5165<\/strong><\/p>\n\n\n\n<p>JIT\u30b3\u30f3\u30d1\u30a4\u30e9\u306f\u3001PHP\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u6642\u306b\u30de\u30b7\u30f3\u30b3\u30fc\u30c9\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3059\u308b\u3053\u3068\u3067\u3001\u7279\u5b9a\u306e\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\u3067\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u6a5f\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">; php.ini\u3067\u306eJIT\u8a2d\u5b9a\nopcache.jit_buffer_size = 100M\nopcache.jit = 1255\n<\/pre>\n\n\n\n<p>PHP-FPM\u306b\u304a\u3051\u308bJIT\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8a08\u7b97\u96c6\u7d04\u578b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306715-30%\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a<\/li>\n\n\n\n<li>\u305f\u3060\u3057\u3001I\/O\u5f85\u3061\u304c\u591a\u3044\u4e00\u822c\u7684\u306aWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u52b9\u679c\u304c\u9650\u5b9a\u7684<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u6d88\u8cbb\u91cf\u306e\u5897\u52a0\u306b\u6ce8\u610f\u304c\u5fc5\u8981<\/li>\n<\/ul>\n\n\n\n<p><strong>2. \u540d\u524d\u4ed8\u304d\u5f15\u6570\uff08Named Arguments\uff09<\/strong><\/p>\n\n\n\n<p>\u95a2\u6570\u547c\u3073\u51fa\u3057\u6642\u306b\u5f15\u6570\u306e\u540d\u524d\u3092\u6307\u5b9a\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ \u5f93\u6765\u306e\u65b9\u6cd5\nsetcookie(\"name\", \"value\", 0, \"\", \"\", false, true);\n\n\/\/ \u540d\u524d\u4ed8\u304d\u5f15\u6570\u3092\u4f7f\u7528\nsetcookie(\n    name: \"name\",\n    value: \"value\",\n    httponly: true,\n    secure: false\n);\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u304c\u5411\u4e0a<\/li>\n\n\n\n<li>\u76f4\u63a5\u7684\u306a\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3078\u306e\u5f71\u97ff\u306f\u5c0f\u3055\u3044<\/li>\n<\/ul>\n\n\n\n<p><strong>3. \u30a2\u30c8\u30ea\u30d3\u30e5\u30fc\u30c8\uff08Attributes\uff09<\/strong><\/p>\n\n\n\n<p>\u30af\u30e9\u30b9\u3084\u30e1\u30bd\u30c3\u30c9\u306b\u30e1\u30bf\u30c7\u30fc\u30bf\u3092\u76f4\u63a5\u8a18\u8ff0\u3067\u304d\u308b\u6a5f\u80fd\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#[Route(\"\/api\/users\", methods: [\"GET\"])]\npublic function getUsers(): array\n{\n    \/\/ ...\n}\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Web\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306e\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3084\u4f9d\u5b58\u6027\u6ce8\u5165\u304c\u7c21\u7565\u5316<\/li>\n\n\n\n<li>\u30a2\u30ce\u30c6\u30fc\u30b7\u30e7\u30f3\u51e6\u7406\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-166\">PHP 8.1\u306e\u4e3b\u8981\u306a\u5909\u66f4\u70b9\u3068PHP-FPM\u3078\u306e\u5f71\u97ff<\/h4>\n\n\n\n<p>PHP 8.1\u306f\u3055\u3089\u306b\u8a00\u8a9e\u6a5f\u80fd\u3092\u5f37\u5316\u3057\u3001\u7279\u306b\u975e\u540c\u671f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u57fa\u76e4\u3092\u63d0\u4f9b\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<p><strong>1. \u30d5\u30a1\u30a4\u30d0\u30fc\uff08Fibers\uff09\u306e\u5c0e\u5165<\/strong><\/p>\n\n\n\n<p>\u30d5\u30a1\u30a4\u30d0\u30fc\u306f\u3001\u95a2\u6570\u306e\u5b9f\u884c\u3092\u4e00\u6642\u505c\u6b62\u3057\u3066\u5f8c\u3067\u518d\u958b\u3067\u304d\u308b\u5354\u8abf\u7684\u30de\u30eb\u30c1\u30bf\u30b9\u30af\u6a5f\u80fd\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$fiber = new Fiber(function (): void {\n    $value = Fiber::suspend('fiber suspended');\n    echo \"Value: $value\\n\";\n});\n\n$value = $fiber-&gt;start();\necho \"Fiber suspended with: $value\\n\";\n$fiber-&gt;resume('fiber resumed');\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I\/O\u5f85\u3061\u306e\u3042\u308b\u51e6\u7406\u3092\u52b9\u7387\u5316\u3067\u304d\u308b\u53ef\u80fd\u6027<\/li>\n\n\n\n<li>\u975e\u540c\u671f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u57fa\u76e4\u3068\u3057\u3066\u91cd\u8981<\/li>\n\n\n\n<li>\u30ea\u30af\u30a8\u30b9\u30c8\u9593\u3067\u6301\u7d9a\u3059\u308b\u30d5\u30a1\u30a4\u30d0\u30fc\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u304a\u3089\u305a\u3001\u5404\u30ea\u30af\u30a8\u30b9\u30c8\u306f\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u308b<\/li>\n<\/ul>\n\n\n\n<p><strong>2. \u8aad\u307f\u53d6\u308a\u5c02\u7528\u30d7\u30ed\u30d1\u30c6\u30a3<\/strong><\/p>\n\n\n\n<p>\u30af\u30e9\u30b9\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3068\u3057\u3066\u5ba3\u8a00\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class User {\n    public readonly string $username;\n    \n    public function __construct(string $username) {\n        $this-&gt;username = $username;\n    }\n}\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4e0d\u5909\u6027\u306e\u78ba\u4fdd\u306b\u3088\u308b\u30d0\u30b0\u306e\u6e1b\u5c11<\/li>\n\n\n\n<li>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u5b89\u5168\u6027\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-167\">PHP 8.2\u306e\u4e3b\u8981\u306a\u5909\u66f4\u70b9\u3068PHP-FPM\u3078\u306e\u5f71\u97ff<\/h4>\n\n\n\n<p>PHP 8.2\u306f\u578b\u30b7\u30b9\u30c6\u30e0\u3092\u3055\u3089\u306b\u5f37\u5316\u3057\u3001\u8aad\u307f\u53d6\u308a\u5c02\u7528\u6a5f\u80fd\u3092\u62e1\u5f35\u3057\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<p><strong>1. \u8aad\u307f\u53d6\u308a\u5c02\u7528\u30af\u30e9\u30b9<\/strong><\/p>\n\n\n\n<p>\u30af\u30e9\u30b9\u5168\u4f53\u3092\u8aad\u307f\u53d6\u308a\u5c02\u7528\u3068\u3057\u3066\u5ba3\u8a00\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">readonly class Point {\n    public float $x;\n    public float $y;\n    \n    public function __construct(float $x, float $y) {\n        $this-&gt;x = $x;\n        $this-&gt;y = $y;\n    }\n}\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u3088\u308a\u5805\u7262\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u8a2d\u8a08<\/li>\n\n\n\n<li>\u6f5c\u5728\u7684\u306a\u30d0\u30b0\u306e\u6e1b\u5c11<\/li>\n<\/ul>\n\n\n\n<p><strong>2. DNF\u578b\uff08Disjunctive Normal Form\uff09<\/strong><\/p>\n\n\n\n<p>\u3088\u308a\u8907\u96d1\u306a\u578b\u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u8868\u73fe\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function process((A&amp;B)|(C&amp;D) $value) {\n    \/\/ ...\n}\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u578b\u30c1\u30a7\u30c3\u30af\u306e\u7cbe\u5ea6\u5411\u4e0a\u306b\u3088\u308b\u30a8\u30e9\u30fc\u306e\u65e9\u671f\u767a\u898b<\/li>\n\n\n\n<li>\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a\u5f37\u5316<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-168\">PHP-FPM\u56fa\u6709\u306e\u6539\u5584<\/h4>\n\n\n\n<p>PHP\u672c\u4f53\u306e\u9032\u5316\u306b\u52a0\u3048\u3066\u3001PHP-FPM\u81ea\u4f53\u306b\u3082\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u6539\u5584\u304c\u7d99\u7d9a\u7684\u306b\u884c\u308f\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u306e\u6539\u5584<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u52d5\u7684\u30d7\u30ed\u30bb\u30b9\u7ba1\u7406\u306e\u7cbe\u5ea6\u5411\u4e0a\u306b\u3088\u308b\u8ca0\u8377\u5bfe\u5fdc\u529b\u306e\u5f37\u5316<\/li>\n\n\n\n<li>\u30d7\u30ed\u30bb\u30b9\u518d\u8d77\u52d5\u306e\u30b9\u30de\u30fc\u30c8\u5316\u306b\u3088\u308b\u30c0\u30a6\u30f3\u30bf\u30a4\u30e0\u524a\u6e1b<\/li>\n\n\n\n<li>\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u306e\u30ad\u30e5\u30fc\u30a4\u30f3\u30b0\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<p><strong>2. \u30ed\u30b0\u3068\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u5f37\u5316<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8a73\u7d30\u306a\u30a8\u30e9\u30fc\u30ed\u30b0\u306b\u3088\u308b\u554f\u984c\u7279\u5b9a\u306e\u5bb9\u6613\u5316<\/li>\n\n\n\n<li>\u30d7\u30ed\u30e1\u30c6\u30a6\u30b9\u4e92\u63db\u306e\u30e1\u30c8\u30ea\u30af\u30b9\u51fa\u529b\u306e\u30b5\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>\u30b9\u30c6\u30fc\u30bf\u30b9\u30da\u30fc\u30b8\u3067\u306e\u60c5\u5831\u91cf\u62e1\u5145<\/li>\n<\/ul>\n\n\n\n<p><strong>3. \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u74b0\u5883\u5909\u6570\u51e6\u7406\u306e\u5b89\u5168\u6027\u5411\u4e0a<\/li>\n\n\n\n<li>chroot\u6a5f\u80fd\u306e\u5f37\u5316<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u5206\u96e2\u306e\u3055\u3089\u306a\u308b\u6539\u5584<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-169\">PHP \u306e\u9032\u5316\u3068 PHP-FPM \u306e\u767a\u5c55\u306e\u65b9\u5411<\/h3>\n\n\n\n<p>PHP\u3068\u3044\u3046\u8a00\u8a9e\u81ea\u4f53\u306e\u9032\u5316\u304cPHP-FPM\u306e\u5c06\u6765\u306b\u3069\u306e\u3088\u3046\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u306e\u304b\u3001\u307e\u305f\u5b9f\u884c\u74b0\u5883\u3068\u3057\u3066\u306ePHP-FPM\u304c\u3069\u306e\u3088\u3046\u306b\u767a\u5c55\u3057\u3066\u3044\u304f\u306e\u304b\u3092\u8003\u5bdf\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-170\">PHP\u8a00\u8a9e\u306e\u9032\u5316\u306e\u65b9\u5411\u6027<\/h4>\n\n\n\n<p>PHP\u306f\u904e\u53bb\u6570\u5e74\u9593\u3067\u6025\u901f\u306b\u9032\u5316\u3057\u3001\u7279\u306b\u4ee5\u4e0b\u306e\u65b9\u5411\u6027\u304c\u9855\u8457\u3067\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u578b\u30b7\u30b9\u30c6\u30e0\u306e\u5f37\u5316<\/strong><\/p>\n\n\n\n<p>PHP 7.0\u3067\u5c0e\u5165\u3055\u308c\u305f\u30b9\u30ab\u30e9\u30fc\u578b\u5ba3\u8a00\u304b\u3089\u59cb\u307e\u308a\u3001PHP 8.2\u306eDNF\u578b\u307e\u3067\u3001\u578b\u30b7\u30b9\u30c6\u30e0\u306e\u5f37\u5316\u304c\u7d99\u7d9a\u7684\u306b\u884c\u308f\u308c\u3066\u3044\u307e\u3059\u3002\u4eca\u5f8c\u3082\u9759\u7684\u578b\u4ed8\u3051\u306e\u65b9\u5411\u3078\u3068\u9032\u5316\u3057\u3066\u3044\u304f\u3053\u3068\u304c\u4e88\u60f3\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 7.0\nfunction add(int $a, int $b): int {\n    return $a + $b;\n}\n\n\/\/ PHP 8.0\nfunction process(User|Customer $entity): Response|null {\n    \/\/ ...\n}\n\n\/\/ PHP 8.1\/8.2\u4ee5\u964d\nfunction process(User&amp;Serializable $entity): never {\n    \/\/ ...\n}\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u578b\u60c5\u5831\u3092\u6d3b\u7528\u3057\u305f\u6700\u9069\u5316\u306e\u53ef\u80fd\u6027<\/li>\n\n\n\n<li>\u4e0d\u6b63\u306a\u578b\u306b\u3088\u308b\u30a8\u30e9\u30fc\u306e\u6e1b\u5c11\u3067\u5b89\u5b9a\u6027\u304c\u5411\u4e0a<\/li>\n\n\n\n<li>\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a\u5f37\u5316<\/li>\n<\/ul>\n\n\n\n<p><strong>2. \u975e\u540c\u671f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30e2\u30c7\u30eb\u306e\u5c0e\u5165<\/strong><\/p>\n\n\n\n<p>PHP 8.1\u3067\u306eFibers\u306e\u5c0e\u5165\u306f\u3001PHP\u306b\u304a\u3051\u308b\u975e\u540c\u671f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u57fa\u76e4\u3068\u306a\u308a\u307e\u3057\u305f\u3002\u4eca\u5f8c\u3001\u3053\u306e\u57fa\u76e4\u306e\u4e0a\u306b\u9ad8\u30ec\u30d9\u30eb\u306eAPI\u69cb\u7bc9\u304c\u4e88\u60f3\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Amphp\u306a\u3069\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u3088\u308bFibers\u3092\u4f7f\u3063\u305f\u975e\u540c\u671f\u51e6\u7406\n$response = yield $httpClient-&gt;request('GET', 'https:\/\/example.com\/');\n$data = yield parseData($response-&gt;getBody());\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u30e2\u30c7\u30eb\u306e\u5909\u5316\u306e\u53ef\u80fd\u6027<\/li>\n\n\n\n<li>I\/O\u5f85\u3061\u306e\u52b9\u7387\u5316\u306b\u3088\u308b\u5168\u4f53\u7684\u306a\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\u5411\u4e0a<\/li>\n\n\n\n<li>\u9577\u6642\u9593\u5b9f\u884c\u30d7\u30ed\u30bb\u30b9\u306e\u52b9\u7387\u5316<\/li>\n<\/ul>\n\n\n\n<p><strong>3. \u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8981\u7d20\u306e\u5f37\u5316<\/strong><\/p>\n\n\n\n<p>\u30a2\u30ed\u30fc\u95a2\u6570\u3001\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u6f14\u7b97\u5b50\u306e\u63d0\u6848\u306a\u3069\u3001\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u8981\u7d20\u304c\u5f90\u3005\u306b\u53d6\u308a\u5165\u308c\u3089\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ PHP 7.4\u306e\u30a2\u30ed\u30fc\u95a2\u6570\n$multiply = fn($x, $y) =&gt; $x * $y;\n\n\/\/ \u63d0\u6848\u4e2d\u306e\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u6f14\u7b97\u5b50\n$result = $data |&gt; filter_data($$) |&gt; calculate_total($$);\n<\/pre>\n\n\n\n<p>PHP-FPM\u3078\u306e\u5f71\u97ff\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u3088\u308a\u7c21\u6f54\u306a\u30b3\u30fc\u30c9\u306b\u3088\u308b\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6f5c\u5728\u7684\u306a\u6e1b\u5c11<\/li>\n\n\n\n<li>\u7d14\u7c8b\u95a2\u6570\u306e\u6700\u9069\u5316\u306e\u53ef\u80fd\u6027<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-171\">PHP-FPM\u81ea\u4f53\u306e\u767a\u5c55\u65b9\u5411<\/h4>\n\n\n\n<p>PHP-FPM\u306e\u5b9f\u884c\u30e2\u30c7\u30eb\u3082\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u65b9\u5411\u306b\u9032\u5316\u3057\u3066\u3044\u304f\u3068\u8003\u3048\u3089\u308c\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u975e\u540c\u671f\u51e6\u7406\u30e2\u30c7\u30eb\u3068\u306e\u7d71\u5408<\/strong><\/p>\n\n\n\n<p>\u73fe\u5728\u306ePHP-FPM\u306f\u57fa\u672c\u7684\u306b\u300c\u30ea\u30af\u30a8\u30b9\u30c8\u5358\u4f4d\u300d\u306e\u30d7\u30ed\u30bb\u30b9\u30e2\u30c7\u30eb\u3067\u3059\u304c\u3001Fibers\u306e\u3088\u3046\u306a\u975e\u540c\u671f\u6a5f\u80fd\u3092\u6d3b\u7528\u3057\u305f\u65b0\u3057\u3044\u51e6\u7406\u30e2\u30c7\u30eb\u304c\u767b\u5834\u3059\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u30ea\u30af\u30a8\u30b9\u30c8\u53d7\u4fe1 \u2192 PHP-FPM\u30d7\u30ed\u30bb\u30b9\u306b\u30c7\u30a3\u30b9\u30d1\u30c3\u30c1 \u2192 I\/O\u5f85\u3061 \u2192 \u4ed6\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u3078\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u30b9\u30a4\u30c3\u30c1 \u2192 I\/O\u5b8c\u4e86 \u2192 \u5143\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u518d\u958b\n<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u30e2\u30c7\u30eb\u306b\u3088\u308a\u3001\u5c11\u306a\u3044\u30d7\u30ed\u30bb\u30b9\u6570\u3067\u3088\u308a\u591a\u304f\u306e\u540c\u6642\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>2. \u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u306b\u6700\u9069\u5316\u3055\u308c\u305f\u69cb\u6210<\/strong><\/p>\n\n\n\n<p>PHP\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30b3\u30f3\u30c6\u30ca\u5316\u304c\u9032\u3080\u4e2d\u3001PHP-FPM\u3082\u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u306b\u6700\u9069\u5316\u3055\u308c\u308b\u65b9\u5411\u306b\u9032\u3080\u3067\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8efd\u91cf\u5316\u3055\u308c\u305f\u30b3\u30f3\u30c6\u30ca\u5c02\u7528\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u81ea\u52d5\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u3068\u306e\u9023\u643a\u5f37\u5316<\/li>\n\n\n\n<li>Kubernetes\u74b0\u5883\u3067\u306e\u52b9\u7387\u7684\u306a\u904b\u7528\u30c4\u30fc\u30eb<\/li>\n<\/ul>\n\n\n\n<p><strong>3. \u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u5bfe\u5fdc\u306e\u5f37\u5316<\/strong><\/p>\n\n\n\n<p>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u306e\u5229\u7528\u3092\u60f3\u5b9a\u3057\u305f\u6a5f\u80fd\u5f37\u5316\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5c0f\u898f\u6a21\u3067\u591a\u6570\u306e\u30b5\u30fc\u30d3\u30b9\u306b\u5bfe\u3059\u308b\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u30b5\u30fc\u30d3\u30b9\u9593\u901a\u4fe1\u306e\u52b9\u7387\u5316<\/li>\n\n\n\n<li>\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u3068\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u306e\u6a19\u6e96\u5316<\/li>\n<\/ul>\n\n\n\n<p><strong>4. \u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u306e\u5909\u5316\u3078\u306e\u5bfe\u5fdc<\/strong><\/p>\n\n\n\n<p>\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3084\u30c4\u30fc\u30eb\u306e\u9032\u5316\u306b\u5408\u308f\u305b\u305f\u6700\u9069\u5316\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Laravel\u3001Symfony\u3001\u305d\u306e\u4ed6\u4e3b\u8981\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u306e\u6700\u9069\u306a\u9023\u643a<\/li>\n\n\n\n<li>\u9759\u7684\u89e3\u6790\u30c4\u30fc\u30eb\uff08PHPStan\u3001Psalm\u306a\u3069\uff09\u3068\u306e\u9023\u643a<\/li>\n\n\n\n<li>Composer\u306b\u3088\u308b\u4f9d\u5b58\u7ba1\u7406\u306e\u52b9\u7387\u5316<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-172\">\u6b21\u4e16\u4ee3 PHP \u5b9f\u884c\u74b0\u5883\u3068\u306e\u6bd4\u8f03\u3068\u4e00\u6319<\/h3>\n\n\n\n<p>PHP-FPM\u4ee5\u5916\u306b\u3082\u3001PHP\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u65b0\u3057\u3044\u74b0\u5883\u304c\u767b\u5834\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u6b21\u4e16\u4ee3\u5b9f\u884c\u74b0\u5883\u3068PHP-FPM\u3092\u6bd4\u8f03\u3057\u3001\u9069\u5207\u306a\u9078\u629e\u306e\u305f\u3081\u306e\u8996\u70b9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-173\">RoadRunner<\/h4>\n\n\n\n<p>RoadRunner\u306fGo\u3067\u66f8\u304b\u308c\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u30fc\u3067\u3001PHP\u30ef\u30fc\u30ab\u30fc\u30d7\u30ed\u30bb\u30b9\u3092\u7ba1\u7406\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30a4\u30f3\u30b5\u30fc\u30d0\u30fc\u306fGo\u8a00\u8a9e\u3067\u5b9f\u88c5<\/li>\n\n\n\n<li>PHP\u3092\u30ef\u30fc\u30ab\u30fc\u3068\u3057\u3066\u8d77\u52d5\u3057\u3001\u8907\u6570\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406<\/li>\n\n\n\n<li>\u30ea\u30af\u30a8\u30b9\u30c8\u9593\u3067PHP\u30d7\u30ed\u30bb\u30b9\u3092\u518d\u5229\u7528<\/li>\n<\/ul>\n\n\n\n<p><strong>\u4e3b\u306a\u7279\u5fb4\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP-FPM\u3088\u308a\u3082\u9ad8\u3044\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\uff0820-30%\u9ad8\u901f\uff09<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u524a\u6e1b\uff0830-50%\u524a\u6e1b\uff09<\/li>\n\n\n\n<li>\u591a\u69d8\u306a\u6a5f\u80fd\uff1aHTTP\u3001gRPC\u3001Jobs\u3001WebSockets\u306a\u3069<\/li>\n<\/ul>\n\n\n\n<p><strong>PHP-FPM\u3068\u306e\u6bd4\u8f03\uff1a<\/strong><\/p>\n\n\n<div id=\"id-2082275f-175b-4a83-99fe-1b169946fd23\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>PHP-FPM<\/th><th>RoadRunner<\/th><\/tr><\/thead><tbody><tr><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/td><td>\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3<\/td><td>20-30%\u9ad8\u901f<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/td><td>\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3<\/td><td>30-50%\u524a\u6e1b<\/td><\/tr><tr><td>\u8a2d\u5b9a\u306e\u8907\u96d1\u3055<\/td><td>\u30b7\u30f3\u30d7\u30eb<\/td><td>\u3084\u3084\u8907\u96d1<\/td><\/tr><tr><td>\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0<\/td><td>\u975e\u5e38\u306b\u5e83\u3044<\/td><td>\u9650\u5b9a\u7684\u3060\u304c\u6210\u9577\u4e2d<\/td><\/tr><tr><td>\u5b66\u7fd2\u66f2\u7dda<\/td><td>\u7de9\u3084\u304b<\/td><td>\u3084\u3084\u6025<\/td><\/tr><tr><td>\u5c0e\u5165\u96e3\u6613\u5ea6<\/td><td>\u5bb9\u6613<\/td><td>\u3084\u3084\u96e3\u3057\u3044<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p><strong>\u6700\u9069\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30afAPI\u30b5\u30fc\u30d0\u30fc<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3<\/li>\n\n\n\n<li>\u69d8\u3005\u306a\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\uff08HTTP\u3001\u30b8\u30e7\u30d6\u3001WebSocket\uff09\u304c\u6df7\u5728\u3059\u308b\u74b0\u5883<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ RoadRunner\u3067\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u4f8b\nuse Spiral\\RoadRunner\\Worker;\nuse Nyholm\\Psr7\\Factory\\Psr17Factory;\n\n$worker = Worker::create();\n$factory = new Psr17Factory();\n\nwhile ($req = $worker-&gt;waitRequest()) {\n    try {\n        \/\/ \u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\n        $resp = $factory-&gt;createResponse(200);\n        $resp-&gt;getBody()-&gt;write('Hello World!');\n        \n        $worker-&gt;respond($resp);\n    } catch (\\Throwable $e) {\n        $worker-&gt;error((string)$e);\n    }\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-174\">Swoole<\/h4>\n\n\n\n<p>Swoole\u306fPHP\u306e\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u3068\u3057\u3066\u5b9f\u88c5\u3055\u308c\u305f\u975e\u540c\u671f\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u578b\u306e\u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002<\/p>\n\n\n\n<p><strong>\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C\u8a00\u8a9e\u3067\u5b9f\u88c5\u3055\u308c\u305fPHP\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb<\/li>\n\n\n\n<li>\u30a4\u30d9\u30f3\u30c8\u30eb\u30fc\u30d7\u306b\u3088\u308b\u975e\u540c\u671f\u51e6\u7406<\/li>\n\n\n\n<li>\u30de\u30eb\u30c1\u30d7\u30ed\u30bb\u30b9\uff0b\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u30e2\u30c7\u30eb<\/li>\n<\/ul>\n\n\n\n<p><strong>\u4e3b\u306a\u7279\u5fb4\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6975\u3081\u3066\u9ad8\u3044\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\uff08PHP-FPM\u306e2-5\u500d\uff09<\/li>\n\n\n\n<li>WebSocket\u306a\u3069\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u901a\u4fe1\u306e\u76f4\u63a5\u30b5\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>\u30b3\u30eb\u30fc\u30c1\u30f3\u306b\u3088\u308b\u7c21\u6f54\u306a\u975e\u540c\u671f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0<\/li>\n<\/ul>\n\n\n\n<p><strong>PHP-FPM\u3068\u306e\u6bd4\u8f03\uff1a<\/strong><\/p>\n\n\n<div id=\"id-74a370a5-12f5-41d7-bb4b-26132a77635e\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>PHP-FPM<\/th><th>Swoole<\/th><\/tr><\/thead><tbody><tr><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/td><td>\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3<\/td><td>2-5\u500d\u9ad8\u901f<\/td><\/tr><tr><td>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/td><td>\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3<\/td><td>\u5927\u5e45\u306b\u524a\u6e1b<\/td><\/tr><tr><td>\u5b9f\u88c5\u306e\u8907\u96d1\u3055<\/td><td>\u5f93\u6765\u578b<\/td><td>\u975e\u540c\u671f\u601d\u8003\u304c\u5fc5\u8981<\/td><\/tr><tr><td>\u4e92\u63db\u6027<\/td><td>\u9ad8\u3044<\/td><td>\u4e2d\u7a0b\u5ea6<\/td><\/tr><tr><td>WebSocket<\/td><td>\u975e\u5bfe\u5fdc<\/td><td>\u30cd\u30a4\u30c6\u30a3\u30d6\u5bfe\u5fdc<\/td><\/tr><tr><td>\u30b9\u30c6\u30fc\u30c8\u30d5\u30eb<\/td><td>\u30ea\u30af\u30a8\u30b9\u30c8\u9593\u3067\u30b9\u30c6\u30fc\u30c8\u30ec\u30b9<\/td><td>\u30ea\u30af\u30a8\u30b9\u30c8\u9593\u3067\u30c7\u30fc\u30bf\u4fdd\u6301\u53ef\u80fd<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p><strong>\u6700\u9069\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30a6\u30a7\u30d6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>\u30c1\u30e3\u30c3\u30c8\u3084\u30b2\u30fc\u30e0\u30b5\u30fc\u30d0\u30fc<\/li>\n\n\n\n<li>\u5927\u91cf\u306eI\/O\u64cd\u4f5c\u3092\u5fc5\u8981\u3068\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Swoole\u3067\u306e\u30b7\u30f3\u30d7\u30eb\u306a\u30b5\u30fc\u30d0\u30fc\u4f8b\n$server = new Swoole\\HTTP\\Server('127.0.0.1', 9501);\n\n$server-&gt;on('start', function ($server) {\n    echo \"Swoole HTTP Server is started\\n\";\n});\n\n$server-&gt;on('request', function ($request, $response) {\n    $response-&gt;header('Content-Type', 'text\/html; charset=utf-8');\n    $response-&gt;end('&lt;h1&gt;Hello World&lt;\/h1&gt;');\n});\n\n$server-&gt;start();\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-175\">ReactPHP<\/h4>\n\n\n\n<p>ReactPHP\u306fPHP\u3067\u66f8\u304b\u308c\u305f\u975e\u540c\u671f\u30a4\u30d9\u30f3\u30c8\u30eb\u30fc\u30d7\u30e9\u30a4\u30d6\u30e9\u30ea\u3067\u3059\u3002<\/p>\n\n\n\n<p><strong>\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7d14\u7c8b\u306aPHP\u3067\u5b9f\u88c5\u3055\u308c\u305f\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u578b\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af<\/li>\n\n\n\n<li>Promise\u30d9\u30fc\u30b9\u306e\u975e\u540c\u671fAPI<\/li>\n\n\n\n<li>\u8ffd\u52a0\u306e\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u5fc5\u8981\u3068\u3057\u306a\u3044<\/li>\n<\/ul>\n\n\n\n<p><strong>\u4e3b\u306a\u7279\u5fb4\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6a19\u6e96\u306ePHP\u74b0\u5883\u3067\u52d5\u4f5c\uff08\u62e1\u5f35\u4e0d\u8981\uff09<\/li>\n\n\n\n<li>\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u578b\u306e\u975e\u540c\u671fI\/O<\/li>\n\n\n\n<li>\u67d4\u8edf\u306a\u69cb\u6210\u304c\u53ef\u80fd<\/li>\n<\/ul>\n\n\n\n<p><strong>PHP-FPM\u3068\u306e\u6bd4\u8f03\uff1a<\/strong><\/p>\n\n\n<div id=\"id-3714d24a-bccc-41d8-b387-f0a716e90415\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>PHP-FPM<\/th><th>ReactPHP<\/th><\/tr><\/thead><tbody><tr><td>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/td><td>\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3<\/td><td>\u6761\u4ef6\u306b\u3088\u308a\u5411\u4e0a<\/td><\/tr><tr><td>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/td><td>\u6a19\u6e96<\/td><td>Composer\u306e\u307f<\/td><\/tr><tr><td>\u5b66\u7fd2\u66f2\u7dda<\/td><td>\u7de9\u3084\u304b<\/td><td>\u4e2d\u7a0b\u5ea6<\/td><\/tr><tr><td>\u904b\u7528\u306e\u8907\u96d1\u3055<\/td><td>\u30b7\u30f3\u30d7\u30eb<\/td><td>\u3084\u3084\u8907\u96d1<\/td><\/tr><tr><td>Web\u30b5\u30fc\u30d0\u30fc\u7d71\u5408<\/td><td>\u76f4\u63a5\u7684<\/td><td>\u624b\u52d5\u8a2d\u5b9a\u304c\u5fc5\u8981<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p><strong>\u6700\u9069\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9577\u6642\u9593\u5b9f\u884c\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8<\/li>\n\n\n\n<li>WebSocket\u30b5\u30fc\u30d0\u30fc<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u51e6\u7406<\/li>\n\n\n\n<li>PHP\u62e1\u5f35\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u306a\u3044\u74b0\u5883<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ ReactPHP\u3067\u306eHTTP\u30b5\u30fc\u30d0\u30fc\u4f8b\n$loop = React\\EventLoop\\Factory::create();\n$server = new React\\Http\\Server(function (Psr\\Http\\Message\\ServerRequestInterface $request) {\n    return new React\\Http\\Message\\Response(\n        200,\n        ['Content-Type' =&gt; 'text\/plain'],\n        \"Hello World!\\n\"\n    );\n});\n\n$socket = new React\\Socket\\Server('127.0.0.1:8080', $loop);\n$server-&gt;listen($socket);\n\necho \"Server running at http:\/\/127.0.0.1:8080\\n\";\n\n$loop-&gt;run();\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-176\">Bref\uff08\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9PHP\uff09<\/h4>\n\n\n\n<p>Bref\u306fPHP\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092AWS Lambda\u306e\u3088\u3046\u306a\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u74b0\u5883\u3067\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3059\u3002<\/p>\n\n\n\n<p><strong>\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AWS Lambda\u306e\u30ab\u30b9\u30bf\u30e0\u30e9\u30f3\u30bf\u30a4\u30e0\u3092\u4f7f\u7528<\/li>\n\n\n\n<li>\u30b3\u30f3\u30c6\u30ca\u30d9\u30fc\u30b9\u306e\u5b9f\u884c\u74b0\u5883<\/li>\n\n\n\n<li>\u30a4\u30d9\u30f3\u30c8\u99c6\u52d5\u578b\u306e\u51e6\u7406\u30e2\u30c7\u30eb<\/li>\n<\/ul>\n\n\n\n<p><strong>\u4e3b\u306a\u7279\u5fb4\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b5\u30fc\u30d0\u30fc\u7ba1\u7406\u304c\u4e0d\u8981<\/li>\n\n\n\n<li>\u30bc\u30ed\u304b\u3089\u306e\u81ea\u52d5\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u5f93\u91cf\u8ab2\u91d1\u30e2\u30c7\u30eb<\/li>\n<\/ul>\n\n\n\n<p><strong>PHP-FPM\u3068\u306e\u6bd4\u8f03\uff1a<\/strong><\/p>\n\n\n<div id=\"id-5411b781-ce60-4e33-8338-4736048c5363\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u9805\u76ee<\/th><th>PHP-FPM<\/th><th>Bref (\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9)<\/th><\/tr><\/thead><tbody><tr><td>\u30a4\u30f3\u30d5\u30e9\u7ba1\u7406<\/td><td>\u5fc5\u8981<\/td><td>\u6700\u5c0f\u9650\/\u4e0d\u8981<\/td><\/tr><tr><td>\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0<\/td><td>\u624b\u52d5\u69cb\u6210\u304c\u5fc5\u8981<\/td><td>\u81ea\u52d5<\/td><\/tr><tr><td>\u30b3\u30b9\u30c8<\/td><td>\u56fa\u5b9a+\u5909\u52d5<\/td><td>\u7d14\u7c8b\u306a\u5f93\u91cf\u8ab2\u91d1<\/td><\/tr><tr><td>\u30b3\u30fc\u30eb\u30c9\u30b9\u30bf\u30fc\u30c8<\/td><td>\u306a\u3057<\/td><td>\u3042\u308a\uff08\u6570\u767ems\uff09<\/td><\/tr><tr><td>\u5b9f\u884c\u6642\u9593\u5236\u9650<\/td><td>\u8a2d\u5b9a\u53ef\u80fd<\/td><td>\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306b\u4f9d\u5b58\uff08\u901a\u5e3815\u5206\u4ee5\u5185\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p><strong>\u6700\u9069\u306a\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u5909\u52d5\u306e\u5927\u304d\u3044\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>API\u30b5\u30fc\u30d0\u30fc<\/li>\n\n\n\n<li>\u5b9a\u671f\u7684\u306a\u30d0\u30c3\u30c1\u51e6\u7406<\/li>\n\n\n\n<li>\u4f4e\u30b3\u30b9\u30c8\u3067\u904b\u7528\u3057\u305f\u3044\u5c0f\u898f\u6a21\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n<\/ul>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Bref\u3067\u306e\u30b7\u30f3\u30d7\u30eb\u306a\u95a2\u6570\u4f8b\n&lt;?php\n\nrequire __DIR__.'\/vendor\/autoload.php';\n\nreturn function ($event) {\n    return [\n        'statusCode' =&gt; 200,\n        'headers' =&gt; ['Content-Type' =&gt; 'application\/json'],\n        'body' =&gt; json_encode(['message' =&gt; 'Hello world!']),\n    ];\n};\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-177\">\u5b9f\u7528\u7684\u306a\u5c55\u671b\u3068\u6280\u8853\u9078\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u60c5\u5831\u3092\u8e0f\u307e\u3048\u3066\u3001\u5b9f\u52d9\u8005\u304cPHP-FPM\u3068\u305d\u306e\u4ee3\u66ff\u6280\u8853\u3092\u3069\u306e\u3088\u3046\u306b\u8a55\u4fa1\u3057\u3001\u9078\u629e\u3059\u3079\u304d\u304b\u306b\u3064\u3044\u3066\u8003\u5bdf\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-178\">\u77ed\u671f\u7684\u306a\u52d5\u5411\u3068\u5bfe\u5fdc\uff081-2\u5e74\uff09<\/h4>\n\n\n\n<p><strong>PHP-FPM\u306e\u7d99\u7d9a\u7684\u306a\u6539\u5584\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP 8.3\/8.4\u306e\u65b0\u6a5f\u80fd\u3078\u306e\u5bfe\u5fdc<\/li>\n\n\n\n<li>\u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u3067\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0API\u306e\u5f37\u5316<\/li>\n<\/ul>\n\n\n\n<p><strong>\u5b9f\u52d9\u8005\u306e\u5bfe\u5fdc\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PHP-FPM\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3078\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8<\/li>\n\n\n\n<li>\u30b3\u30f3\u30c6\u30ca\u30d9\u30fc\u30b9\u306e\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u3078\u306e\u79fb\u884c\u691c\u8a0e<\/li>\n\n\n\n<li>\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30aa\u30d6\u30b6\u30fc\u30d0\u30d3\u30ea\u30c6\u30a3\u306e\u5f37\u5316<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-179\">\u4e2d\u671f\u7684\u306a\u5c55\u671b\uff083-5\u5e74\uff09<\/h4>\n\n\n\n<p><strong>PHP\u5b9f\u884c\u74b0\u5883\u306e\u591a\u69d8\u5316\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RoadRunner\u3084Swoole\u306e\u666e\u53ca\u62e1\u5927<\/li>\n\n\n\n<li>\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9PHP\u306e\u6210\u719f<\/li>\n\n\n\n<li>JIT\u306e\u6700\u9069\u5316\u306b\u3088\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a<\/li>\n<\/ul>\n\n\n\n<p><strong>\u5b9f\u52d9\u8005\u306e\u5bfe\u5fdc\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306e\u4ee3\u66ff\u5b9f\u884c\u74b0\u5883\u306e\u691c\u8a0e<\/li>\n\n\n\n<li>\u975e\u540c\u671f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30b9\u30ad\u30eb\u306e\u7fd2\u5f97<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3078\u306e\u79fb\u884c\u691c\u8a0e<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-180\">\u6280\u8853\u9078\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/h4>\n\n\n\n<p><strong>1. \u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u57fa\u3065\u304f\u9078\u629e<\/strong><\/p>\n\n\n<div id=\"id-d9e61ba2-01e3-4273-a508-6a0a8aa346c7\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9<\/th><th>\u63a8\u5968\u5b9f\u884c\u74b0\u5883<\/th><\/tr><\/thead><tbody><tr><td>\u5f93\u6765\u578bWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/td><td>PHP-FPM<\/td><\/tr><tr><td>\u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30afAPI<\/td><td>RoadRunner \u307e\u305f\u306f Swoole<\/td><\/tr><tr><td>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/td><td>Swoole<\/td><\/tr><tr><td>\u5927\u91cfI\/O\u51e6\u7406<\/td><td>ReactPHP \u307e\u305f\u306f Swoole<\/td><\/tr><tr><td>\u5909\u52d5\u306e\u5927\u304d\u3044\u30ef\u30fc\u30af\u30ed\u30fc\u30c9<\/td><td>Bref\uff08\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p><strong>2. \u30c1\u30fc\u30e0\u306e\u30b9\u30ad\u30eb\u30bb\u30c3\u30c8<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u65e2\u5b58\u30b9\u30ad\u30eb\u3068\u306e\u4e92\u63db\u6027<\/li>\n\n\n\n<li>\u5b66\u7fd2\u66f2\u7dda\u3068\u5c0e\u5165\u30b3\u30b9\u30c8<\/li>\n\n\n\n<li>\u9577\u671f\u7684\u306a\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u80fd\u529b<\/li>\n<\/ul>\n\n\n\n<p><strong>3. \u904b\u7528\u74b0\u5883\u306e\u5236\u7d04<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30db\u30b9\u30c6\u30a3\u30f3\u30b0\u74b0\u5883\u306e\u5236\u9650<\/li>\n\n\n\n<li>\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u8981\u4ef6<\/li>\n\n\n\n<li>\u30b3\u30b9\u30c8\u69cb\u9020<\/li>\n<\/ul>\n\n\n\n<p><strong>4. \u79fb\u884c\u6226\u7565<\/strong><\/p>\n\n\n\n<p>\u5b8c\u5168\u306b\u65b0\u3057\u3044\u5b9f\u884c\u74b0\u5883\u306b\u79fb\u884c\u3059\u308b\u5834\u5408\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u691c\u8a0e\u3059\u3079\u304d\u3067\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30a4\u30ed\u30c3\u30c8\u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/strong>\uff1a\u65b0\u898f\u306e\u5c0f\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4ee3\u66ff\u6280\u8853\u3092\u8a66\u7528<\/li>\n\n\n\n<li><strong>\u6bb5\u968e\u7684\u79fb\u884c<\/strong>\uff1a\u65e2\u5b58\u30b7\u30b9\u30c6\u30e0\u306e\u4e00\u90e8\u6a5f\u80fd\u304b\u3089\u9806\u6b21\u79fb\u884c<\/li>\n\n\n\n<li><strong>\u4e26\u884c\u904b\u7528<\/strong>\uff1a\u8907\u6570\u306e\u5b9f\u884c\u74b0\u5883\u3092\u7528\u9014\u306b\u5fdc\u3058\u3066\u9069\u6750\u9069\u6240\u3067\u4f7f\u7528<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-181\">\u4eca\u5f8c\u3082\u91cd\u8981\u6027\u3092\u4fdd\u3064PHP-FPM<\/h4>\n\n\n\n<p>\u65b0\u3057\u3044\u5b9f\u884c\u74b0\u5883\u306e\u53f0\u982d\u306b\u3082\u304b\u304b\u308f\u3089\u305a\u3001PHP-FPM\u306f\u4ee5\u4e0b\u306e\u7406\u7531\u304b\u3089\u4eca\u5f8c\u3082\u91cd\u8981\u306a\u7acb\u3061\u4f4d\u7f6e\u3092\u7dad\u6301\u3059\u308b\u3067\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5e83\u7bc4\u306a\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u306e\u30b5\u30dd\u30fc\u30c8<\/strong>\uff1a\u4e3b\u8981\u306a\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3084\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u6700\u9069\u5316\u3055\u308c\u3066\u3044\u308b<\/li>\n\n\n\n<li><strong>\u904b\u7528\u306e\u5bb9\u6613\u3055<\/strong>\uff1a\u8a2d\u5b9a\u3068\u904b\u7528\u304c\u6bd4\u8f03\u7684\u30b7\u30f3\u30d7\u30eb<\/li>\n\n\n\n<li><strong>\u5b89\u5b9a\u6027\u3068\u6210\u719f\u5ea6<\/strong>\uff1a\u9577\u5e74\u306e\u5b9f\u7e3e\u306b\u3088\u308b\u4fe1\u983c\u6027<\/li>\n\n\n\n<li><strong>\u30db\u30b9\u30c6\u30a3\u30f3\u30b0\u30d7\u30ed\u30d0\u30a4\u30c0\u306e\u5e83\u7bc4\u306a\u30b5\u30dd\u30fc\u30c8<\/strong>\uff1a\u4e8b\u5b9f\u4e0a\u306e\u30b9\u30bf\u30f3\u30c0\u30fc\u30c9\u3068\u3057\u3066\u652f\u6301\u3055\u308c\u3066\u3044\u308b<\/li>\n<\/ol>\n\n\n\n<p>PHP-FPM\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u3082\u3001\u4eca\u5f8c\u306e\u52d5\u5411\u3092\u898b\u636e\u3048\u305f\u6e96\u5099\u304c\u91cd\u8981\u3067\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u975e\u540c\u671f\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30e2\u30c7\u30eb\u306b\u5bfe\u5fdc\u3057\u305f\u30b3\u30fc\u30c9\u306e\u8a18\u8ff0<\/li>\n\n\n\n<li>\u30b3\u30f3\u30c6\u30ca\u30d9\u30fc\u30b9\u306e\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u3078\u306e\u79fb\u884c<\/li>\n\n\n\n<li>\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u63a1\u7528\u691c\u8a0e<\/li>\n\n\n\n<li>\u52b9\u679c\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30aa\u30d6\u30b6\u30fc\u30d0\u30d3\u30ea\u30c6\u30a3\u306e\u5c0e\u5165<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-182\">\u307e\u3068\u3081<\/h3>\n\n\n\n<p>PHP-FPM\u306f\u6210\u719f\u3057\u305f\u6280\u8853\u3068\u3057\u3066\u591a\u304f\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u652f\u3048\u3066\u3044\u307e\u3059\u304c\u3001PHP\u306e\u9032\u5316\u3068\u65b0\u3057\u3044\u5b9f\u884c\u74b0\u5883\u306e\u767b\u5834\u306b\u3088\u308a\u3001\u305d\u306e\u5f79\u5272\u306f\u5909\u5316\u3057\u3064\u3064\u3042\u308a\u307e\u3059\u3002RoadRunner\u3001Swoole\u3001ReactPHP\u3001Bref\u306a\u3069\u306e\u4ee3\u66ff\u6280\u8853\u306f\u3001\u7279\u5b9a\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u306b\u304a\u3044\u3066\u512a\u308c\u305f\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u305d\u308c\u305e\u308c\u306b\u9577\u6240\u3068\u77ed\u6240\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u5b9f\u52d9\u8005\u306f\u81ea\u8eab\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8981\u4ef6\u3001\u30c1\u30fc\u30e0\u30b9\u30ad\u30eb\u3001\u904b\u7528\u74b0\u5883\u3092\u8003\u616e\u3057\u3066\u3001\u9069\u5207\u306a\u6280\u8853\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002PHP-FPM\u306f\u305d\u306e\u5b89\u5b9a\u6027\u3068\u6210\u719f\u5ea6\u304b\u3089\u3001\u4eca\u5f8c\u3082\u591a\u304f\u306e\u5834\u9762\u3067\u6709\u7528\u3067\u3042\u308a\u7d9a\u3051\u308b\u3067\u3057\u3087\u3046\u304c\u3001\u65b0\u305f\u306a\u8981\u4ef6\u3084\u8ab2\u984c\u306b\u5bfe\u5fdc\u3059\u308b\u305f\u3081\u306b\u3001\u4ee3\u66ff\u6280\u8853\u306b\u3064\u3044\u3066\u3082\u7406\u89e3\u3092\u6df1\u3081\u3066\u304a\u304f\u3053\u3068\u304c\u8ce2\u660e\u3067\u3059\u3002<\/p>\n\n\n\n<p>PHP\u3068\u305d\u306e\u30a8\u30b3\u30b7\u30b9\u30c6\u30e0\u306f\u300130\u5e74\u8fd1\u3044\u6b74\u53f2\u306e\u4e2d\u3067\u5e38\u306b\u9032\u5316\u3057\u7d9a\u3051\u3066\u304d\u307e\u3057\u305f\u3002\u305d\u306e\u67d4\u8edf\u6027\u3068\u9069\u5fdc\u6027\u304c\u3001\u3053\u308c\u304b\u3089\u3082Web\u306e\u9032\u5316\u306b\u5408\u308f\u305b\u3066\u5909\u5316\u3057\u3066\u3044\u304f\u3053\u3068\u3067\u3057\u3087\u3046\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":{"0":"post-3401","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3401","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3401"}],"version-history":[{"count":3,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3401\/revisions"}],"predecessor-version":[{"id":3404,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3401\/revisions\/3404"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3401"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3401"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3401"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}