ホームページ > バックエンド開発 > PHPチュートリアル > PHPアプリケーションのコンテナ化とデプロイメントの詳細な説明

PHPアプリケーションのコンテナ化とデプロイメントの詳細な説明

php中世界最好的语言
リリース: 2023-03-26 16:36:02
オリジナル
3025 人が閲覧しました

今回は、PHP アプリケーションのコンテナ化とデプロイについて詳しく説明します。PHP アプリケーションのコンテナ化とデプロイの 注意事項 は何ですか?実際の事例を見てみましょう。

PHP は世界で最高の言語です。

古典的な LNMP (linux + nginx + php + mysql) 環境には、既成のデプロイメント スクリプトが多数ありますが、Docker が普及している今日でも、多くの学生がデプロイ方法についてまだ問題を抱えているため、この記事ではその方法を簡単に紹介します。 Docker と docker-compose を使用して、サーバーに php アプリケーションをデプロイします。

まず、nginx での過去の php 設定を確認してみましょう:

1

2

3

4

5

6

7

8

9

location ~ \.php$ {

 try_files  $uri =404;

 include   fastcgi_params;

 fastcgi_pass 127.0.0.1:9000;

 fastcgi_index index.php;

 fastcgi_split_path_info ^(.+\.php)(/.+)$;

 fastcgi_param PATH_INFO $fastcgi_path_info;

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

ログイン後にコピー
PHP はローカルの 9000 ポート (ip/unix ドメイン ソケット経由でアクセス可能) を使用して解析されます。もちろん、リモート サービスを通じて解析することもできます。

そのため、私たちの nginx サービスは次のように構成されています:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

server {

 listen  80;

 charset utf-8;

 # access_log /var/log/nginx/nginx.access.log main;

 error_log /var/log/nginx/error.log;

 root /var/www/html;

 index index.php index.html;

 add_header X-Cache $upstream_cache_status;

 location ~ \.php$ {

  try_files  $uri =404;

  include   fastcgi_params;

  fastcgi_pass php-fpm:9000;

  fastcgi_index index.php;

  fastcgi_split_path_info ^(.+\.php)(/.+)$;

  fastcgi_param PATH_INFO $fastcgi_path_info;

  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

 }

}

ログイン後にコピー
同時に、より難しい問題は、php コードが nginx エンジンと php エンジンの両方に存在する必要があることです。そうでないと解析できませんが、これは問題ではありません。 、docker's volume 自然なサポート!

以下の docker-compose.yml 設定を直接見てください:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

version: '2'

services:

 nginx:

  image: nginx:stable-alpine

  ports:

   - 80:80

  volumes:

   - ./conf/nginx/conf.d:/etc/nginx/conf.d

  volumes_from:

   - php-fpm

  restart: always

 php-fpm:

  image: php:7.1-fpm-alpine

  volumes:

   - ./code:/var/www/html

  restart: always

ログイン後にコピー
注:

php-fpm はローカル ディレクトリ コードを /var/www/html にマウントしました

service_name は php-fpm
nginx にアクセスするために nginx conf で使用されますvolume_from コマンドを通じて php-fpm の /var/www/html を共有します
コード ディレクトリにindex.php を書き込みます:

1

2

<?php

echo phpinfo();

ログイン後にコピー
次に実行します:

1

2

# bash

docker-compose up

ログイン後にコピー
ブラウザを開くと、見慣れた phpinfo:

が表示されます:

そこで質問が来ます。何人かの友人が「私が依存している場合はどうすればよいですか?」と尋ねたいと考えています。わかりました、それが私が先に進んで言うことです。

プロジェクトに Dockerfile を入れます:

1

2

3

FROM php:7.1-fpm-alpine

RUN docker-php-install pdo pdo-mysql

COPY src /var/www/html

ログイン後にコピー
ビルドするには、Alibaba Cloud Image Service ビルド機能または Docker が提供する自動ビルドを選択し、以前の docker-compose.yml を更新します:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

version: '2'

services:

 nginx:

  image: nginx:stable-alpine

  ports:

   - 8000:80

  volumes:

   - ./conf/nginx/conf.d:/etc/nginx/conf.d

  volumes_from:

   - php-fpm

  restart: always

 php-fpm:

  image: {YOUR_PHP_IMAGE_NAME}:{TAG}

  restart: always

ログイン後にコピー
信じてください。この記事の事例を読んだ後は、その方法を習得したことになります。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

PHP名前空間の使用の詳細な説明

PHP中国語ツールクラス ChineseUtil を使用して中国語の文字とピンインを変換する方法

以上がPHPアプリケーションのコンテナ化とデプロイメントの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート