プロジェクトディレクトリを作成する 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 で配列遅延評価ライブラリを実装する方法
フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...
クロージャは、純粋関数型プログラミング言語の伝統的な機能の 1 つです。クロージャをコア言語構造の不...
MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...
目次1. キューを理解する2. カプセル化キュー3. 太鼓をたたいて花を渡す場合1. キューを理解す...
フロントエンド開発者の必須科目であるCSS3は、多くの基本的なアニメーション効果を実現するのに役立ち...
目次1. $(".box1").click() メソッドを実装する2. $(&q...
Toutiao IT School で、CSS がフロントエンドの画像変形の問題を完璧に解決するとい...
序文CentOS に MySQL をインストールして設定する手順は次のとおりです。文章yumソースか...
目次1. シナリオの説明2. 解決策オプションが多すぎる el-select コンポーネントの解決策...
最初の方法: skip-grant-tables: 非常に便利なmysql起動パラメータ非常に便利な...
目次1. プロセスの基本的な概要2. プロセスの構成要素3. プロセス環境4. プロセスステータス5...
序文Crond は Linux のスケジュール実行ツール (Windows のスケジュールされたタス...
システム環境: centos7.4 1. データベースがインストールされているかどうかを確認します。...
Mac OS 10.11 に MySQL をインストールして設定する方法を、主に写真を使って手順を簡...
MySQL でデータを削除するには 2 つの方法があります。切り詰めは大まかな伐採の一種である削除は...