プロジェクトディレクトリを作成する php ディレクトリをコピーする 次のプロジェクト構造を作成します
├── Readme.md ├── docker-compose.yml ├── スクリプト ├── サービス │ ├── マリアdb │ │ └── Dockerファイル │ ├── nginx │ │ ├── Dockerfile │ │ ├── conf.d │ │ │ └── default.conf │ │ └── nginx.conf │ ├──php │ │ └── Dockerファイル │ └── レディス │ └── Dockerファイル └── サイト ├──index.html └──index.php 8 つのディレクトリ、10 つのファイル docker-composeファイルを編集する バージョン: "3" サービス: php: ビルド: ./services/php ポート数: # - 「9001:9000」 コンテナ名: lnmp-php 再起動: 常に ボリューム: - ./サイト:/www ネットワーク: ネット: ipv4_アドレス: 101.11.11.10 nginx: ビルド: ./services/nginx ポート: - 「81:80」 - 「444:443」 コンテナ名: lnmp-nginx 再起動: 常に ボリューム: - ./サイト:/www nginx.conf は、以下のディレクトリにあります。 - ./services/nginx/conf.d:/etc/nginx/conf.d:rw ネットワーク: ネット: ipv4_アドレス: 101.11.11.11 ネットワーク: ネット: ドライバー: ブリッジ ipam: 設定: - サブネット: 101.11.11.0/20 services/nginx ファイルを編集する nginx:1.17.0-alpineから # インストールソースを更新します RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories # タイムゾーンを上海に設定する RUN apk update && apk add --upgrade \ && apk tzdata を追加 \ && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "アジア/上海" > /etc/timezone \ && tzdata の apk services/php ファイルを編集する php:7.3.6-fpm-alpine3.9 より # インストールソースを更新します RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories # タイムゾーンを上海に設定する RUN apk update && apk add --no-cache tzdata autoconf gcc g++ make zlib-dev curl-dev\ && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "アジア/上海" > /etc/timezone \ && tzdata の apk \ && docker-php-ext-install mysqli pdo_mysql opcache \ && pecl install grpc protobuf xdebug yaf yar swoole \ && docker-php-ext-enable xdebug yaf yar swoole grpc protobuf lnmp 環境は基本的に上記で構築されています。次に、Php 解析を設定します。 services/nginx/nginx.confを変更します。必要に応じて変更できます。 ユーザー nginx; ワーカープロセスは自動です。 error_log /var/log/nginx/error.log 警告; pid /var/run/nginx.pid; イベント { ワーカー接続 1024; } http { /etc/nginx/mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log メイン; ファイル送信オン; #tcp_nopush オン; キープアライブタイムアウト65; #gzip オン; /etc/nginx/conf.d/*.conf を含めます。 } services/nginx/conf.dディレクトリ内のファイルを変更する このディレクトリは各プロジェクトの構成ファイルであり、必要に応じて単一または複数のサービスを構成できます。 サーバー{ 聞く 80; server_name ローカルホスト; #文字セット koi8-r; #access_log /var/log/nginx/host.access.log メイン; nginx を /usr/share/html にコピーします。 ルート/www; インデックス index.php index.html index.htm; #エラーページ 404 /404.html; # サーバーのエラーページを静的ページ /50x.html にリダイレクトします # エラーページ 500 502 503 504 /50x.html; 場所 = /50x.html { ルート /usr/share/nginx/html; } # PHP スクリプトを 127.0.0.1:80 で listen している Apache にプロキシします # #場所 ~ \.php$ { # プロキシパス http://127.0.0.1; #} # PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します # 場所 ~ \.php$ { #ルートhtml; 101.11.11.10:9000; をデフォルトとして設定します。 fastcgi_index インデックス.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_params を含めます。 } # Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する # nginxのものと一致します # #場所 ~ /\.ht { # すべて拒否; #} } サービスを開始する cd php && docker-compose up --build -d 上記の手順の実行時間は、ネットワーク速度と docker 構成によって異なります。一部の拡張機能は PHP でコンパイルされているため、必要に応じて削除することもできます。ブラウザから http://127.0.0.1:81 にアクセスします。phpinfo の出力情報が表示されたら、おめでとうございます。lnmp 環境がデプロイされました。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: JavaScript で配列遅延評価ライブラリを実装する方法
序文今日は、Prince が Windows で負荷分散に Nginx + Tomcat を使用する...
pre 要素は、フォーマット済みのテキストを定義します。 pre 要素で囲まれたテキストでは、通常、...
主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...
目次1. はじめに2. 初期ビュー(I) Vueの概念を理解する(II) MVVMアーキテクチャ(I...
MySQL レプリケーションの詳細な説明と簡単な例マスタースレーブレプリケーション技術は、MySQL...
序文1.ベンチマークは、テスト オブジェクトのクラスの特定のパフォーマンス指標の定量的、再現可能、比...
2次元配列の次元削減配列インスタンスメソッド concat と ES6 スプレッド演算子を使用した次...
MySQL 5.7.20のインストールと設定方法のグラフィックチュートリアルをあなたと共有します1...
1. ヘルプコマンド1. 現在のDockerバージョンを表示する docker バージョン2. イメ...
序文低速システム コールとは、決して戻らない可能性があり、プロセスを永久にブロックするシステム コー...
Docker で MySQL コンテナを作成する場合、コンテナの起動後にデータベースとテーブルが自動...
一般的に、マウスは上向きの斜め矢印として表示され、テキストの上に移動すると垂直線になり、ハイパーリン...
序文PC サーバーは今日まで発展を続け、パフォーマンスにおいて大きな進歩を遂げてきました。 64ビッ...
この記事の例では、スライディングブロック効果を実現するための小さなプログラムの具体的なコードを参考ま...
今日、SQLトレーニングの質問バンクでこの質問を見ました。これは、非常に代表的なマルチテーブル変更の...