{"id":1235,"date":"2024-08-08T15:48:04","date_gmt":"2024-08-08T06:48:04","guid":{"rendered":"https:\/\/shinke1987.net\/?p=1235"},"modified":"2024-08-08T15:48:04","modified_gmt":"2024-08-08T06:48:04","slug":"gaephp%e3%81%ae%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e9%96%8b%e7%99%ba%e7%94%a8%e3%82%b5%e3%83%bc%e3%83%90%e3%82%92%e6%a7%8b%e7%af%89","status":"publish","type":"post","link":"https:\/\/shinke1987.net\/?p=1235","title":{"rendered":"GAE(PHP)\u306e\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u7528\u30b5\u30fc\u30d0\u3092\u69cb\u7bc9"},"content":{"rendered":"\n<h2 id=\"toc0\" class=\"wp-block-heading\">\u76ee\u7684<\/h2>\n\n\n\n<p>GAE(PHP)\u306e\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u7528\u30b5\u30fc\u30d0\u3092\u69cb\u7bc9\u3059\u308b\u3002<\/p>\n\n\n\n<h2 id=\"toc1\" class=\"wp-block-heading\">\u524d\u63d0<\/h2>\n\n\n\n<p>\u65e2\u306b\u30c7\u30d7\u30ed\u30a4\u307e\u3067\u306f\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u6e08\u307f\u3067\u3042\u308b\u3053\u3068\u3002<\/p>\n\n\n\n<p>\u30ed\u30fc\u30ab\u30eb\u74b0\u5883 \u2192 OS\uff1amacOS 14.5 sonoma<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u524d\u56de\u306e\u5185\u5bb9\u306f\u3053\u3061\u3089\u3002<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-shinke-1987-net wp-block-embed-shinke-1987-net\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"QbhyCsB37a\"><a href=\"https:\/\/shinke1987.net\/?p=1231\">GAE(PHP)\u306e\u52d5\u4f5c\u78ba\u8a8d<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;GAE(PHP)\u306e\u52d5\u4f5c\u78ba\u8a8d&#8221; &#8212; shinke1987.net\" src=\"https:\/\/shinke1987.net\/?p=1231&#038;embed=true#?secret=LjlC0Ci7oK#?secret=QbhyCsB37a\" data-secret=\"QbhyCsB37a\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 id=\"toc2\" class=\"wp-block-heading\">\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30a2\u30af\u30bb\u30b9\u8a8d\u8a3c\u60c5\u5831\u3092\u53d6\u5f97<\/h2>\n\n\n\n<p>\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% gcloud auth login\n<\/pre><\/div>\n\n\n<p>\u3059\u308b\u3068\u3001Google\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u9078\u629e\u3059\u308b\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u3001\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u9078\u629e\u3059\u308b\u3002<\/p>\n\n\n\n<h2 id=\"toc3\" class=\"wp-block-heading\">API\u30a2\u30af\u30bb\u30b9\u7528\u306e\u8a8d\u8a3c\u60c5\u5831\u306e\u4f7f\u7528\u3092\u4e00\u6642\u7684\u306b\u8a31\u53ef\u3059\u308b<\/h2>\n\n\n\n<p>\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% gcloud auth application-default login\n<\/pre><\/div>\n\n\n<p>\u3059\u308b\u3068\u3001Google\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u9078\u629e\u3059\u308b\u753b\u9762\u304c\u8868\u793a\u3055\u308c\u308b\u306e\u3067\u3001\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u9078\u629e\u3059\u308b\u3002<\/p>\n\n\n\n<h2 id=\"toc4\" class=\"wp-block-heading\">\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u7528\u30b5\u30fc\u30d0\u3092\u8d77\u52d5<\/h2>\n\n\n\n<p>\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% python3 google-cloud-sdk\u306e\u30d1\u30b9\/bin\/dev_appserver.py --application=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8ID app.yaml\n<\/pre><\/div>\n\n\n<p>\u3059\u308b\u3068\u4e0b\u8a18\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u304c\u8868\u793a\u3055\u308c\u305f\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nThis action requires the installation of components: &#x5B;app-engine-\npython, cloud-datastore-emulator]\n  \n\nYour current Google Cloud CLI version is: 487.0.0\nInstalling components from version: 487.0.0\n\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502             These components will be installed.              \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502                   Name                  \u2502 Version \u2502   Size   \u2502\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 Cloud Datastore Emulator                \u2502   2.3.1 \u2502 36.2 MiB \u2502\n\u2502 gRPC Python library (Platform Specific) \u2502  1.20.0 \u2502  1.9 MiB \u2502\n\u2502 gcloud app Python Extensions            \u2502 1.9.113 \u2502  5.0 MiB \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \nFor the latest full release notes, please visit:\n  https:\/\/cloud.google.com\/sdk\/release_notes\n\nOnce started, canceling this operation may leave your SDK installation in an inconsistent state.\n\nDo you want to continue (Y\/n)?  Y\n\nPerforming in place update...\n\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2560\u2550 Downloading: Cloud Datastore Emulator                    \u2550\u2563\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2560\u2550 Downloading: gRPC Python library                         \u2550\u2563\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2560\u2550 Downloading: gRPC Python library (Platform Specific)     \u2550\u2563\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2560\u2550 Downloading: gcloud app Python Extensions                \u2550\u2563\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2560\u2550 Installing: Cloud Datastore Emulator                     \u2550\u2563\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2560\u2550 Installing: gRPC Python library                          \u2550\u2563\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2560\u2550 Installing: gRPC Python library (Platform Specific)      \u2550\u2563\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2560\u2550 Installing: gcloud app Python Extensions                 \u2550\u2563\n\u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\n\nPerforming post processing steps...done.\n\nUpdate done!\n\nRestarting command:\n  $ dev_appserver.py --application=gae-test-431804 app.yaml\n\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/google\/appengine\/api\/datastore.py:1307: SyntaxWarning: invalid escape sequence &#039;\\s&#039;\n  &#039;^\\s*(&#x5B;^\\s]+)(\\s+(%s)\\s*)?$&#039; % &#039;|&#039;.join(OPERATORS),\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/google\/appengine\/_internal\/antlr3\/recognizers.py:511: SyntaxWarning: invalid escape sequence &#039;\\&amp;lt;&#039;\n  &quot;&quot;&quot;\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/lib\/webapp2\/webapp2\/__init__.py:897: SyntaxWarning: invalid escape sequence &#039;\\d&#039;\n  &quot;&quot;&quot;Initializes this route.\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/lib\/cherrypy\/cherrypy\/lib\/httputil.py:30: SyntaxWarning: invalid escape sequence &#039;\\*&#039;\n  &quot;&quot;&quot;Return the given path \\*atoms, joined into a single URL.\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/lib\/cherrypy\/cherrypy\/_cpreqbody.py:317: SyntaxWarning: invalid escape sequence &#039;\\*&#039;\n  &quot;&quot;&quot;A list of strings, each of which should be a known encoding.\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/lib\/cherrypy\/cherrypy\/_cpreqbody.py:531: SyntaxWarning: invalid escape sequence &#039;\\*&#039;\n  &quot;&quot;&quot;A list of strings, each of which should be a known encoding.\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/lib\/cherrypy\/cherrypy\/process\/wspbus.py:1: SyntaxWarning: invalid escape sequence &#039;\\_&#039;\n  &quot;&quot;&quot;An implementation of the Web Site Process Bus.\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/lib\/cherrypy\/cherrypy\/process\/servers.py:1: SyntaxWarning: invalid escape sequence &#039;\\ &#039;\n  &quot;&quot;&quot;\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/google\/appengine\/ext\/db\/__init__.py:281: SyntaxWarning: invalid escape sequence &#039;\\s&#039;\n  &#039;^\\s*(&#x5B;^\\s]+)(\\s+(%s)\\s*)?$&#039; % &#039;|&#039;.join(_OPERATORS),\n\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/lib\/py3_antlr3\/antlr3\/recognizers.py:516: SyntaxWarning: invalid escape sequence &#039;\\&amp;lt;&#039;\n  &quot;&quot;&quot;\nINFO     2024-08-08 03:47:12,993 &amp;lt;string&gt;:316] Skipping SDK update check.\nWARNING  2024-08-08 03:47:12,993 &amp;lt;string&gt;:325] The default encoding of your local Python interpreter is set to &#039;utf-8&#039; while App Engine&#039;s production environment uses &#039;ascii&#039;; as a result your code may behave differently when deployed.\nTraceback (most recent call last):\n  File &quot;\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/dev_appserver.py&quot;, line 103, in &amp;lt;module&gt;\n    _run_file(__file__, globals())\n  File &quot;\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/dev_appserver.py&quot;, line 99, in _run_file\n    _execfile(_PATHS.script_file(script_name), globals_)\n  File &quot;\/Users\/Mac\u306e\u30e6\u30fc\u30b6\u540d\/Development\/GoogleAppEngine\/google-cloud-sdk\/platform\/google_appengine\/dev_appserver.py&quot;, line 81, in _execfile\n    exec(open(fn).read(), scope)\n  File &quot;&amp;lt;string&gt;&quot;, line 638, in &amp;lt;module&gt;\n  File &quot;&amp;lt;string&gt;&quot;, line 626, in main\n  File &quot;&amp;lt;string&gt;&quot;, line 339, in start\nPhpPathError: For php83, --php_executable_path must be specified.\n<\/pre><\/div>\n\n\n<p>&#8211;php_executable_path \u3092\u8a2d\u5b9a\u3057\u3066\u306d\u3001\u3063\u3066\u5185\u5bb9\u306a\u306e\u3067\u8a2d\u5b9a\u3059\u308b\u3002<\/p>\n\n\n\n<p>\u3053\u3053\u3067\u8a2d\u5b9a\u3059\u308b\u306e\u306f\u30ed\u30fc\u30ab\u30eb\u306ePHP\u306e\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb\u306a\u306e\u3067\u3001\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3067\u5834\u6240\u3092\u78ba\u8a8d\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% whereis php\n<\/pre><\/div>\n\n\n<p><\/p>\n\n\n\n<p>\u78ba\u8a8d\u3057\u305fPHP\u306e\u5b9f\u884c\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u3066\u518d\u5ea6\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% python3 google-cloud-sdk\u306e\u30d1\u30b9\/bin\/dev_appserver.py --php_executable_path=\/opt\/homebrew\/bin\/php --application=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8ID app.yaml\n<\/pre><\/div>\n\n\n<p><\/p>\n\n\n\n<p>\u3059\u308b\u3068\u4e0b\u8a18\u306e\u30a8\u30e9\u30fc\u304c\u6700\u7d42\u7684\u306b\u8868\u793a\u3055\u308c\u305f\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n    raise RuntimeError(\nRuntimeError: Unknown runtime &#039;php83&#039;; supported runtimes are &#039;go119&#039;, &#039;go120&#039;, &#039;go121&#039;, &#039;go122&#039;, &#039;php81&#039;, &#039;php82&#039;, &#039;python310&#039;, &#039;python311&#039;, &#039;python312&#039;, &#039;python38&#039;, &#039;python39&#039;.\n<\/pre><\/div>\n\n\n<p><\/p>\n\n\n\n<p>app.yaml \u3067php83\u3092runtime\u306b\u6307\u5b9a\u3057\u3066\u3044\u308b\u304b\u3089\u3060\u3068\u601d\u3046\u306e\u3067\u3001\u6700\u65b0\u7248\u3092\u4f7f\u3048\u306a\u3044\u306e\u306f\u6b8b\u5ff5\u3060\u3051\u3069PHP8.2\u3092\u4f7f\u3046\u3088\u3046app.yaml \u3092\u4fee\u6b63\u3057\u3066\u518d\u5ea6\u5b9f\u884c\u3059\u308b\u3002<br><br>\u4e0b\u8a18\u306e\u3088\u3046\u306b\u8868\u793a\u3055\u308c\u305f\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nINFO     2024-08-08 03:59:50,438 &amp;lt;string&gt;:316] Skipping SDK update check.\nWARNING  2024-08-08 03:59:50,439 &amp;lt;string&gt;:325] The default encoding of your local Python interpreter is set to &#039;utf-8&#039; while App Engine&#039;s production environment uses &#039;ascii&#039;; as a result your code may behave differently when deployed.\nINFO     2024-08-08 03:59:50,915 &amp;lt;string&gt;:391] Starting API server at: http:\/\/localhost:53848\nINFO     2024-08-08 03:59:51,041 dispatcher.py:267] Starting module &quot;default&quot; running at: http:\/\/localhost:8080\nINFO     2024-08-08 03:59:51,044 admin_server.py:67] Starting admin server at: http:\/\/localhost:8000\n&#x5B;Thu Aug  8 12:59:53 2024] PHP 8.3.7 Development Server (http:\/\/localhost:53851) started\nINFO     2024-08-08 03:59:54,074 instance.py:293] Instance PID: 12827\n&#x5B;Thu Aug  8 12:59:54 2024] 127.0.0.1:53856 Accepted\n&#x5B;Thu Aug  8 12:59:54 2024] 127.0.0.1:53856 Closed without sending a request; it was probably just an unused speculative preconnection\n&#x5B;Thu Aug  8 12:59:54 2024] 127.0.0.1:53856 Closing\n<\/pre><\/div>\n\n\n<p><\/p>\n\n\n\n<p>Web\u30d6\u30e9\u30a6\u30b6\u3067\u78ba\u8a8d\u3059\u308b\u3068\u3001http:\/\/localhost:8000&nbsp;\u306f\u8868\u793a\u53ef\u80fd\u3060\u304c\u3001<\/p>\n\n\n\n<p>http:\/\/localhost:8080&nbsp;\u306f\u7e4b\u304c\u3089\u306a\u304b\u3063\u305f\u306e\u3067\u3001\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u5909\u66f4\u3059\u308b\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u30dd\u30fc\u30c8\u756a\u53f7\u30929999\u306b\u5909\u66f4\u4e88\u5b9a\u3060\u304c\u3001\u4f7f\u308f\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u306b\u306f\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% lsof -i:9999\n<\/pre><\/div>\n\n\n<p>\u5b9f\u884c\u5f8c\u3001\u4f55\u3082\u8868\u793a\u3055\u308c\u306a\u3051\u308c\u3070\u4f7f\u308f\u308c\u3066\u3044\u306a\u3044\u3002<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u30dd\u30fc\u30c8\u756a\u53f7\u3092\u5909\u66f4\u3057\u3066\u3001\u518d\u5ea6\u958b\u767a\u7528\u30b5\u30fc\u30d0\u3092\u8d77\u52d5\u3059\u308b\u305f\u3081\u306b\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\n% python3 google-cloud-sdk\u306e\u30d1\u30b9\/bin\/dev_appserver.py --php_executable_path=\/opt\/homebrew\/bin\/php --application=\u30d7\u30ed\u30b8\u30a7\u30af\u30c8ID --port=9999 app.yaml\n<\/pre><\/div>\n\n\n<p>\u4e0b\u8a18\u306e\u3088\u3046\u306b\u8868\u793a\u3055\u308c\u305f\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nINFO     2024-08-08 04:18:55,258 &amp;lt;string&gt;:316] Skipping SDK update check.\nWARNING  2024-08-08 04:18:55,258 &amp;lt;string&gt;:325] The default encoding of your local Python interpreter is set to &#039;utf-8&#039; while App Engine&#039;s production environment uses &#039;ascii&#039;; as a result your code may behave differently when deployed.\nINFO     2024-08-08 04:18:55,664 &amp;lt;string&gt;:391] Starting API server at: http:\/\/localhost:54142\nINFO     2024-08-08 04:18:55,757 dispatcher.py:267] Starting module &quot;default&quot; running at: http:\/\/localhost:9999\nINFO     2024-08-08 04:18:55,760 admin_server.py:67] Starting admin server at: http:\/\/localhost:8000\n&#x5B;Thu Aug  8 13:18:56 2024] PHP 8.3.7 Development Server (http:\/\/localhost:54145) started\nINFO     2024-08-08 04:18:57,787 instance.py:293] Instance PID: 13171\n&#x5B;Thu Aug  8 13:18:57 2024] &#x5B;::1]:54148 Accepted\n&#x5B;Thu Aug  8 13:18:57 2024] &#x5B;::1]:54148 Closed without sending a request; it was probably just an unused speculative preconnection\n&#x5B;Thu Aug  8 13:18:57 2024] &#x5B;::1]:54148 Closing\n<\/pre><\/div>\n\n\n<p>\u3053\u306e\u72b6\u614b\u3067\u4e0b\u8a18\u306e\u30a2\u30c9\u30ec\u30b9\u3078Chrome\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3057\u3066\u307f\u308b\u3068\u3001\u4e0b\u8a183\u30ab\u6240\u5168\u3066\u30a2\u30af\u30bb\u30b9\u3067\u304d\u305f\u3002<br>http:\/\/localhost:54142<br>http:\/\/localhost:9999<br>http:\/\/localhost:8000<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u8a66\u3057\u306bindex.php\u306e\u5185\u5bb9\u3092\u6b21\u306e\u3088\u3046\u306b\u5909\u66f4\u3059\u308b\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\necho &lt;&lt;&lt;EOF\n&lt;html&gt;\n  &lt;head&gt;\n    &lt;title&gt;index.php&lt;\/title&gt;\n  &lt;\/head&gt;\n  &lt;body&gt;\n    aiueo\n  &lt;\/body&gt;\n&lt;\/html&gt;\nEOF;\n<\/pre><\/div>\n\n\n<p>\u305d\u308c\u304b\u3089http:\/\/localhost:9999\u00a0\u3078\u30a2\u30af\u30bb\u30b9\u3057\u5909\u66f4\u304c\u53cd\u6620\u3055\u308c\u3066\u3044\u308c\u3070\u3001<br>\u3072\u3068\u307e\u305a\u958b\u767a\u7528\u30b5\u30fc\u30d0\u306f\u8d77\u52d5\u3067\u304d\u305f\u3053\u3068\u306b\u306a\u308b\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u76ee\u7684 GAE(PHP)\u306e\u30ed\u30fc\u30ab\u30eb\u958b\u767a\u7528\u30b5\u30fc\u30d0\u3092\u69cb\u7bc9\u3059\u308b\u3002 \u524d\u63d0 \u65e2\u306b\u30c7\u30d7\u30ed\u30a4\u307e\u3067\u306f\u3067\u304d\u308b\u3053\u3068\u3092\u78ba\u8a8d\u6e08\u307f\u3067\u3042\u308b\u3053\u3068\u3002 \u30ed\u30fc\u30ab\u30eb\u74b0\u5883 \u2192 OS\uff1amacOS 14.5 sonoma \u524d\u56de\u306e\u5185\u5bb9\u306f\u3053\u3061\u3089\u3002 \u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u30a2\u30af\u30bb\u30b9\u8a8d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[118,80],"tags":[119],"class_list":["post-1235","post","type-post","status-publish","format-standard","hentry","category-gcp","category-php","tag-gae"],"_links":{"self":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts\/1235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1235"}],"version-history":[{"count":8,"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts\/1235\/revisions"}],"predecessor-version":[{"id":1243,"href":"https:\/\/shinke1987.net\/index.php?rest_route=\/wp\/v2\/posts\/1235\/revisions\/1243"}],"wp:attachment":[{"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shinke1987.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}