<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # **第一步:前期準備** **** 1.先在D盤建兩個文件夾**project**和**config**.**project**放項目文件,**config**放nginx,mysql,php等配置文件 然后 在**Oracle VM VirtualBox**設置共享文件夾,如下圖片所示 ![](https://img.kancloud.cn/4d/d4/4dd4ba05274847cbb33e55631f74da96_973x572.png) 記得把**自動掛載**勾選上,這樣docekr啟動后,會自動加載,啟動后如下圖所示: ![](https://img.kancloud.cn/92/5e/925ec9d271ef164afafe492c46dab5a2_638x686.png) 2.下載mysql(版本5.7),php(版本7.2),nginx(版本1.16)鏡像 `docker pull mysql:5.7 ` `docker pull php:7.2-fpm` `docker pull nginx:1.16` ***** # **第二步:創建容器** ***** #### 1.創建mysql容器 創建mysql容器之前,先在`D:\config\mysql\conf`創建配置文件` my.conf`,下面是配置代碼: ``` [mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8mb4 [mysqld] # 設置3306端口 port =3306 #存放數據的目錄 datadir=/var/lib/mysql # 允許最大連接數 max_connections=20 # 服務端使用的字符集默認為8比特編碼的latin1字符集 character-set-server=utf8mb4 collation-server = utf8mb4_unicode_ci # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB #認證方式(如果這里不修改,會新版的密碼認證,會連接不了數據庫的,并且要放到mysqld下) default_authentication_plugin = mysql_native_password ``` #### 創建mysql容器 `docker run -d -v /config/mysql/log:/var/log/mysql -v /config/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin123 --name mysql57 mysql:5.7 ` > 參數說明 > -d 讓容器在后臺運行 > -v 添加目錄映射,即主機上的**D:\config\mysql\log,D:\config\mysql\conf**分別和容器中`/var/log/mysql,/etc/mysql/conf.d`目錄是同步的 > -p 添加主機到容器的端口映射 > -e 設置環境變量,這里是設置mysql的root用戶的初始密碼,這個必須設置 > –name 容器的名字,隨便取,但是必須唯一 > **進入mysql 終端** `docker exec -it mysql57 bash` > 參數說明 > > -t 在容器里生產一個偽終端 > -i 對容器內的標準輸入 (STDIN) 進行交互 **登陸mysql** `mysql -uroot -p` 輸入密碼后,如出現以下的錯誤信息, `mysql: [Warning] World-writable config file '/etc/mysql/conf.d/my.cnf' is ignored. ` 這是配置文件`my.conf`的權限太高了,需要設置為只讀即可.如下圖所示: ![](https://img.kancloud.cn/d8/77/d877ea8e46e3d02814532f943b631668_725x618.png) 然后重啟mysql容器,這樣`my.conf`的配置就會生效 `docker restart mysql57 ` **登陸mysql后,設置下權限,方便外部訪問** ``` GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'admin123'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin123'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'admin123'; FLUSH PRIVILEGES; ``` 利用`navicat`連接測試,如下圖 ![](https://img.kancloud.cn/f8/65/f865f479df5048636564289892927c02_566x668.png) ***** ### 2:創建php容器 `docker run -d -v /project/www/html:/usr/share/nginx/html/ -p 9000:9000 --link mysql57:mysql --name php72 php:7.2-fpm ` > 參數說明 > > -d 讓容器在后臺運行 > -p 添加主機到容器的端口映射 > -v 添加目錄映射,即主機上的/project/www/html:和容器中/usr/share/nginx/html/目錄是同步的 > –name 容器的名字 > –link 與另外一個容器建立起聯系,這樣我們就可以在當前容器中去使用另一個容器里的服務。 這里如果不指定–link參數其實也是可以得,因為容易本身也是有ip的且唯一,所以我們也可以直接利用ip去訪問容器。 進入容器,安裝 pdo 以便后邊測試數據庫連接,在docker容器中可以這樣來安裝 > docker exec -it php72 bash > docker-php-ext-install pdo_mysql ![](https://img.kancloud.cn/4e/88/4e8833ee21083c84fa4b0aee8304ceda_638x561.png) 重啟php容器 `docker restart php72` ***** ### 第三步:安裝nginx 1.16 在`D:\config\nginx\conf.d`目錄下創建配置文件:`default.conf`,代碼如下: ``` server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass php72:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } ``` 創建容器 映射了配置文件和文件目錄 ` docker run -d -p 80:80 -v /project/www/html:/usr/share/nginx/html/ -v /config/nginx/conf.d:/etc/nginx/conf.d --link php72:phpfpm --name nginx116 nginx:1.16` ***** # **第三步:測試** **1.查看服務** ![](https://img.kancloud.cn/99/f8/99f8cf3df3590e6f5a19e7dd9d54cc8a_1643x119.png) 三個容器都在運行狀態 **2.測試php解析** 在`D:\project\www\html`下創建`index.php`文件,輸入下面的代碼 ~~~ <?php phpinfo(); ~~~ 訪問`index.php` ![](https://img.kancloud.cn/91/22/9122e88deefb5fc5ed516df4957acbe1_1118x806.png) ![](https://img.kancloud.cn/e6/c7/e6c74211e1a6420730fb50335da3e246_1007x632.png) **3.測試 mysql 鏈接** 修改index.php ~~~ <?php // phpinfo(); $dbms = 'mysql'; //數據庫類型 $host = '192.168.99.100'; //數據庫主機名,此處寫mysql容器的名字會出現錯誤,直接用docker的ip地址即可 $dbport = '3306'; $dbName = 'mysql'; //使用的數據庫 $user = 'root'; //數據庫連接用戶名 $pass = 'admin123'; //對應的密碼 $dsn = "$dbms:host=$host;port=$dbport;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pass); //初始化一個PDO對象 echo "連接成功<br/>"; $dbh = null; } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); } ~~~ ![](https://img.kancloud.cn/af/bd/afbd340d6f581173ac9a7d420d54a63f_521x111.png) 看到這個,說明我們的配置成功了
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看