DNMP の紹介 DNMP (Docker + Nginx + MySQL + PHP7/5 + Redis) は、フル機能のLNMP ワンクリック インストーラーです。豊富なサービス、強力な機能、使いやすさ、複数のプラットフォームとの互換性をサポートします。複数のターミナルに適した、docker 開発および本番環境用の PHP 環境の完全なセットです。 DNMP プロジェクトの特徴:
1. MySQL に接続できない問題を修正しました。 2. NGINX 仮想ドメイン名を設定します。 3. PHP拡張機能をインストールします。
MySQL接続の問題を修正 dnmp はインストール中にローカル ポート 3305 を MySQL コンテナのポート 3306 にマップするため、接続時にはポート 3305 に接続する必要があります。 サンプル コードの www ディレクトリの下に、localhost ディレクトリがあります。次のように、MySQL をテストするためのコードが見つかります。 // MySQL サービス関数 getMysqlVersion() を検出する { (拡張機能がロードされた場合('PDO_MYSQL')){ 試す { $dbh = 新しい PDO ('mysql:host=192.168.2.103;dbname=mysql', 'root', '123456'); $sth = $dbh->query('バージョンとしてVERSION()を選択します'); $info = $sth->fetch(); } キャッチ (PDOException $e) { $e->getMessage() を返します。 } $info['version']を返します。 } それ以外 { 'PDO_MYSQL 拡張機能がインストールされていません ×' を返します。 } } コードを次のように変更するだけです。 // MySQL サービス関数 getMysqlVersion() を検出する { (拡張機能がロードされた場合('PDO_MYSQL')){ 試す { $dbh = 新しい PDO ('mysql:host=192.168.2.103;port=3305;dbname=mysql', 'root', '123456'); $sth = $dbh->query('バージョンとしてVERSION()を選択します'); $info = $sth->fetch(); } キャッチ (PDOException $e) { $e->getMessage() を返します。 } $info['version']を返します。 } それ以外 { 'PDO_MYSQL 拡張機能がインストールされていません ×' を返します。 } }
NGINXドメイン名を設定する 設定する前に、いくつか明確にしておくべき点があります。ソース コード ディレクトリ、NGINX 構成ファイル、NGINX ログ ファイルの場所。 1. スクリーンショットから、conf.d ディレクトリの下に 2 つの設定ファイルがあることがわかります。これら 2 つは事前に設定したドメイン名ファイルです。このファイルは、NGINX コンテナを通じてローカル ディスクにマップされます。したがって、ホストマシンを通じて表示できます。 2. ログ ファイルは、NGINX のエラー、アクセス、およびその他の関連ログ ファイルであり、NGINX コンテナー内のホストにもマップされます。 3. ここでの www はプログラム ソース コードのパスであり、すべてのプログラム ソース コードをここに配置できます。
ステップ 1: www ディレクトリに移動してアプリケーションをインストールします。インストールには compser を使用することをお勧めします。composer を使用する場合は、簡単な設定に関するドキュメントを参照することもできます。 ert@ertiaodeMac-mini ~/develop/env/dnmp/www master ● composer create-project topthink/think=5.1.35 tp5 「./tp5」に「topthink/think=5.1.35」プロジェクトを作成する topthink/think (v5.1.35) のインストール - topthink/think (v5.1.35) のインストール: キャッシュから読み込み /app/tp5にプロジェクトを作成しました パッケージ情報を含む Composer リポジトリの読み込み 依存関係の更新(require-devを含む) パッケージ操作: インストール 2 回、更新 0 回、削除 0 回 - topthink/think-installer (v2.0.0) のインストール: キャッシュから読み込み中 - topthink/framework (v5.1.39) のインストール: キャッシュから読み込み ロックファイルの書き込み 自動ロードファイルの生成 ert@ertiaodeMac-mini ~/develop/env/dnmp/www マスター ● ll 合計 0 drwxr-xr-x 3 ert スタッフ 96B 9 6 22:02 ローカルホスト drwxr-xr-x 19 エルトスタッフ 608B 9 8 22:26 tp5 このようにして、tp5 フレームワークがローカルに設定されます。ステップ 2: NGINX コンテナに入り、docker ps で Docker コンテナのコンテナ ID を表示し、docker exec コマンドを使用してコンテナに入ります。 ert@ertiaodeMac-mini ~/develop/env/dnmp/www マスター ● docker ps コンテナID イメージ コマンド 作成ステータス ポート名 0f5f9cd08aa2 dnmp_php "docker-php-entrypoi…" 27 時間前 約 1 時間前 9000/tcp、9501/tcp php 8bc44fc8c578 dnmp_nginx "/docker-entrypoint.…" 27 時間前 26 時間前 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx f02ad53bf14d mysql:5.7.28 "docker-entrypoint.s..." 27 時間前 26 時間前にアップ 33060/tcp、0.0.0.0:3305->3306/tcp mysql5 ert@ertiaodeMac-mini ~/develop/env/dnmp/www マスター ● docker exec -it 8bc44fc8c578 /bin/sh /www#ls ローカルホスト tp5 NGINX設定ファイルのパスを入力してください / # cd /etc/nginx/ /etc/nginx # ls -la 合計60 drwxr-xr-x 1 ルート ルート 4096 9月 8日 20:23 。 drwxr-xr-x 1 ルート ルート 4096 9月 7日 19:34 .. drwxr-xr-x 5 ルート ルート 160 9月8日 20:05 conf.d -rw-r--r-- 1 ルート ルート 429 9月 6日 22:02 fastcgi-php.conf -rw-r--r-- 1 ルート ルート 1077 7月 8日 00:14 fastcgi.conf -rw-r--r-- 1 ルート ルート 1062 9月 6日 22:02 fastcgi_params -rw-r--r-- 1 ルート ルート 2837 7月 8 00:14 koi-utf -rw-r--r-- 1 ルート ルート 2223 7月 8 00:14 koi-win -rw-r--r-- 1 ルート ルート 5231 7月 8日 00:14 mime.types lrwxrwxrwx 1 root root 22 Jul 11 04:27 モジュール -> /usr/lib/nginx/modules -rw-r--r-- 1 ルート ルート 760 9月 6日 22:02 nginx.conf drwxr-xr-x 2 ルート ルート 4096 9月8日 20:23 書き換え -rw-r--r-- 1 ルート ルート 636 7月8日 00:14 scgi_params -rw-r--r-- 1 ルート ルート 664 7月 8日 00:14 uwsgi_params -rw-r--r-- 1 ルート ルート 3610 7月 8 00:14 win-utf
ドメイン構成ファイルを作成します。 /etc/nginx # conf.d/ を cd し、tp5.conf をタッチします /etc/nginx/conf.d # ls -la 合計 16 drwxr-xr-x 5 root root 160 9月8日 20:05 . drwxr-xr-x 1 ルート ルート 4096 9月 8日 20:23 .. -rw-r--r-- 1 ルート ルート 48 9月 6 22:02 .gitignore -rw-r--r-- 1 ルート ルート 2254 9月 6日 22:02 localhost.conf -rw-r--r-- 1 ルート ルート 505 9月8日 20:29 tp5.conf tp5.conf ファイルを設定します。次の内容をコピーします。 サーバー{ 聞く 80; サーバー名 tp5.com; ルート /www/tp5/public; インデックスindex.php; #NGINX ログ ファイル。別のドメイン名の場合は、ファイル名を nginx.tp5.com.xx.log に置き換えます。 アクセスログ /var/log/nginx/nginx.tp5.com.access.log; エラーログ /var/log/nginx/nginx.tp5.com.error.log; #Thinkphp5 の URL 書き換えファイルは、繰り返しの書き込みを回避し、別のファイルに配置します。将来的には、他の thinkphp プロジェクトを直接インポートできます。 rewrite/thinkphp.conf をインクルードします。 場所 ~ \.php$ { # ここで php は PHP コンテナの名前です。実際の IP に変更できます。IP が変更されるため、推奨されません。 fastcgi_passphp:9000; fastcgi-php.conf をインクルードします。 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_params を含めます。 } } ドメイン名の設定をテストし、NGINX サービスを再起動します。 /etc/nginx/conf.d # nginx -t && nginx -s リロード nginx: 設定ファイル /etc/nginx/nginx.conf の構文は正常です nginx: 設定ファイル /etc/nginx/nginx.conf のテストが成功しました /etc/nginx/conf.d # ホストマシンのホストファイルにドメイン名を追加します。 アクセステスト PHP拡張機能のインストール Docker 環境を構築する場合、PHP の Redis 拡張機能はデフォルトではインストールされません。ここでは Redis 拡張機能を例に説明します。 一部の拡張機能は組み込まれているため (特定の拡張機能については、上記の使用方法のドキュメントを参照してください)、コマンドを使用して直接インストールできます。 PHP拡張機能Redisのインストール 拡張機能のテスト /www # php --ri redis レディス Redis サポート => 有効 Redis バージョン => 5.3.1 ...... 要約する これで、docker を使用して完全な開発環境を構築する方法についての記事は終了です。docker を使用して完全な開発環境を構築する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: この記事はVueのライフサイクルを理解するのに役立ちます
サーバーの画像が他のウェブサイトからホットリンクされると、サーバーの帯域幅とアクセス速度に影響します...
目次1. 鏡を見つける2. RabbitMQイメージをダウンロードする3. RabbitMQコンテナ...
Apple マグカップのアイコンと追加機能 HD ストレージボックス – アドオンパックセイバースノ...
mkdir コマンドを使用して新しいディレクトリを作成できることは誰もが知っていますが、多くの場合、...
<br />この記事は主に、初心者にXHTMLの基本知識と、XHTMLとHTMLの違いを...
Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...
VMware12.0+Ubuntu16.04+MySQL5.7.22 インストールチュートリアルの詳...
Ubuntu 16.04 に MySQL 5.7 をインストールするにはどうすればいいですか?メイ...
この記事では、gearman+mysql メソッドを使用して永続化操作を実装します。ご参考までに、詳...
目次概要戦略パターンを使用しないフォーム検証戦略パターンを使用して最適化する戦略パターンの利点要約す...
Docker は非常に人気のあるコンテナ技術です。K8S によって廃止され、別のコンテナ技術である ...
ドキュメント モードには次の 2 つの機能があります。 1. HTML文書を解析するためにどのHTM...
まずpostcss-pxtoremをインストールします: npm install postcss-p...
私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...
画像リンク <img src="" /> jsを使用してURLが有効...