{"id":3288,"date":"2025-03-24T08:46:31","date_gmt":"2025-03-23T23:46:31","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=3288"},"modified":"2025-03-24T08:47:01","modified_gmt":"2025-03-23T23:47:01","slug":"%e3%80%902024%e5%b9%b4%e6%9c%80%e6%96%b0%e3%80%91laravel-10%e3%81%ae%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%82%92%e6%9c%80%e9%80%9f%e3%81%a7%e5%ae%8c%e4%ba%86%e3%81%99%e3%82%8b%e5%ae%8c%e5%85%a8","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=3288","title":{"rendered":"\u30102024\u5e74\u6700\u65b0\u3011Laravel 10\u306e\u74b0\u5883\u69cb\u7bc9\u3092\u6700\u901f\u3067\u5b8c\u4e86\u3059\u308b\u5b8c\u5168\u30ac\u30a4\u30c9"},"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\">Laravel\u306e\u74b0\u5883\u69cb\u7bc9\u3067\u5931\u6557\u3057\u306a\u3044\u305f\u3081\u306e\u57fa\u790e\u77e5\u8b58<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">\u74b0\u5883\u69cb\u7bc9\u306b\u5fc5\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u5f79\u5272\u3092\u7406\u89e3\u3057\u3088\u3046<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">Docker\u3068Laravel\u306e\u76f8\u6027\u304c\u629c\u7fa4\u306a\u7406\u7531<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-3\">Docker\u74b0\u5883\u3067\u306eLaravel\u69cb\u7bc9\u624b\u9806<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-4\">docker-compose.yml\u306e\u4f5c\u6210\u3068\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>      <li>        <a href=\"#i-5\">Laravel\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u521d\u671f\u5316\u3068\u57fa\u672c\u8a2d\u5b9a<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">\u958b\u767a\u306b\u4fbf\u5229\u306a\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-7\">\u5f93\u6765\u306eLAMP\u74b0\u5883\u3067\u306eLaravel\u69cb\u7bc9\u624b\u9806<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-8\">\u5fc5\u8981\u306a\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a<\/a>      <\/li>      <li>        <a href=\"#i-9\">Composer\u3092\u4f7f\u7528\u3057\u305fLaravel\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-10\">Apache\/Nginx\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u8a2d\u5b9a<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-11\">\u958b\u767a\u74b0\u5883\u69cb\u7bc9\u5f8c\u306e\u52d5\u4f5c\u78ba\u8a8d\u3068\u8a2d\u5b9a<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-12\">\u6b63\u5e38\u306a\u52d5\u4f5c\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/a>      <\/li>      <li>        <a href=\"#i-13\">\u958b\u767a\u52b9\u7387\u3092\u4e0a\u3052\u308bIDE\/\u30a8\u30c7\u30a3\u30bf\u306e\u8a2d\u5b9a<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-14\">\u30c7\u30d0\u30c3\u30b0\u30c4\u30fc\u30eb\u306e\u5c0e\u5165\u3068\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-15\">\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u65b9\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-16\">\u6a29\u9650\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3068\u305d\u306e\u5bfe\u51e6\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-17\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30a8\u30e9\u30fc\u306e\u89e3\u6c7a\u624b\u9806<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-18\">\u30e1\u30e2\u30ea\u4e0d\u8db3\u30a8\u30e9\u30fc\u3078\u306e\u5bfe\u5fdc\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-19\">\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883\u3092\u898b\u636e\u3048\u305f\u74b0\u5883\u69cb\u7bc9\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-20\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u30c1\u30a7\u30c3\u30af\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>      <li>        <a href=\"#i-21\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6700\u9069\u5316\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-22\">CI\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a\u3092\u60f3\u5b9a\u3057\u305f\u69cb\u6210\u306e\u30dd\u30a4\u30f3\u30c8<\/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\">Laravel\u306e\u74b0\u5883\u69cb\u7bc9\u3067\u5931\u6557\u3057\u306a\u3044\u305f\u3081\u306e\u57fa\u790e\u77e5\u8b58<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">\u74b0\u5883\u69cb\u7bc9\u306b\u5fc5\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u5f79\u5272\u3092\u7406\u89e3\u3057\u3088\u3046<\/h3>\n\n\n\n<p>Laravel\u306e\u74b0\u5883\u69cb\u7bc9\u3092\u6210\u529f\u3055\u305b\u308b\u305f\u3081\u306b\u306f\u3001\u5404\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u5f79\u5272\u3092\u6b63\u3057\u304f\u7406\u89e3\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u4ee5\u4e0b\u306e\u8981\u7d20\u306b\u3064\u3044\u3066\u3001\u305d\u308c\u305e\u308c\u306e\u5f79\u5272\u3068\u91cd\u8981\u6027\u3092\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>1. \u5fc5\u9808\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/strong><\/p>\n\n\n<div id=\"id-5aced99d-e2d2-4d42-93f0-50db48abbeab\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/th><th>\u5f79\u5272<\/th><th>\u6700\u5c0f\u8981\u4ef6\uff08Laravel 10\uff09<\/th><\/tr><\/thead><tbody><tr><td>PHP<\/td><td>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c\u74b0\u5883<\/td><td>PHP 8.1\u4ee5\u4e0a<\/td><\/tr><tr><td>Composer<\/td><td>PHP\u306e\u4f9d\u5b58\u95a2\u4fc2\u7ba1\u7406\u30c4\u30fc\u30eb<\/td><td>\u6700\u65b0\u7248\u63a8\u5968<\/td><\/tr><tr><td>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9<\/td><td>\u30c7\u30fc\u30bf\u306e\u6c38\u7d9a\u5316<\/td><td>MySQL 5.7\u4ee5\u4e0a\/PostgreSQL 10.0\u4ee5\u4e0a<\/td><\/tr><tr><td>Web\u30b5\u30fc\u30d0\u30fc<\/td><td>HTTP\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406<\/td><td>Apache\/Nginx<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p><strong>2. \u958b\u767a\u306b\u5fc5\u8981\u306a\u30c4\u30fc\u30eb<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PHP\u62e1\u5f35\u30e2\u30b8\u30e5\u30fc\u30eb<\/strong><\/li>\n\n\n\n<li>BCMath PHP Extension<\/li>\n\n\n\n<li>Ctype PHP Extension<\/li>\n\n\n\n<li>JSON PHP Extension<\/li>\n\n\n\n<li>Mbstring PHP Extension<\/li>\n\n\n\n<li>OpenSSL PHP Extension<\/li>\n\n\n\n<li>PDO PHP Extension<\/li>\n\n\n\n<li>Tokenizer PHP Extension<\/li>\n\n\n\n<li>XML PHP Extension<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u62e1\u5f35\u6a5f\u80fd\u306f\u3001Laravel\u306e\u57fa\u672c\u6a5f\u80fd\u3092\u652f\u3048\u308b\u91cd\u8981\u306a\u8981\u7d20\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">Docker\u3068Laravel\u306e\u76f8\u6027\u304c\u629c\u7fa4\u306a\u7406\u7531<\/h3>\n\n\n\n<p>Docker\u3092\u4f7f\u7528\u3057\u305fLaravel\u74b0\u5883\u69cb\u7bc9\u304c\u63a8\u5968\u3055\u308c\u308b\u7406\u7531\u306b\u3064\u3044\u3066\u3001\u4e3b\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>1. \u74b0\u5883\u306e\u4e00\u8cab\u6027<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u958b\u767a\u30c1\u30fc\u30e0\u5168\u54e1\u304c\u540c\u3058\u74b0\u5883\u3067\u958b\u767a\u53ef\u80fd<\/li>\n\n\n\n<li>\u300c\u81ea\u5206\u306e\u74b0\u5883\u3067\u306f\u52d5\u304f\u306e\u306b\u300d\u3068\u3044\u3046\u554f\u984c\u3092\u89e3\u6d88<\/li>\n\n\n\n<li>\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u304c\u5bb9\u6613<\/li>\n<\/ul>\n\n\n\n<p><strong>2. \u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3068\u306e\u89aa\u548c\u6027<\/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=\"\">graph LR\n    A[Nginx] --&gt; B[PHP-FPM]\n    B --&gt; C[Laravel App]\n    C --&gt; D[MySQL]\n    C --&gt; E[Redis]<\/pre>\n\n\n\n<p><strong>3. \u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3068\u30dd\u30fc\u30bf\u30d3\u30ea\u30c6\u30a3<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30b5\u30fc\u30d3\u30b9\u306e\u8ffd\u52a0\u304c\u5bb9\u6613<\/li>\n\n\n\n<li>\u958b\u767a\u74b0\u5883\u304b\u3089\u672c\u756a\u74b0\u5883\u307e\u3067\u4e00\u8cab\u3057\u305f\u69cb\u6210<\/li>\n\n\n\n<li>\u6c34\u5e73\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u3078\u306e\u5bfe\u5fdc\u304c\u5bb9\u6613<\/li>\n<\/ul>\n\n\n\n<p><strong>4. \u958b\u767a\u52b9\u7387\u306e\u5411\u4e0a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u74b0\u5883\u69cb\u7bc9\u6642\u9593\u306e\u5927\u5e45\u306a\u524a\u6e1b<\/li>\n\n\n\n<li>\u30c1\u30fc\u30e0\u65b0\u30e1\u30f3\u30d0\u30fc\u306e\u30aa\u30f3\u30dc\u30fc\u30c7\u30a3\u30f3\u30b0\u304c\u5bb9\u6613<\/li>\n\n\n\n<li>\u8907\u6570\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u5207\u308a\u66ff\u3048\u304c\u30b9\u30e0\u30fc\u30ba<\/li>\n<\/ul>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u7279\u5fb4\u304b\u3089\u3001\u7279\u306b\u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306fDocker\u3092\u4f7f\u7528\u3057\u305f\u74b0\u5883\u69cb\u7bc9\u304c\u63a8\u5968\u3055\u308c\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u65e2\u5b58\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3084\u5c0f\u898f\u6a21\u306a\u958b\u767a\u3067\u306f\u3001\u5f93\u6765\u306eLAMP\u74b0\u5883\u3082\u5341\u5206\u306a\u9078\u629e\u80a2\u3068\u306a\u308a\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u305d\u308c\u305e\u308c\u306e\u74b0\u5883\u69cb\u7bc9\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">Docker\u74b0\u5883\u3067\u306eLaravel\u69cb\u7bc9\u624b\u9806<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">docker-compose.yml\u306e\u4f5c\u6210\u3068\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>\u958b\u767a\u74b0\u5883\u306e\u69cb\u7bc9\u3092\u59cb\u3081\u308b\u306b\u3042\u305f\u308a\u3001\u307e\u305a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30eb\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u9069\u5207\u306a<code>docker-compose.yml<\/code>\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u3001\u63a8\u5968\u3055\u308c\u308b\u8a2d\u5b9a\u3092\u793a\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=\"\">version: '3.8'\nservices:\n  app:\n    build:\n      context: .\n      dockerfile: .\/docker\/php\/Dockerfile\n    volumes:\n      - .:\/var\/www\/html\n    depends_on:\n      - db\n    environment:\n      - PHP_MEMORY_LIMIT=256M\n\n  web:\n    image: nginx:alpine\n    ports:\n      - \"8080:80\"\n    volumes:\n      - .:\/var\/www\/html\n      - .\/docker\/nginx\/default.conf:\/etc\/nginx\/conf.d\/default.conf\n    depends_on:\n      - app\n\n  db:\n    image: mysql:8.0\n    environment:\n      MYSQL_DATABASE: laravel\n      MYSQL_ROOT_PASSWORD: root_password\n      MYSQL_USER: laravel_user\n      MYSQL_PASSWORD: laravel_password\n    volumes:\n      - mysql_data:\/var\/lib\/mysql\n    ports:\n      - \"3306:3306\"\n\nvolumes:\n  mysql_data:<\/pre>\n\n\n\n<p>PHP\u306eDockerfile\uff08<code>.\/docker\/php\/Dockerfile<\/code>\uff09\u306e\u5185\u5bb9\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.2-fpm\n\n# \u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nRUN apt-get update &amp;&amp; apt-get install -y \\\n    git \\\n    curl \\\n    libpng-dev \\\n    libonig-dev \\\n    libxml2-dev \\\n    zip \\\n    unzip\n\n# PHP\u62e1\u5f35\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nRUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd\n\n# Composer\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nCOPY --from=composer:latest \/usr\/bin\/composer \/usr\/bin\/composer\n\nWORKDIR \/var\/www\/html<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">Laravel\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u521d\u671f\u5316\u3068\u57fa\u672c\u8a2d\u5b9a<\/h3>\n\n\n\n<p>Docker\u74b0\u5883\u304c\u6e96\u5099\u3067\u304d\u305f\u3089\u3001\u4ee5\u4e0b\u306e\u624b\u9806\u3067Laravel\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u521d\u671f\u5316\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210<\/strong><\/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=\"\">docker-compose run --rm app composer create-project laravel\/laravel .<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u74b0\u5883\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u6e96\u5099<\/strong><\/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=\"\">cp .env.example .env<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ad\u30fc\u306e\u751f\u6210<\/strong><\/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=\"\">docker-compose run --rm app php artisan key:generate<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>.env \u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a<\/strong><\/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=\"\">DB_CONNECTION=mysql\nDB_HOST=db\nDB_PORT=3306\nDB_DATABASE=laravel\nDB_USERNAME=laravel_user\nDB_PASSWORD=laravel_password<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">\u958b\u767a\u306b\u4fbf\u5229\u306a\u8ffd\u52a0\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n\n\n\n<p>\u52b9\u7387\u7684\u306a\u958b\u767a\u306e\u305f\u3081\u306b\u3001\u4ee5\u4e0b\u306e\u63a8\u5968\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30d0\u30c3\u30b0\u30c4\u30fc\u30eb<\/strong><\/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=\"\">docker-compose run --rm app composer require barryvdh\/laravel-debugbar --dev<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30c6\u30b9\u30c8\u652f\u63f4<\/strong><\/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=\"\">docker-compose run --rm app composer require laravel\/pint --dev\ndocker-compose run --rm app composer require nunomaduro\/larastan --dev<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u958b\u767a\u8005\u652f\u63f4\u30c4\u30fc\u30eb<\/strong><\/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=\"\">docker-compose run --rm app composer require laravel\/telescope --dev\ndocker-compose run --rm app php artisan telescope:install<\/pre>\n\n\n\n<p><strong>\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u5f8c\u306e\u52d5\u4f5c\u78ba\u8a8d<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b3\u30f3\u30c6\u30ca\u306e\u8d77\u52d5<\/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=\"\">docker-compose up -d<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u5b9f\u884c<\/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=\"\">docker-compose run --rm app php artisan migrate<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u30a2\u30af\u30bb\u30b9\u78ba\u8a8d<br>\u30d6\u30e9\u30a6\u30b6\u3067 <code>http:\/\/localhost:8080<\/code> \u306b\u30a2\u30af\u30bb\u30b9\u3057\u3001Laravel\u306e\u30a6\u30a7\u30eb\u30ab\u30e0\u30da\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p><strong>\u91cd\u8981\u306a\u8a2d\u5b9a\u306e\u30dd\u30a4\u30f3\u30c8<\/strong><\/p>\n\n\n<div id=\"id-48b0e089-8822-47cc-8167-45af96e6ba81\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u8a2d\u5b9a\u9805\u76ee<\/th><th>\u63a8\u5968\u5024<\/th><th>\u8aac\u660e<\/th><\/tr><\/thead><tbody><tr><td>PHP Memory Limit<\/td><td>256M\u4ee5\u4e0a<\/td><td>\u958b\u767a\u6642\u306e\u4f59\u88d5\u3092\u6301\u3063\u305f\u8a2d\u5b9a<\/td><\/tr><tr><td>MySQL Version<\/td><td>8.0<\/td><td>\u6700\u65b0\u306e\u5b89\u5b9a\u7248\u3092\u4f7f\u7528<\/td><\/tr><tr><td>Nginx Worker Processes<\/td><td>auto<\/td><td>\u30b5\u30fc\u30d0\u30fc\u30ea\u30bd\u30fc\u30b9\u306b\u5fdc\u3058\u3066\u81ea\u52d5\u8abf\u6574<\/td><\/tr><tr><td>PHP-FPM Processes<\/td><td>dynamic<\/td><td>\u8ca0\u8377\u306b\u5fdc\u3058\u3066\u52d5\u7684\u306b\u8abf\u6574<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u3053\u306eDocker\u74b0\u5883\u306f\u3001\u958b\u767a\u30c1\u30fc\u30e0\u3067\u306e\u5171\u6709\u3084\u3001CI\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u3067\u306e\u5229\u7528\u3082\u8003\u616e\u3057\u305f\u69cb\u6210\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5f93\u6765\u306eLAMP\u74b0\u5883\u3067\u306e\u69cb\u7bc9\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">\u5f93\u6765\u306eLAMP\u74b0\u5883\u3067\u306eLaravel\u69cb\u7bc9\u624b\u9806<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u5fc5\u8981\u306a\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a<\/h3>\n\n\n\n<p>LAMP\u74b0\u5883\u3067Laravel\u3092\u69cb\u7bc9\u3059\u308b\u5834\u5408\u3001\u4ee5\u4e0b\u306e\u624b\u9806\u3067\u5404\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>1. PHP\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a\uff08Ubuntu\/Debian\u74b0\u5883\u306e\u5834\u5408\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=\"\"># \u30b7\u30b9\u30c6\u30e0\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\nsudo apt update\nsudo apt upgrade -y\n\n# PHP\u3068\u5fc5\u8981\u306a\u62e1\u5f35\u6a5f\u80fd\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo apt install -y php8.2 php8.2-cli php8.2-common php8.2-fpm \\\n    php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring \\\n    php8.2-curl php8.2-xml php8.2-bcmath\n\n# PHP\u8a2d\u5b9a\u306e\u6700\u9069\u5316\nsudo sed -i 's\/memory_limit = .*\/memory_limit = 256M\/' \/etc\/php\/8.2\/cli\/php.ini\nsudo sed -i 's\/max_execution_time = .*\/max_execution_time = 60\/' \/etc\/php\/8.2\/cli\/php.ini<\/pre>\n\n\n\n<p><strong>2. MySQL\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u521d\u671f\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=\"\"># MySQL\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nsudo apt install -y mysql-server mysql-client\n\n# \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u5b9f\u884c\nsudo mysql_secure_installation\n\n# \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3068\u30e6\u30fc\u30b6\u30fc\u306e\u4f5c\u6210\nsudo mysql -u root -p<\/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=\"\">CREATE DATABASE laravel;\nCREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';\nGRANT ALL PRIVILEGES ON laravel.* TO 'laravel_user'@'localhost';\nFLUSH PRIVILEGES;<\/pre>\n\n\n\n<p><strong>3. Composer\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/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=\"\"># Composer\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u691c\u8a3c\nphp -r \"copy('https:\/\/getcomposer.org\/installer', 'composer-setup.php');\"\nphp -r \"if (hash_file('sha384', 'composer-setup.php') === file_get_contents('https:\/\/composer.github.io\/installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;\"\n\n# Composer\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\nphp composer-setup.php --install-dir=\/usr\/local\/bin --filename=composer\nphp -r \"unlink('composer-setup.php');\"<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">Composer\u3092\u4f7f\u7528\u3057\u305fLaravel\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210<\/strong><\/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=\"\">composer create-project laravel\/laravel my-project\ncd my-project<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u4f9d\u5b58\u95a2\u4fc2\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u78ba\u8a8d<\/strong><\/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=\"\">composer install\ncomposer dump-autoload -o<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u74b0\u5883\u8a2d\u5b9a<\/strong><\/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=\"\">cp .env.example .env\nphp artisan key:generate<\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li><strong>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u8a2d\u5b9a\uff08.env\u30d5\u30a1\u30a4\u30eb\uff09<\/strong><\/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=\"\">DB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=laravel\nDB_USERNAME=laravel_user\nDB_PASSWORD=your_password<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-10\">Apache\/Nginx\u306e\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u8a2d\u5b9a<\/h3>\n\n\n\n<p><strong>Apache\u306e\u5834\u5408\uff08Ubuntu\/Debian\uff09<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u6709\u52b9\u5316<\/strong><\/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=\"\">sudo a2enmod rewrite\nsudo a2enmod ssl<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30d0\u30fc\u30c1\u30e3\u30eb\u30db\u30b9\u30c8\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210<\/strong><\/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=\"\"># \/etc\/apache2\/sites-available\/laravel.conf\n&lt;VirtualHost *:80&gt;\n    ServerName myapp.local\n    DocumentRoot \/var\/www\/my-project\/public\n\n    &lt;Directory \/var\/www\/my-project\/public&gt;\n        Options Indexes FollowSymLinks MultiViews\n        AllowOverride All\n        Require all granted\n    &lt;\/Directory&gt;\n\n    ErrorLog ${APACHE_LOG_DIR}\/laravel_error.log\n    CustomLog ${APACHE_LOG_DIR}\/laravel_access.log combined\n&lt;\/VirtualHost&gt;<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u306e\u6709\u52b9\u5316\u3068\u518d\u8d77\u52d5<\/strong><\/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=\"\">sudo a2ensite laravel.conf\nsudo systemctl restart apache2<\/pre>\n\n\n\n<p><strong>Nginx\u306e\u5834\u5408<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210<\/strong><\/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=\"\"># \/etc\/nginx\/sites-available\/laravel.conf\nserver {\n    listen 80;\n    server_name myapp.local;\n    root \/var\/www\/my-project\/public;\n\n    add_header X-Frame-Options \"SAMEORIGIN\";\n    add_header X-Content-Type-Options \"nosniff\";\n\n    index index.php;\n\n    charset utf-8;\n\n    location \/ {\n        try_files $uri $uri\/ \/index.php?$query_string;\n    }\n\n    location = \/favicon.ico { access_log off; log_not_found off; }\n    location = \/robots.txt  { access_log off; log_not_found off; }\n\n    error_page 404 \/index.php;\n\n    location ~ \\.php$ {\n        fastcgi_pass unix:\/var\/run\/php\/php8.2-fpm.sock;\n        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n\n    location ~ \/\\.(?!well-known).* {\n        deny all;\n    }\n}<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u8a2d\u5b9a\u306e\u6709\u52b9\u5316\u3068\u518d\u8d77\u52d5<\/strong><\/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=\"\">sudo ln -s \/etc\/nginx\/sites-available\/laravel.conf \/etc\/nginx\/sites-enabled\/\nsudo nginx -t\nsudo systemctl restart nginx<\/pre>\n\n\n\n<p><strong>\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u5f8c\u306e\u6a29\u9650\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=\"\"># \u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6a29\u9650\u8a2d\u5b9a\nsudo chown -R www-data:www-data storage bootstrap\/cache\nsudo chmod -R 775 storage bootstrap\/cache\n\n# \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6a29\u9650\u8a2d\u5b9a\nsudo chown -R $USER:www-data \/var\/www\/my-project\nsudo find \/var\/www\/my-project -type f -exec chmod 664 {} \\;\nsudo find \/var\/www\/my-project -type d -exec chmod 775 {} \\;<\/pre>\n\n\n\n<p>\u3053\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u65b9\u6cd5\u306f\u3001\u7279\u306b\u65e2\u5b58\u306eLAMP\u74b0\u5883\u306b\u7d71\u5408\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u3084\u3001\u5171\u6709\u30db\u30b9\u30c6\u30a3\u30f3\u30b0\u74b0\u5883\u3067\u958b\u767a\u3059\u308b\u5834\u5408\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u74b0\u5883\u69cb\u7bc9\u5f8c\u306e\u52d5\u4f5c\u78ba\u8a8d\u3068\u8ffd\u52a0\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-11\">\u958b\u767a\u74b0\u5883\u69cb\u7bc9\u5f8c\u306e\u52d5\u4f5c\u78ba\u8a8d\u3068\u8a2d\u5b9a<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u6b63\u5e38\u306a\u52d5\u4f5c\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/h3>\n\n\n\n<p>\u74b0\u5883\u69cb\u7bc9\u5f8c\u306f\u3001\u4ee5\u4e0b\u306e\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8\u306b\u5f93\u3063\u3066 systematically \u306b\u52d5\u4f5c\u78ba\u8a8d\u3092\u884c\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<p><strong>1. \u57fa\u672c\u30b7\u30b9\u30c6\u30e0\u306e\u52d5\u4f5c\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=\"\"># \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u72b6\u614b\u78ba\u8a8d\nphp artisan --version\nphp artisan env\nphp artisan route:list\n\n# \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u30af\u30ea\u30a2\nphp artisan config:clear\nphp artisan cache:clear\nphp artisan view:clear\nphp artisan route:clear<\/pre>\n\n\n\n<p><strong>2. \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\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=\"\"># \u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30c6\u30b9\u30c8\u5b9f\u884c\nphp artisan migrate:install\nphp artisan migrate:status\n\n# \u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u306e\u4f5c\u6210\u3068\u78ba\u8a8d\nphp artisan make:seeder UsersTableSeeder\nphp artisan db:seed<\/pre>\n\n\n\n<p><strong>\u78ba\u8a8d\u9805\u76ee\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/strong><\/p>\n\n\n<div id=\"id-f055f580-3769-4154-b824-156a77544b7f\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u78ba\u8a8d\u9805\u76ee<\/th><th>\u78ba\u8a8d\u65b9\u6cd5<\/th><th>\u671f\u5f85\u3055\u308c\u308b\u7d50\u679c<\/th><\/tr><\/thead><tbody><tr><td>Web\u30b5\u30fc\u30d0\u30fc\u63a5\u7d9a<\/td><td>\u30d6\u30e9\u30a6\u30b6\u3067\u30a2\u30af\u30bb\u30b9<\/td><td>Laravel welcome\u30da\u30fc\u30b8\u306e\u8868\u793a<\/td><\/tr><tr><td>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a<\/td><td><code>php artisan migrate:status<\/code><\/td><td>\u201cMigration table created\u201d<\/td><\/tr><tr><td>\u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a<\/td><td><code>php artisan cache:get test<\/code><\/td><td>null\u306e\u8fd4\u5374<\/td><\/tr><tr><td>\u30e1\u30fc\u30eb\u8a2d\u5b9a<\/td><td><code>php artisan tinker<\/code> \u3067\u30e1\u30fc\u30eb\u9001\u4fe1\u30c6\u30b9\u30c8<\/td><td>\u30a8\u30e9\u30fc\u306a\u3057\u3067\u9001\u4fe1\u5b8c\u4e86<\/td><\/tr><tr><td>\u30b9\u30c8\u30ec\u30fc\u30b8\u6a29\u9650<\/td><td><code>storage\/logs\/laravel.log<\/code> \u306e\u66f8\u304d\u8fbc\u307f<\/td><td>\u30a8\u30e9\u30fc\u30ed\u30b0\u306e\u66f8\u304d\u8fbc\u307f\u6210\u529f<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-13\">\u958b\u767a\u52b9\u7387\u3092\u4e0a\u3052\u308bIDE\/\u30a8\u30c7\u30a3\u30bf\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<p><strong>1. VSCode\u63a8\u5968\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p><code>settings.json<\/code>\u306e\u63a8\u5968\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=\"\">{\n    \"php.suggest.basic\": false,\n    \"php.validate.enable\": true,\n    \"php.validate.run\": \"onType\",\n    \"intelephense.diagnostics.undefinedTypes\": false,\n    \"intelephense.diagnostics.undefinedFunctions\": false,\n    \"intelephense.diagnostics.undefinedConstants\": false,\n    \"intelephense.diagnostics.undefinedClassConstants\": false,\n    \"intelephense.diagnostics.undefinedMethods\": false,\n    \"intelephense.diagnostics.undefinedProperties\": false,\n    \"editor.formatOnSave\": true\n}<\/pre>\n\n\n\n<p><strong>\u63a8\u5968\u62e1\u5f35\u6a5f\u80fd<\/strong><\/p>\n\n\n<div id=\"id-d8e83913-5dae-41ba-a42a-7a289f2f5312\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u62e1\u5f35\u6a5f\u80fd\u540d<\/th><th>\u7528\u9014<\/th><th>\u512a\u5148\u5ea6<\/th><\/tr><\/thead><tbody><tr><td>PHP Intelephense<\/td><td>PHP\u30b3\u30fc\u30c9\u88dc\u5b8c\u30fb\u89e3\u6790<\/td><td>\u5fc5\u9808<\/td><\/tr><tr><td>Laravel Blade Snippets<\/td><td>Blade \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u652f\u63f4<\/td><td>\u5fc5\u9808<\/td><\/tr><tr><td>Laravel Extra Intellisense<\/td><td>Laravel\u56fa\u6709\u306e\u88dc\u5b8c<\/td><td>\u63a8\u5968<\/td><\/tr><tr><td>PHP Debug<\/td><td>Xdebug\u3068\u306e\u9023\u643a<\/td><td>\u63a8\u5968<\/td><\/tr><tr><td>GitLens<\/td><td>Git\u306e\u7d71\u5408\u6a5f\u80fd\u5f37\u5316<\/td><td>\u63a8\u5968<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u30c7\u30d0\u30c3\u30b0\u30c4\u30fc\u30eb\u306e\u5c0e\u5165\u3068\u57fa\u672c\u7684\u306a\u4f7f\u3044\u65b9<\/h3>\n\n\n\n<p><strong>1. Xdebug\u306e\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p><code>php.ini<\/code>\u3078\u306e\u8ffd\u52a0\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=\"\">[Xdebug]\nzend_extension=xdebug.so\nxdebug.mode=debug\nxdebug.start_with_request=yes\nxdebug.client_host=127.0.0.1\nxdebug.client_port=9003\nxdebug.idekey=VSCODE<\/pre>\n\n\n\n<p><strong>2. Laravel Debugbar\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=\"\"># \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\ncomposer require barryvdh\/laravel-debugbar --dev\n\n# \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u516c\u958b\nphp artisan vendor:publish --provider=\"Barryvdh\\Debugbar\\ServiceProvider\"<\/pre>\n\n\n\n<p><code>config\/debugbar.php<\/code>\u306e\u91cd\u8981\u306a\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=\"\">return [\n    'enabled' =&gt; env('DEBUGBAR_ENABLED', true),\n    'collectors' =&gt; [\n        'phpinfo' =&gt; true,\n        'messages' =&gt; true,\n        'time' =&gt; true,\n        'memory' =&gt; true,\n        'exceptions' =&gt; true,\n        'log' =&gt; true,\n        'db' =&gt; true,\n        'views' =&gt; true,\n        'route' =&gt; true,\n        'auth' =&gt; true,\n        'gate' =&gt; true,\n        'session' =&gt; true,\n    ],\n];<\/pre>\n\n\n\n<p><strong>3. \u30ed\u30b0\u51fa\u529b\u306e\u6700\u9069\u5316<\/strong><\/p>\n\n\n\n<p><code>config\/logging.php<\/code>\u306e\u63a8\u5968\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=\"\">'channels' =&gt; [\n    'stack' =&gt; [\n        'driver' =&gt; 'stack',\n        'channels' =&gt; ['daily', 'slack'],\n        'ignore_exceptions' =&gt; false,\n    ],\n    'daily' =&gt; [\n        'driver' =&gt; 'daily',\n        'path' =&gt; storage_path('logs\/laravel.log'),\n        'level' =&gt; env('LOG_LEVEL', 'debug'),\n        'days' =&gt; 14,\n    ],\n];<\/pre>\n\n\n\n<p><strong>\u30c7\u30d0\u30c3\u30b0\u6642\u306e\u78ba\u8a8d\u30dd\u30a4\u30f3\u30c8<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u76e3\u8996<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u6642\u9593<\/li>\n\n\n\n<li>SQL\u30af\u30a8\u30ea\u306e\u5b9f\u884c\u56de\u6570\u3068\u6642\u9593<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a8\u30e9\u30fc\u30c8\u30ec\u30fc\u30b9<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u4f8b\u5916\u306e\u30ad\u30e3\u30d7\u30c1\u30e3<\/li>\n\n\n\n<li>\u30ea\u30af\u30a8\u30b9\u30c8\/\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u8a73\u7d30<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30bb\u30c3\u30b7\u30e7\u30f3\/\u30ad\u30e3\u30c3\u30b7\u30e5<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u30c7\u30fc\u30bf\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u30d2\u30c3\u30c8\u7387<\/li>\n\n\n\n<li>Redis\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u3068\u78ba\u8a8d\u3092\u9069\u5207\u306b\u884c\u3046\u3053\u3068\u3067\u3001\u52b9\u7387\u7684\u306a\u958b\u767a\u74b0\u5883\u304c\u6574\u3044\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u3068\u305d\u306e\u89e3\u6c7a\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-15\">\u3088\u304f\u3042\u308b\u30c8\u30e9\u30d6\u30eb\u3068\u89e3\u6c7a\u65b9\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-16\">\u6a29\u9650\u95a2\u9023\u306e\u30a8\u30e9\u30fc\u3068\u305d\u306e\u5bfe\u51e6\u6cd5<\/h3>\n\n\n\n<p>Laravel\u74b0\u5883\u3067\u6700\u3082\u983b\u7e41\u306b\u767a\u751f\u3059\u308b\u6a29\u9650\u95a2\u9023\u306e\u554f\u984c\u3068\u305d\u306e\u89e3\u6c7a\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>1. \u30b9\u30c8\u30ec\u30fc\u30b8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6a29\u9650\u30a8\u30e9\u30fc<\/strong><\/p>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\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=\"\">The stream or file \"\/var\/www\/html\/storage\/logs\/laravel.log\" could not be opened: failed to open stream: Permission denied<\/pre>\n\n\n\n<p>\u89e3\u6c7a\u624b\u9806\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=\"\"># \u9069\u5207\u306a\u6a29\u9650\u3068\u30aa\u30fc\u30ca\u30fc\u30b7\u30c3\u30d7\u306e\u8a2d\u5b9a\nsudo chown -R www-data:www-data storage bootstrap\/cache\nsudo chmod -R 775 storage bootstrap\/cache\n\n# \u958b\u767a\u74b0\u5883\u3067\u306e\u4ee3\u66ff\u8a2d\u5b9a\uff08\u5fc5\u8981\u306a\u5834\u5408\u306e\u307f\uff09\nsudo chown -R $USER:www-data storage bootstrap\/cache\nsudo chmod -R g+w storage bootstrap\/cache<\/pre>\n\n\n\n<p><strong>2. .env\u30d5\u30a1\u30a4\u30eb\u306e\u6a29\u9650\u554f\u984c<\/strong><\/p>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\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=\"\">No application encryption key has been specified.<\/pre>\n\n\n\n<p>\u89e3\u6c7a\u624b\u9806\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\u5b58\u5728\u78ba\u8a8d\u3068\u4f5c\u6210\ncp .env.example .env\nchmod 644 .env\n\n# \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30ad\u30fc\u306e\u751f\u6210\nphp artisan key:generate<\/pre>\n\n\n\n<p>\u6a29\u9650\u95a2\u9023\u306e\u4e00\u822c\u7684\u306a\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30d5\u30ed\u30fc\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=\"\">graph TD\n    A[\u6a29\u9650\u30a8\u30e9\u30fc\u306e\u767a\u751f] --&gt; B{\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u78ba\u8a8d}\n    B --&gt;|\u30b9\u30c8\u30ec\u30fc\u30b8\u95a2\u9023| C[\u30b9\u30c8\u30ec\u30fc\u30b8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u6a29\u9650\u78ba\u8a8d]\n    B --&gt;|\u30d5\u30a1\u30a4\u30eb\u66f8\u304d\u8fbc\u307f| D[\u8a72\u5f53\u30d5\u30a1\u30a4\u30eb\u306e\u6a29\u9650\u78ba\u8a8d]\n    C --&gt; E[www-data\u6a29\u9650\u306e\u4ed8\u4e0e]\n    D --&gt; F[\u9069\u5207\u306a\u5b9f\u884c\u6a29\u9650\u306e\u8a2d\u5b9a]\n    E --&gt; G[\u52d5\u4f5c\u78ba\u8a8d]\n    F --&gt; G<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30a8\u30e9\u30fc\u306e\u89e3\u6c7a\u624b\u9806<\/h3>\n\n\n\n<p><strong>1. \u4e00\u822c\u7684\u306a\u63a5\u7d9a\u30a8\u30e9\u30fc<\/strong><\/p>\n\n\n<div id=\"id-f1632f79-e0fe-444e-9c37-2a485019fd26\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30a8\u30e9\u30fc\u75c7\u72b6<\/th><th>\u8003\u3048\u3089\u308c\u308b\u539f\u56e0<\/th><th>\u89e3\u6c7a\u65b9\u6cd5<\/th><\/tr><\/thead><tbody><tr><td>SQLSTATE[HY000]<\/td><td>MySQL\u30b5\u30fc\u30d3\u30b9\u505c\u6b62<\/td><td>MySQL\u30b5\u30fc\u30d3\u30b9\u306e\u518d\u8d77\u52d5<\/td><\/tr><tr><td>Access denied<\/td><td>\u8a8d\u8a3c\u60c5\u5831\u306e\u8aa4\u308a<\/td><td>.env\u30d5\u30a1\u30a4\u30eb\u306e\u78ba\u8a8d\u3068\u66f4\u65b0<\/td><\/tr><tr><td>Unknown database<\/td><td>DB\u304c\u5b58\u5728\u3057\u306a\u3044<\/td><td>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u4f5c\u6210<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u5177\u4f53\u7684\u306a\u89e3\u6c7a\u624b\u9806\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=\"\"># MySQL\u30b5\u30fc\u30d3\u30b9\u306e\u72b6\u614b\u78ba\u8a8d\u3068\u518d\u8d77\u52d5\nsudo systemctl status mysql\nsudo systemctl restart mysql\n\n# \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u5b58\u5728\u78ba\u8a8d\nmysql -u root -p -e \"SHOW DATABASES;\"\n\n# \u30e6\u30fc\u30b6\u30fc\u6a29\u9650\u306e\u78ba\u8a8d\nmysql -u root -p -e \"SHOW GRANTS FOR 'laravel_user'@'localhost';\"<\/pre>\n\n\n\n<p><strong>2. \u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30a8\u30e9\u30fc<\/strong><\/p>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\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=\"\">Migration table not found<\/pre>\n\n\n\n<p>\u89e3\u6c7a\u624b\u9806\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=\"\"># \u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u30ea\u30bb\u30c3\u30c8\u3068\u518d\u5b9f\u884c\nphp artisan migrate:reset\nphp artisan migrate:install\nphp artisan migrate\n\n# \u7279\u5b9a\u306e\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u306e\u518d\u5b9f\u884c\nphp artisan migrate:refresh --path=\/database\/migrations\/specific_migration.php<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">\u30e1\u30e2\u30ea\u4e0d\u8db3\u30a8\u30e9\u30fc\u3078\u306e\u5bfe\u5fdc\u65b9\u6cd5<\/h3>\n\n\n\n<p><strong>1. PHP\u5074\u306e\u30e1\u30e2\u30ea\u5236\u9650<\/strong><\/p>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\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=\"\">Allowed memory size of 134217728 bytes exhausted<\/pre>\n\n\n\n<p>\u89e3\u6c7a\u65b9\u6cd5\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>php.ini\u306e\u8a2d\u5b9a\u5909\u66f4<\/strong><\/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=\"\">; php.ini\u306e\u4fee\u6b63\nmemory_limit = 256M\nmax_execution_time = 120<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u5b9f\u884c\u6642\u306e\u30e1\u30e2\u30ea\u5236\u9650\u7de9\u548c<\/strong><\/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=\"\"># Composer\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6642\nCOMPOSER_MEMORY_LIMIT=-1 composer require laravel\/horizon\n\n# PHP\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6642\nphp -d memory_limit=-1 artisan command<\/pre>\n\n\n\n<p><strong>2. \u5927\u898f\u6a21\u30c7\u30fc\u30bf\u51e6\u7406\u6642\u306e\u5bfe\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=\"\">\/\/ \u30c1\u30e3\u30f3\u30af\u51e6\u7406\u306b\u3088\u308b\u5927\u91cf\u30c7\u30fc\u30bf\u306e\u53d6\u308a\u6271\u3044\nUser::chunk(1000, function ($users) {\n    foreach ($users as $user) {\n        \/\/ \u51e6\u7406\n    }\n});\n\n\/\/ \u30ad\u30e5\u30fc\u3092\u4f7f\u7528\u3057\u305f\u975e\u540c\u671f\u51e6\u7406\nphp artisan queue:work --memory=512 --timeout=300<\/pre>\n\n\n\n<p>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u76e3\u8996\u3068\u6700\u9069\u5316\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u78ba\u8a8d<\/strong><\/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=\"\"># PHP\u30d7\u30ed\u30bb\u30b9\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u78ba\u8a8d\nps -o pid,rss,command ax | grep php\n\n# MySQL\u306e\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u78ba\u8a8d\nmysqladmin -u root -p extended-status | grep -i \"used_memory\"<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6700\u9069\u5316<\/strong><\/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=\"\"># \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u30af\u30ea\u30a2\nphp artisan cache:clear\nphp artisan view:clear\nphp artisan route:clear\nphp artisan config:clear\n\n# \u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u518d\u751f\u6210\nphp artisan config:cache\nphp artisan route:cache<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u554f\u984c\u306b\u5bfe\u3059\u308b\u4e88\u9632\u7684\u5bfe\u7b56\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5b9a\u671f\u7684\u306a\u30ed\u30b0\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>\u76e3\u8996\u30b7\u30b9\u30c6\u30e0\u306e\u5c0e\u5165<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u81ea\u52d5\u5316<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u30ec\u30dd\u30fc\u30c8\u306e\u53ce\u96c6\u3068\u5206\u6790<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883\u3092\u898b\u636e\u3048\u305f\u69cb\u7bc9\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-19\">\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883\u3092\u898b\u636e\u3048\u305f\u74b0\u5883\u69cb\u7bc9\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-20\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u30c1\u30a7\u30c3\u30af\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p>\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883\u3067\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306e\u91cd\u8981\u306a\u8a2d\u5b9a\u3068\u5bfe\u7b56\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>1. \u91cd\u8981\u306a\u74b0\u5883\u5909\u6570\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=\"\"># .env.production\u306e\u63a8\u5968\u8a2d\u5b9a\nAPP_ENV=production\nAPP_DEBUG=false\nAPP_URL=https:\/\/your-domain.com\n\n# \u30bb\u30c3\u30b7\u30e7\u30f3\u8a2d\u5b9a\nSESSION_DRIVER=redis\nSESSION_SECURE_COOKIE=true\nSESSION_DOMAIN=your-domain.com\n\n# \u30ad\u30e3\u30c3\u30b7\u30e5\u8a2d\u5b9a\nCACHE_DRIVER=redis\n\n# \u30e1\u30fc\u30eb\u8a2d\u5b9a\nMAIL_MAILER=smtp\nMAIL_ENCRYPTION=tls<\/pre>\n\n\n\n<p><strong>2. \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d8\u30c3\u30c0\u30fc\u306e\u8a2d\u5b9a<\/strong><\/p>\n\n\n\n<p>Nginx\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=\"\"># \/etc\/nginx\/conf.d\/security-headers.conf\nadd_header X-Frame-Options \"SAMEORIGIN\";\nadd_header X-XSS-Protection \"1; mode=block\";\nadd_header X-Content-Type-Options \"nosniff\";\nadd_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\";\nadd_header Content-Security-Policy \"default-src 'self' https:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data: https:; style-src 'self' 'unsafe-inline' https:;\";<\/pre>\n\n\n\n<p><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/strong><\/p>\n\n\n<div id=\"id-de275c81-8990-4cbe-ad26-fd2b00283dd1\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30ab\u30c6\u30b4\u30ea<\/th><th>\u30c1\u30a7\u30c3\u30af\u9805\u76ee<\/th><th>\u63a8\u5968\u8a2d\u5b9a\/\u5bfe\u7b56<\/th><\/tr><\/thead><tbody><tr><td>\u8a8d\u8a3c<\/td><td>\u30d1\u30b9\u30ef\u30fc\u30c9\u30dd\u30ea\u30b7\u30fc<\/td><td>\u6700\u5c0f8\u6587\u5b57\u3001\u8907\u96d1\u6027\u8981\u4ef6\u306e\u5b9f\u88c5<\/td><\/tr><tr><td>\u6697\u53f7\u5316<\/td><td>\u30c7\u30fc\u30bf\u6697\u53f7\u5316<\/td><td>AES-256-CBC\u4ee5\u4e0a\u306e\u4f7f\u7528<\/td><\/tr><tr><td>\u30bb\u30c3\u30b7\u30e7\u30f3<\/td><td>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406<\/td><td>Redis\u3092\u4f7f\u7528\u3057\u305f\u96c6\u4e2d\u7ba1\u7406<\/td><\/tr><tr><td>\u30d5\u30a1\u30a4\u30eb<\/td><td>\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u5236\u9650<\/td><td>\u62e1\u5f35\u5b50\u3068MIME\u30bf\u30a4\u30d7\u306e\u53b3\u683c\u306a\u691c\u8a3c<\/td><\/tr><tr><td>API<\/td><td>\u30ec\u30fc\u30c8\u5236\u9650<\/td><td>throttle\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u306e\u5b9f\u88c5<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"i-21\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u6700\u9069\u5316\u3059\u308b\u305f\u3081\u306e\u8a2d\u5b9a<\/h3>\n\n\n\n<p><strong>1. PHP-FPM\u306e\u6700\u9069\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=\"\">; \/etc\/php\/8.2\/fpm\/php-fpm.conf\npm = dynamic\npm.max_children = 50\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 35\npm.max_requests = 500<\/pre>\n\n\n\n<p><strong>2. OPcache\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.ini\nopcache.enable=1\nopcache.memory_consumption=128\nopcache.interned_strings_buffer=8\nopcache.max_accelerated_files=4000\nopcache.revalidate_freq=60\nopcache.fast_shutdown=1\nopcache.enable_cli=1<\/pre>\n\n\n\n<p><strong>3. \u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u306e\u5b9f\u88c5<\/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=\"\">\/\/ config\/cache.php\nreturn [\n    'default' =&gt; env('CACHE_DRIVER', 'redis'),\n    'stores' =&gt; [\n        'redis' =&gt; [\n            'driver' =&gt; 'redis',\n            'connection' =&gt; 'cache',\n            'lock_connection' =&gt; 'default',\n        ],\n    ],\n    'prefix' =&gt; env('CACHE_PREFIX', 'laravel_cache'),\n];<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-22\">CI\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a\u3092\u60f3\u5b9a\u3057\u305f\u69cb\u6210\u306e\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<p><strong>1. Jenkins\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u306e\u4f8b<\/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=\"\">\/\/ Jenkinsfile\npipeline {\n    agent any\n    stages {\n        stage('Build') {\n            steps {\n                sh 'composer install --no-dev --optimize-autoloader'\n                sh 'npm install'\n                sh 'npm run production'\n            }\n        }\n        stage('Test') {\n            steps {\n                sh 'php artisan test --parallel'\n                sh 'php artisan dusk'\n            }\n        }\n        stage('Deploy') {\n            steps {\n                sh '.\/deploy.sh production'\n            }\n        }\n    }\n}<\/pre>\n\n\n\n<p><strong>2. GitHub Actions\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306e\u4f8b<\/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=\"\"># .github\/workflows\/laravel.yml\nname: Laravel CI\/CD\n\non:\n  push:\n    branches: [ main ]\n  pull_request:\n    branches: [ main ]\n\njobs:\n  laravel-tests:\n    runs-on: ubuntu-latest\n    services:\n      mysql:\n        image: mysql:8.0\n        env:\n          MYSQL_ROOT_PASSWORD: password\n          MYSQL_DATABASE: laravel_test\n        ports:\n          - 3306:3306\n        options: --health-cmd=\"mysqladmin ping\"\n\n    steps:\n    - uses: actions\/checkout@v2\n    - name: Copy .env\n      run: php -r \"file_exists('.env') || copy('.env.example', '.env');\"\n    - name: Install Dependencies\n      run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist\n    - name: Generate key\n      run: php artisan key:generate\n    - name: Directory Permissions\n      run: chmod -R 777 storage bootstrap\/cache\n    - name: Execute tests\n      env:\n        DB_CONNECTION: mysql\n        DB_HOST: 127.0.0.1\n      run: php artisan test<\/pre>\n\n\n\n<p><strong>\u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30d7\u30ed\u30a4\u524d\u306e\u78ba\u8a8d\u4e8b\u9805<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c6\u30b9\u30c8\u306e\u5b9f\u884c\u7d50\u679c<\/li>\n\n\n\n<li>\u4f9d\u5b58\u95a2\u4fc2\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u691c\u8a3c<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30d7\u30ed\u30a4\u6642\u306e\u624b\u9806<\/strong><\/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=\"\">   # \u30c7\u30d7\u30ed\u30a4\u30e1\u30f3\u30c8\u30b9\u30af\u30ea\u30d7\u30c8\u4f8b\n   php artisan down\n   git pull origin main\n   composer install --no-dev --optimize-autoloader\n   php artisan migrate --force\n   php artisan config:cache\n   php artisan route:cache\n   php artisan view:cache\n   php artisan up<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>\u30c7\u30d7\u30ed\u30a4\u5f8c\u306e\u78ba\u8a8d\u4e8b\u9805<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u52d5\u4f5c\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30ed\u30b0\u306e\u76e3\u8996<\/li>\n\n\n\n<li>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e1\u30c8\u30ea\u30af\u30b9\u306e\u78ba\u8a8d<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b9\u30ad\u30e3\u30f3\u306e\u5b9f\u884c<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u8a2d\u5b9a\u3068\u624b\u9806\u3092\u9069\u5207\u306b\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u5b89\u5168\u3067\u52b9\u7387\u7684\u306a\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883\u306e\u904b\u7528\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\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":[33,12],"tags":[],"class_list":{"0":"post-3288","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php-laravel","7":"category-php","8":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3288","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=3288"}],"version-history":[{"count":2,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3288\/revisions"}],"predecessor-version":[{"id":3290,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3288\/revisions\/3290"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}