{"id":1037,"date":"2025-06-12T11:11:36","date_gmt":"2025-06-12T03:11:36","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/symfony\/1037.html"},"modified":"2025-06-12T11:11:37","modified_gmt":"2025-06-12T03:11:37","slug":"%e5%a6%82%e4%bd%95%e5%b0%86symfony%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e5%ae%b9%e5%99%a8%e5%8c%96%e4%bb%a5%e4%be%9b%e7%94%9f%e4%ba%a7%e4%bd%bf%e7%94%a8","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/1037.html","title":{"rendered":"\u5982\u4f55\u5c06Symfony\u5e94\u7528\u7a0b\u5e8f\u5bb9\u5668\u5316\u4ee5\u4f9b\u751f\u4ea7\u4f7f\u7528"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#23558;Symfony&#24212;&#29992;&#31243;&#24207;&#23481;&#22120;&#21270;&#26159;&#19968;&#31181;&#25552;&#39640;&#37096;&#32626;&#25928;&#29575;&#21644;&#23433;&#20840;&#24615;&#30340;&#22909;&#26041;&#27861;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#27493;&#39588;&#25351;&#21335;&#65292;&#24110;&#21161;&#20320;&#23558;Symfony&#24212;&#29992;&#31243;&#24207;&#23481;&#22120;&#21270;&#65306;<\/p>\n<h3>1. &#23433;&#35013;Docker<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#30340;&#31995;&#32479;&#19978;&#24050;&#32463;&#23433;&#35013;&#20102;Docker&#12290;&#20320;&#21487;&#20197;&#20174;<a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9wcm9kdWN0cy9kb2NrZXItZGVza3RvcA==\" rel=\"noopener noreferrer nofollow\">Docker&#23448;&#32593;<\/a>&#19979;&#36733;&#24182;&#23433;&#35013;&#36866;&#21512;&#20320;&#25805;&#20316;&#31995;&#32479;&#30340;&#29256;&#26412;&#12290;<\/p>\n<h3>2. &#21019;&#24314;Dockerfile<\/h3>\n<p>&#22312;&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;<code>Dockerfile<\/code>&#25991;&#20214;&#65292;&#24182;&#28155;&#21152;&#20197;&#19979;&#20869;&#23481;&#65306;<\/p>\n<pre><code class=\"language-Dockerfile\"># &#20351;&#29992;&#23448;&#26041;&#30340;PHP&#22522;&#30784;&#38236;&#20687;&#20316;&#20026;&#29238;&#38236;&#20687;\nFROM php:8.0-fpm-alpine\n\n# &#35774;&#32622;&#24037;&#20316;&#30446;&#24405;\nWORKDIR \/var\/www\/html\n\n# &#22797;&#21046;&#39033;&#30446;&#25991;&#20214;&#21040;&#24037;&#20316;&#30446;&#24405;\nCOPY . \/var\/www\/html\n\n# &#23433;&#35013;&#24517;&#35201;&#30340;&#20381;&#36182;\nRUN apk add --no-cache \n    libpng-dev \n    jpeg-dev \n    zlib-dev \n    &amp;&amp; docker-php-ext-install pdo_mysql mbstring zip\n\n# &#26292;&#38706;&#31471;&#21475;\nEXPOSE 9000\n\n# &#21551;&#21160;PHP-FPM&#26381;&#21153;\nCMD [\"php-fpm\"]<\/code><\/pre>\n<h3>3. &#26500;&#24314;Docker&#38236;&#20687;<\/h3>\n<p>&#22312;&#32456;&#31471;&#20013;&#23548;&#33322;&#21040;&#39033;&#30446;&#26681;&#30446;&#24405;&#65292;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#26469;&#26500;&#24314;Docker&#38236;&#20687;&#65306;<\/p>\n<pre><code class=\"language-sh\">docker build -t my-symfony-app .<\/code><\/pre>\n<h3>4. &#36816;&#34892;Docker&#23481;&#22120;<\/h3>\n<p>&#26500;&#24314;&#23436;&#25104;&#21518;&#65292;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#21629;&#20196;&#26469;&#36816;&#34892;&#19968;&#20010;&#23481;&#22120;&#65306;<\/p>\n<pre><code class=\"language-sh\">docker run -d -p 8080:9000 --name my-symfony-container my-symfony-app<\/code><\/pre>\n<h3>5. &#37197;&#32622;Nginx&#65288;&#21487;&#36873;&#65289;<\/h3>\n<p>&#22914;&#26524;&#20320;&#24076;&#26395;&#23558;&#23481;&#22120;&#26292;&#38706;&#20026;HTTP&#32780;&#19981;&#26159;&#40664;&#35748;&#30340;9000&#31471;&#21475;&#65292;&#21487;&#20197;&#37197;&#32622;Nginx&#12290;&#22312;&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;<code>nginx.conf<\/code>&#25991;&#20214;&#65292;&#24182;&#28155;&#21152;&#20197;&#19979;&#20869;&#23481;&#65306;<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name yourdomain.com;\n\n    location \/ {\n        proxy_pass http:\/\/my-symfony-container;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#37325;&#26032;&#26500;&#24314;Docker&#38236;&#20687;&#24182;&#36816;&#34892;&#23481;&#22120;&#65306;<\/p>\n<pre><code class=\"language-sh\">docker build -t my-symfony-app .\ndocker run -d -p 80:80 --name my-symfony-container -v \/path\/to\/your\/nginx.conf:\/etc\/nginx\/nginx.conf my-symfony-app<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;&#65306;&#36816;&#34892;PHP-FPM&#26381;&#21153;<\/h3>\n<p>&#20026;&#20102;&#30830;&#20445;PHP-FPM&#26381;&#21153;&#27491;&#24120;&#21551;&#21160;&#65292;&#21487;&#20197;&#22312;<code>Dockerfile<\/code>&#20013;&#28155;&#21152;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p>\n<pre><code class=\"language-Dockerfile\">CMD [\"php-fpm\", \"-Denable-debugging=1\"]<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#24403;&#20320;&#36816;&#34892;&#23481;&#22120;&#26102;&#65292;PHP-FPM&#20250;&#21551;&#21160;&#24182;&#21551;&#29992;&#35843;&#35797;&#27169;&#24335;&#12290;<\/p>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#23558;Symfony&#24212;&#29992;&#31243;&#24207;&#25104;&#21151;&#23481;&#22120;&#21270;&#65292;&#24182;&#23558;&#20854;&#37096;&#32626;&#21040;&#29983;&#20135;&#29615;&#22659;&#20013;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#23558;&#24744;&#30340;Symfony&#24212;&#29992;&#31243;&#24207;docker&#21270;&#21487;&#20197;&#26174;&#33879;&#31616;&#21270;&#37096;&#32626;&#36807;&#31243;&#24182;&#30830;&#20445;&#22312;&#19981;&#21516;&#29615;&#22659;&#20013;&#30340;&#19968;&#33268;&#24615;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#24744;&#23558;&#23398;&#20064;&#22914;&#20309;&#23558;&#24744;&#30340;Symfony&#24212;&#29992;&#25171;&#21253;&#20026;&#19968;&#20010;Docker&#23481;&#22120;&#65292;&#20197;&#20415;&#20934;&#22791;&#25237;&#20837;&#29983;&#20135;&#29615;&#22659;&#12290;&#25105;&#20204;&#23558;&#20174;&#35774;&#32622;&#22522;&#26412;&#30340;Docker&#37197;&#32622;&#24320;&#22987;&#65292;&#30452;&#21040;&#20248;&#21270;&#24744;&#30340;&#35774;&#32622;&#20197;&#36866;&#24212;&#29983;&#20135;&#20351;&#29992;&#12290;<\/p><p>&#21069;&#32622;&#26465;&#20214;<\/p><p>&#22522;&#26412;&#29702;&#35299; Docker &#27010;&#24565;<\/p><p>Docker&#24050;&#32463;&#23433;&#35013;&#22312;&#24744;&#30340;&#26412;&#22320;&#26426;&#22120;&#19978;&#12290;<\/p><p>&#19968;&#20010;Symfony&#24212;&#29992;<\/p><h2>&#27493;&#39588;<\/h2><h3>&#27493;&#39588;1&#65306;&#21019;&#24314;&#19968;&#20010;Dockerfile<\/h3><p>&#35831;&#32487;&#32493;&#25552;&#20379;&#20449;&#24687;&#65292;&#25105;&#20250;&#23558;&#20854;&#32763;&#35793;&#25104;&#20013;&#25991;&#24182;&#22238;&#22797;&#24744;&#12290;<code>Dockerfile<\/code>&#22312;Symfony&#39033;&#30446;&#30340;&#26681;&#30446;&#24405;&#19979;&#12290;&#36825;&#20010;&#25991;&#20214;&#23450;&#20041;&#20102;&#26500;&#24314;Docker&#38236;&#20687;&#30340;&#27493;&#39588;&#12290;&#36825;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#20363;&#23376;&#65306;<\/p><pre><code>FROM php:8.1-fpm\n# Install dependencies\nRUN apt-get update &amp;&amp; apt-get install -y  \n        libpng-dev  \n        libonig-dev  \n        libxml2-dev  \n        zip  \n        unzip\n\n# Install PHP extensions\nRUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd\n\n# Set working directory\nWORKDIR \/var\/www\n\n# Clear cache\nRUN apt-get clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*\n\n# Copy existing application directory contents\nCOPY . \/var\/www\n\n# Copy existing application directory permissions\nCOPY --chown=www-data:www-data . \/var\/www\n\n# Change current user to www\nUSER www-data\n\nEXPOSE 9000\nENTRYPOINT [\"php-fpm\"]<\/code><\/pre><p>&#22312;&#26412;Dockerfile&#20013;&#65292;&#25105;&#20204;&#20174;&#36825;&#37324;&#24320;&#22987;&#12290;<code>php:8.1-fpm<\/code>&#35831;&#23433;&#35013;&#24517;&#35201;&#30340;&#25193;&#23637;&#65292;&#35774;&#32622;&#27491;&#30830;&#30340;&#26435;&#38480;&#65292;&#24182;&#23450;&#20041;&#20837;&#21475;&#28857;&#12290;<\/p><p>&#19968;&#26086;&#20320;&#26377;&#20102;<code>Dockerfile<\/code>&#24314;&#31435;&#20320;&#30340;&#24418;&#35937;&#65306;<\/p><pre><code>docker build -t my-symfony-app .<\/code><\/pre><p>&#35813;&#21629;&#20196;&#23558;&#20351;&#29992;Dockerfile&#26500;&#24314;&#19968;&#20010;&#21517;&#20026;&#30340;&#22270;&#20687;&#12290;<code>my-symfony-app<\/code>&#22909;&#30340;&#65292;&#35831;&#25552;&#20379;&#38656;&#35201;&#32763;&#35793;&#30340;&#20869;&#23481;&#12290;<\/p><h3>&#27493;&#39588; 2&#65306;&#35774;&#32622; Docker Compose<\/h3><p>&#23545;&#20110;&#29983;&#20135;&#29615;&#22659;&#30340;&#35774;&#32622;&#65292;&#36890;&#24120;&#20250;&#28041;&#21450;&#22810;&#20010;&#26381;&#21153;&#65288;&#20363;&#22914;Web&#26381;&#21153;&#22120;&#21644;&#25968;&#25454;&#24211;&#65289;&#12290;Docker Compose &#20801;&#35768;&#24744;&#37197;&#32622;&#36825;&#20123;&#26381;&#21153;&#12290;<code>docker-compose.yml<\/code>&#35831;&#22312;&#39033;&#30446;&#26681;&#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#25991;&#20214;&#65306;<\/p><pre><code>version: '3.8'\n\nservices:\n  app:\n    build: .\n    container_name: symfony_app\n    restart: unless-stopped\n    working_directory: \/var\/www\n    volumes:\n      - .\/:\/var\/www\n    environment:\n      - APP_ENV=prod\n    depends_on:\n      - db\n\n  db:\n    image: mysql:5.7\n    container_name: symfony_db\n    restart: unless-stopped\n    environment:\n      - MYSQL_DATABASE=project_name\n      - MYSQL_USER=user\n      - MYSQL_PASSWORD=password\n      - MYSQL_ROOT_PASSWORD=root_password\n    volumes:\n      - db_data:\/var\/lib\/mysql\n    ports:\n      - \"3306:3306\"\nvolumes:\n  db_data:\n    driver: local<\/code><\/pre><p>&#36825;&#23450;&#20041;&#20102;&#20004;&#20010;&#26381;&#21153;&#65306;<code>app<\/code>&#25105;&#20204;&#30340;Symfony&#24212;&#29992;&#65292;&#21644;<code>db<\/code>&#65292;&#19968;&#20010;MySQL&#25968;&#25454;&#24211;&#12290;compose&#25991;&#20214;&#36824;&#36127;&#36131;&#23481;&#22120;&#20043;&#38388;&#30340;&#32593;&#32476;&#12289;&#29615;&#22659;&#21464;&#37327;&#21644;&#25968;&#25454;&#25345;&#20037;&#24615;&#36890;&#36807;&#21367;&#12290;<\/p><p>&#35201;&#21551;&#21160;&#26381;&#21153;&#65292;&#35831;&#36816;&#34892;&#65306;<\/p><pre><code>docker-compose up -d<\/code><\/pre><h3>&#27493;&#39588; 3&#65306;&#20248;&#21270;&#24744;&#30340; Dockerfile &#20197;&#36866;&#24212;&#29983;&#20135;&#29615;&#22659;<\/h3><p>&#22312;&#29983;&#20135;&#26041;&#38754;&#65292;&#20248;&#21270;&#21644;&#23433;&#20840;&#33267;&#20851;&#37325;&#35201;&#12290;&#25105;&#20204;&#23558;&#23545;Dockerfile&#36827;&#34892;&#19968;&#20123;&#35843;&#25972;&#20197;&#25552;&#39640;&#25928;&#29575;&#24182;&#20943;&#23569;&#38236;&#20687;&#22823;&#23567;&#12290;<\/p><h4>&#22810;&#38454;&#27573;&#26500;&#24314;<\/h4><p>&#22312;Dockerfile&#20013;&#20351;&#29992;&#22810;&#38454;&#27573;&#26500;&#24314;&#65292;&#23558;&#26500;&#24314;&#38454;&#27573;&#19982;&#29983;&#20135;&#38454;&#27573;&#20998;&#31163;&#65306;<\/p><pre><code># Build stage\nFROM php:8.1-fpm AS symfony_build\n# ...Same steps as before to set up the environment...\n\n# Production stage\nFROM php:8.1-fpm\nCOPY --from=symfony_build \/var\/www \/var\/www<\/code><\/pre><p>&#36825;&#31181;&#27169;&#24335;&#20801;&#35768;&#24744;&#25317;&#26377;&#19968;&#20010;&#21253;&#21547;&#26500;&#24314;&#29615;&#22659;&#30340;&#29615;&#22659;&#65292;&#35813;&#29615;&#22659;&#21253;&#21547;&#20102;&#32534;&#35793;&#24212;&#29992;&#25152;&#38656;&#30340;&#20840;&#37096;&#24037;&#20855;&#65292;&#32780;&#29983;&#20135;&#38236;&#20687;&#21017;&#20445;&#25345;&#24178;&#20928;&#19988;&#36731;&#37327;&#32423;&#12290;<\/p><h4>&#29983;&#20135;&#37197;&#32622;<\/h4><p>&#30830;&#20445;&#24744;&#30340;&#29615;&#22659;&#27491;&#30830;&#35774;&#32622;&#20197;&#25903;&#25345;&#29983;&#20135;&#65292;&#21253;&#25324;&#24341;&#29992;&#29983;&#20135;&#25968;&#25454;&#24211;&#12289;&#32531;&#23384;&#31995;&#32479;&#31561;&#30340;&#29615;&#22659;&#21464;&#37327;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>&#32508;&#19978;&#25152;&#36848;&#65292;&#23558;Symfony&#24212;&#29992;&#31243;&#24207;Docker&#21270;&#21487;&#20197;&#31616;&#21270;&#37096;&#32626;&#36807;&#31243;&#24182;&#20445;&#25345;&#29615;&#22659;&#30340;&#19968;&#33268;&#24615;&#12290;&#26681;&#25454;&#26412;&#25351;&#21335;&#65292;&#24744;&#29616;&#22312;&#24212;&#35813;&#26377;&#19968;&#20010;&#26126;&#30830;&#30340;&#36335;&#24452;&#26469;&#20934;&#22791;&#24744;&#30340;&#24212;&#29992;&#20197;&#22312;Docker&#20013;&#36816;&#34892;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#23558; Symfony &#24212;&#29992;&#31243;&#24207;&#23481;&#22120;&#21270;&#20197;&#20379;&#29983;&#20135;&#20351;&#29992;&#65292;&#24744;&#38656;&#35201;&#36981;&#24490;&#20197;&#19979;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#23433;&#35013; Docker<\/strong>&#65306;&#39318;&#20808;&#30830;&#20445;&#24744;&#30340;&#31995;&#32479;&#24050;&#23433;&#35013; Docker&#12290;&#22914;&#26524;&#27809;&#26377;&#65292;&#35831;&#35775;&#38382; <a href=\"https:\/\/www.zhaozhao123.cn\/skin\/go?url=aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9nZXQtc3RhcnRlZA==\" rel=\"noopener noreferrer nofollow\">https:\/\/www.docker.com\/get-started<\/a> &#19979;&#36733;&#24182;&#23433;&#35013;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314; Dockerfile<\/strong>&#65306;<\/p>\n<ul>\n<li>&#20351;&#29992;&#25991;&#26412;&#32534;&#36753;&#22120;&#65288;&#22914; Notepad++ &#25110; Sublime Text&#65289;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25991;&#20214;&#65292;&#24182;&#21629;&#21517;&#20026; <code>Dockerfile<\/code>&#12290;<\/li>\n<li>\n<p>&#22312;&#25991;&#20214;&#20013;&#28155;&#21152;&#20197;&#19979;&#20869;&#23481;&#65306;<\/p>\n<pre><code class=\"language-Dockerfile\">FROM symfony\/symfony:latest\n\n# &#23433;&#35013;&#24517;&#35201;&#30340;&#20381;&#36182;\nRUN apt-get update &amp;&amp; \napt-get install -y --no-install-recommends \n    build-essential \n    libxml2-dev \n    libsqlite3-dev \n    libcurl4-openssl-dev \n    libpcap-dev \n    libxslt1-dev\n\n# &#32534;&#35793;&#21644;&#36816;&#34892; Symfony &#24212;&#29992;\nCOPY . \/var\/www\/html\nRUN composer install --no-interaction\nCMD [\"php\", \"\/var\/www\/html\/bin\/console\", \"server:start\"]<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#32534;&#20889; Docker &#38236;&#20687;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#23558;&#19978;&#36848; Dockerfile &#20869;&#23481;&#20445;&#23384;&#20026; Dockerfile &#25991;&#20214;&#12290;<\/li>\n<li>\n<p>&#20351;&#29992;&#21629;&#20196;&#34892;&#24037;&#20855;&#65288;&#20363;&#22914; <code>docker build<\/code>&#65289;&#65292;&#26500;&#24314; Docker &#38236;&#20687;&#65306;<\/p>\n<pre><code class=\"language-bash\">docker build -t my-symfony-app .<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>&#36825;&#23558;&#22312;&#24403;&#21069;&#30446;&#24405;&#19979;&#29983;&#25104;&#19968;&#20010;&#21517;&#20026; <code>my-symfony-app<\/code> &#30340; Docker &#38236;&#20687;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#37197;&#32622;&#29615;&#22659;&#21464;&#37327;<\/strong>&#65306;<\/p>\n<ul>\n<li>\n<p>&#20174;&#32456;&#31471;&#36827;&#20837;&#38236;&#20687;&#25152;&#22312;&#30340;&#30446;&#24405;&#65306;<\/p>\n<pre><code class=\"language-bash\">cd my-symfony-app<\/code><\/pre>\n<\/li>\n<li>\n<p>&#28155;&#21152;&#25110;&#20462;&#25913;&#29615;&#22659;&#21464;&#37327;&#12290;&#20363;&#22914;&#65292;&#22914;&#26524;&#24076;&#26395;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#21551;&#29992;&#23433;&#20840;&#26085;&#24535;&#35760;&#24405;&#65292;&#21487;&#20197;&#35774;&#32622; <code>LOG_LEVEL=debug<\/code> &#29615;&#22659;&#21464;&#37327;&#65306;<\/p>\n<pre><code class=\"language-bash\">export LOG_LEVEL=debug<\/code><\/pre>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#32534;&#35793;&#24182;&#36816;&#34892;&#23481;&#22120;<\/strong>&#65306;<\/p>\n<ul>\n<li>\n<p>&#20351;&#29992;&#21629;&#20196;&#34892;&#24037;&#20855;&#36816;&#34892; Docker &#23481;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">docker run -d --name my-symfony-app -p 8080:80 my-symfony-app<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>&#36825;&#23558;&#22312;&#20027;&#26426;&#30340;&#25351;&#23450;&#31471;&#21475;&#19978;&#30417;&#21548; 8080 &#31471;&#21475;&#65292;&#21551;&#21160; Symfony &#24212;&#29992;&#26381;&#21153;&#22120;&#12290;<\/p>\n<\/li>\n<li>\n<p><strong>&#27979;&#35797;&#19982;&#37096;&#32626;<\/strong>&#65306;<\/p>\n<ul>\n<li>&#27979;&#35797;&#24212;&#29992;&#26159;&#21542;&#27491;&#24120;&#24037;&#20316;&#12290;<\/li>\n<li>&#22914;&#26524;&#19968;&#20999;&#27491;&#24120;&#65292;&#24744;&#21487;&#20197;&#23558;&#23481;&#22120;&#37096;&#32626;&#21040;&#29983;&#20135;&#29615;&#22659;&#20013;&#30340;&#20219;&#20309;&#29289;&#29702;&#26381;&#21153;&#22120;&#19978;&#12290;&#36825;&#36890;&#24120;&#28041;&#21450;&#21040;&#26356;&#26032;DNS&#35299;&#26512;&#12289;&#37197;&#32622;&#38450;&#28779;&#22681;&#35268;&#21017;&#31561;&#25805;&#20316;&#12290;<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>&#25345;&#32493;&#38598;&#25104;\/&#25345;&#32493;&#37096;&#32626; (CI\/CD)<\/strong>&#65306;<\/p>\n<ul>\n<li>&#20351;&#29992; CI\/CD &#24037;&#20855;&#65288;&#22914; Jenkins, Travis CI, CircleCI &#31561;&#65289;&#26469;&#33258;&#21160;&#21270;&#37096;&#32626;&#36807;&#31243;&#12290;&#36825;&#26377;&#21161;&#20110;&#30830;&#20445;&#24212;&#29992;&#22987;&#32456;&#22788;&#20110;&#26368;&#26032;&#29366;&#24577;&#65292;&#24182;&#19988;&#21487;&#20197;&#22312;&#20986;&#29616;&#38382;&#39064;&#26102;&#24555;&#36895;&#24674;&#22797;&#12290;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#24744;&#24050;&#32463;&#25104;&#21151;&#22320;&#23558; Symfony &#24212;&#29992;&#31243;&#24207;&#36827;&#34892;&#20102;&#23481;&#22120;&#21270;&#65292;&#24182;&#23558;&#20854;&#37096;&#32626;&#21040;&#20102;&#29983;&#20135;&#29615;&#22659;&#20013;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#23558;Symfony&#24212;&#29992;&#31243;&#24207;&#23481;&#22120;&#21270;&#26159;&#19968;&#31181;&#25552;&#39640;&#37096;&#32626;&#038;#259..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[45],"tuisongtax":[],"class_list":["post-1037","my1js","type-my1js","status-publish","hentry","my1js2nav-symfony"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/1037","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=1037"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=1037"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=1037"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=1037"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}