亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

docker完整配置nginx+php+mysql的方法步驟

2024-08-30 12:30:14
字體:
來源:轉載
供稿:網友

首先了解一個方法:

使用docker exec進入Docker容器

docker在1.3.X版本之后還提供了一個新的命令exec用于進入容器,這種方式相對更簡單一些,下面我們來看一下該命令的使用:

sudo docker exec --help  

docker,配置,nginx,php,mysql

接下來我們使用該命令進入一個已經在運行的容器

$ sudo docker ps $ sudo docker exec -it 775c7c9ee1e1 /bin/bash

一. 配置nginx

查找Docker Hub 上的 nginx 鏡像

runoob@runoob:~/nginx$ docker search nginxNAME           DESCRIPTION                   STARS   OFFICIAL  AUTOMATEDnginx           Official build of Nginx.            3260   [OK]    jwilder/nginx-proxy    Automated Nginx reverse proxy for docker c...  674         [OK]richarvey/nginx-php-fpm  Container running Nginx + PHP-FPM capable ...  207         [OK]million12/nginx-php    Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...  67          [OK]maxexcloo/nginx-php    Docker framework container with Nginx and ...  57          [OK]webdevops/php-nginx    Nginx with PHP-FPM               39          [OK]h3nrik/nginx-ldap     NGINX web server with LDAP/AD, SSL and pro...  27          [OK]bitnami/nginx       Bitnami nginx Docker Image           19          [OK]maxexcloo/nginx      Docker framework container with Nginx inst...  7          [OK]...

這里我們拉取官方的鏡像

runoob@runoob:~/nginx$ docker pull nginx

等待下載完成后,我們就可以在本地鏡像列表里查到 REPOSITORY 為 nginx 的鏡像。

runoob@runoob:~/nginx$ docker images nginxREPOSITORY     TAG         IMAGE ID      CREATED       SIZEnginx        latest       555bbd91e13c    3 days ago     182.8 MB

創建并運行容器:

docker run --name mynginx -p 80:80 -v /var/www:/var/www -v /usr/local/nginx/conf/conf.d:/etc/nginx/conf.d -d nginx

注意:

-v 添加文件映射關系,這樣在宿主機上更改的文件可以直接映射到容器中。這里的目錄根據自己實際情況進行映射。

創建并運行容器后,docker內的nginx即啟動成功,無需進入docker內部再次啟動nginx, 否則會提示80等端口被占用,因為nginx已經啟動。

這時候便可以訪問nginx配置的域名驗證了。

我這里映射的conf.d主要包含nginx的配置文件,php的配置信息為:

# phpserver {  charset utf-8;  client_max_body_size 128M;  listen 80; ## listen for ipv4  #listen [::]:80 default_server ipv6only=on; ## listen for ipv6  server_name www.baidu.com;  root    /var/www;  index    index.php;  location / {    #-e表示只要filename存在,則為真    if (!-e $request_filename){      rewrite ^(.*)$ /index.php?s=$1 last;      break;    }    # Redirect everything that isn't a real file to index.php    try_files $uri $uri/ /index.php$is_args$args;  }  # uncomment to avoid processing of calls to non-existing static files by Yii  #location ~ /.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {  #  try_files $uri =404;  #}  #error_page 404 /404.html;  # deny accessing php files for the /assets directory  location ~ ^/assets/.*/.php$ {    deny all;  }  location ~ /.php$ {    include fastcgi_params;    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;    fastcgi_pass 172.17.0.3:9000;    #fastcgi_pass unix:/var/run/php5-fpm.sock;    try_files $uri =404;  }  location ~* //. {    deny all;  }}

注意最后面的fastcgi_pass的ip地址,在php配置常見問題有詳細介紹。

二. php配置

查找Docker Hub上的php鏡像

runoob@runoob:~/php-fpm$ docker search phpNAME           DESCRIPTION                   STARS   OFFICIAL  AUTOMATEDphp            While designed for web development, the PH...  1232   [OK]    richarvey/nginx-php-fpm  Container running Nginx + PHP-FPM capable ...  207         [OK]phpmyadmin/phpmyadmin   A web interface for MySQL and MariaDB.     123         [OK]eboraas/apache-php    PHP5 on Apache (with SSL support), built o...  69          [OK]php-zendserver      Zend Server - the integrated PHP applicati...  69    [OK]    million12/nginx-php    Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...  67          [OK]webdevops/php-nginx    Nginx with PHP-FPM               39          [OK]webdevops/php-apache   Apache with PHP-FPM (based on webdevops/php)  14          [OK]phpunit/phpunit      PHPUnit is a programmer-oriented testing f...  14          [OK]tetraweb/php       PHP 5.3, 5.4, 5.5, 5.6, 7.0 for CI and run...  12          [OK]webdevops/php       PHP (FPM and CLI) service container       10          [OK]...

這里我們拉取官方的鏡像,標簽為5.6-fpm

runoob@runoob:~/php-fpm$ docker pull php:5.6-fpm

等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為php,標簽為5.6-fpm的鏡像。

runoob@runoob:~/php-fpm$ docker imagesREPOSITORY     TAG         IMAGE ID      CREATED       SIZEphp         5.6-fpm       025041cd3aa5    6 days ago     456.3 MB

創建并運行php容器:

docker run -p 9000:9000 --name phpfpm -v /var/www:/var/www -d php:5.6-fpm

注意這里一定要創建文件映射,或者php容器內有對應的php代碼。上一步nginx的文件映射,在這里是找不到的。所以如果沒有文件映射,127.0.0.1:9000 在此容器內就找不到文件 。

常見問題:

啟動php容器后,如果訪問nginx為:502 Bad Gateway

嘗試以下方法:

查看php鏡像的ip地址

docker inspect --format='{{.NetworkSettings.IPAddress}}' phpfpm

如:192.168.4.202

那么修改nginx的conf配置文件,使fastcgi_pass的值為 192.168.4.202:9000

vim /docker/nginx/conf.d/default.conf

fastcgi_pass 192.168.4.202:9000;

重啟nginx容器后,就可以正常訪問。

三. mysql配置

查找Docker Hub上的mysql鏡像

runoob@runoob:/mysql$ docker search mysqlNAME           DESCRIPTION                   STARS   OFFICIAL  AUTOMATEDmysql          MySQL is a widely used, open-source relati...  2529   [OK]    mysql/mysql-server    Optimized MySQL Server Docker images. Crea...  161         [OK]centurylink/mysql    Image containing mysql. Optimized to be li...  45          [OK]sameersbn/mysql                             36          [OK]google/mysql       MySQL server for Google Compute Engine     16          [OK]appcontainers/mysql   Centos/Debian Based Customizable MySQL Con...  8          [OK]marvambass/mysql     MySQL Server based on Ubuntu 14.04       6          [OK]drupaldocker/mysql    MySQL for Drupal                2          [OK]azukiapp/mysql      Docker image to run MySQL by Azuki - http:...  2          [OK]...

這里我們拉取官方的鏡像,標簽為5.6

runoob@runoob:~/mysql$ docker pull mysql:5.6

等待下載完成后,我們就可以在本地鏡像列表里查到REPOSITORY為mysql,標簽為5.6的鏡像。

runoob@runoob:~/mysql$ docker images |grep mysqlmysql        5.6         2c0964ec182a    3 weeks ago     329 MB

創建并運行MySQL容器:

docker run -p 3306:3306 --name mysql -v /usr/local/mysql:/etc/mysql/sqlinit -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

這里的文件映射主要目的是把宿主機的sql數據庫數據文件映射到docker mysql容器,方便導入,注意這里mysql容器的目錄不能是已有的目錄,否則會覆蓋。

注意:

這里創建容易已經有了my.cnf,無需自己添加。

拓展

使用外部工具navicat連接docker 內mysql

mysql的host 填寫docker內的IP,獲取方式為:

docker inspect --format='{{.NetworkSettings.IPAddress}}' mysql

docker,配置,nginx,php,mysql

填寫ssh連接信息:

docker,配置,nginx,php,mysql

即可連接成功!

注意:

docker的容器啟動順序問題會導致容器的IP地址不一致,如果在連接數據庫和fastcgi處有用到容器的IP,要注意容器的啟動順序。

重啟容器:docker restart 容器名/容器ID

關閉容器:docker stop xxx

開啟容器:docker start xxx

查看正在運行的容器:docker ps

查看所有容器(包括未運行的容器): docker ps -a

創建并運行容器: docker run

---------------------------------------

常見報錯:

1.  thinkphp報錯 Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

缺少pdo_mysql擴展,鏈接數據庫失敗

找到php.ini,docker中在/usr/local/etc/php中,復制一份php.ini,增加 extension=pdo_mysql.so ,重啟phpfpm。

如果還不行,訪問phpinfo頁面,查看是否有pdo_mysql

docker,配置,nginx,php,mysql

如果沒有,說名擴展不存在,需要編譯。

編譯方法如下:

可以通過兩種方式實現

方式一(未驗證):

pecl pdo_msql

方式二(已驗證可行):

到docker的php容器中,在php文件夾下:

docker-php-ext-install pdo pdo_mysql

如果報 /usr/local/bin/docker-php-ext-enable: cannot create /usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini: Directory nonexistent

解決方案:

直接在/usr/local/etc/php目錄下面新建 conf.d目錄和對應的docker-php-ext-pdo_msql.ini文件

其中docker-php-ext-pdo_msql.ini的內容為:

extension=pdo_mysql.so

2. thinkphp 報錯 _STORAGE_WRITE_ERROR_:./Application/Runtime/Cache/Home/4e64ea6a2012f26b832b14cbc2152b28.php

是因為服務器緩存文件夾的操作權限不夠,即Runtime沒有權限,把緩存文件全部刪除,再給Runtime777權限就行了

sudo chmod 777 Runtime 或者直接對代碼庫最外層設置777權限

3. thinkphp驗證碼圖片顯示不出來

docker,配置,nginx,php,mysql

缺少gd擴展,安裝:

docker-php-ext-install pdo pdo_mysql

可能以下報錯:

If configure fails try --with-webp-dir=<DIR>If configure fails try --with-jpeg-dir=<DIR>configure: error: png.h not found.

安裝:

apt-get install libpng-dev libjpeg-dev

再次執行:

// 增加freetype配置docker-php-ext-configure gd --enable-gd-native-ttf --with-freetype-dir=/usr/include/freetype2 --with-png-dir=/usr/include --with-jpeg-dir=/usr/include// 安裝docker-php-ext-install gd

php.ini增加php_gd2.so

docker,配置,nginx,php,mysql

phpinfo中顯示gd庫

docker,配置,nginx,php,mysql

注意如果phpinfo的gd庫中沒有freetype的支持,驗證碼依然顯示不出來, 會報錯:

Call to undefined function Think/imagettftext()

如果gd庫中沒有freeType,則按照以下步驟進行:

docker-php-ext-configure gd --enable-gd-native-ttf --with-freetype-dir=/usr/include/freetype2 --with-png-dir=/usr/include重新編譯:docker-php-ext-install gd

如果報錯:

configure: error: freetype-config not found.

運行: apt- get -y install libfreetype6-dev ,然后再繼續運行上面的命令。 

gd庫中有了freetype,則驗證碼顯示正常了:

docker,配置,nginx,php,mysql

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视屏在线播放| 亚洲аv电影天堂网| 欧美日韩在线视频一区| 不卡伊人av在线播放| 97视频在线免费观看| 日韩中文字幕视频在线观看| 日韩美女福利视频| 夜夜嗨av一区二区三区免费区| 精品久久久久久| 国产精品爽爽爽爽爽爽在线观看| 在线视频亚洲欧美| 国产日韩欧美夫妻视频在线观看| 国产在线观看精品一区二区三区| 秋霞午夜一区二区| 国产成人免费av| 精品福利免费观看| 国产午夜精品理论片a级探花| 久久这里只有精品99| 久久人人爽人人爽爽久久| 亚洲精品视频网上网址在线观看| 亚洲另类xxxx| 2019日本中文字幕| 亚洲视频在线观看| 亚洲国产精品99| 亚洲日韩欧美视频| 日韩中文字幕欧美| 欧美国产第二页| 亚洲欧美国产精品va在线观看| 一区二区日韩精品| 成人免费视频xnxx.com| 成人av在线天堂| 日韩在线视频中文字幕| 日韩一区二区三区国产| 午夜欧美不卡精品aaaaa| 欧美精品成人在线| 亚洲高清免费观看高清完整版| 国产精品爽爽爽爽爽爽在线观看| 国产在线不卡精品| 亚洲国产成人精品久久久国产成人一区| 尤物九九久久国产精品的特点| 国产噜噜噜噜久久久久久久久| 91免费国产视频| 欧美激情亚洲国产| 欧美色欧美亚洲高清在线视频| 午夜精品久久久久久久男人的天堂| 91精品啪aⅴ在线观看国产| 亚洲精品v欧美精品v日韩精品| 夜夜躁日日躁狠狠久久88av| 久久久久一本一区二区青青蜜月| 亚洲色图综合久久| 久久影视电视剧凤归四时歌| 中文字幕亚洲天堂| 日韩精品在线视频| 国产精品普通话| 成人免费xxxxx在线观看| 国产成人亚洲综合青青| 日本欧美爱爱爱| 亚洲va久久久噜噜噜| 97国产真实伦对白精彩视频8| 国产网站欧美日韩免费精品在线观看| 欧美一区二粉嫩精品国产一线天| 欧美成人精品影院| 成人a级免费视频| 欧美激情一区二区三区在线视频观看| 国产精品久久久久久久久免费看| 欧洲亚洲妇女av| 中文字幕欧美在线| 日韩av免费看网站| 成人欧美一区二区三区在线| 日韩中文字幕第一页| 亚洲黄色www| 成人免费观看49www在线观看| 一道本无吗dⅴd在线播放一区| 一区二区三区回区在观看免费视频| 国产精品扒开腿做爽爽爽视频| 中文字幕亚洲字幕| 久久乐国产精品| 欧美在线视频一区二区| 亚洲综合最新在线| 中文字幕在线观看亚洲| 国产日韩精品在线播放| 国产精品免费在线免费| 日韩欧美在线观看| 亚洲美女又黄又爽在线观看| 亚洲最新av网址| 亚洲第一网站免费视频| 欧美俄罗斯乱妇| 亚洲一区二区三区成人在线视频精品| 欧美日韩色婷婷| 亚洲春色另类小说| 97在线视频精品| 成年无码av片在线| 国产亚洲精品美女久久久久| 中文字幕成人精品久久不卡| 国产欧美日韩精品丝袜高跟鞋| 国产精品久久久久久久久免费| 国产亚洲人成a一在线v站| 在线观看久久久久久| 亚洲美女黄色片| 亚洲午夜未满十八勿入免费观看全集| 国产精品三级网站| 国产日韩欧美视频| 51ⅴ精品国产91久久久久久| 国语自产精品视频在线看抢先版图片| 91亚洲精品一区二区| 亚洲最新av在线| 66m—66摸成人免费视频| 日韩av电影免费观看高清| 中文字幕一区二区三区电影| 欧美高清在线视频观看不卡| 久久五月情影视| 韩国v欧美v日本v亚洲| 欧美亚洲另类制服自拍| 777午夜精品福利在线观看| 久久久久免费视频| 国产精品揄拍一区二区| 久久99久国产精品黄毛片入口| 黑人狂躁日本妞一区二区三区| 日本三级久久久| 国产成+人+综合+亚洲欧美丁香花| 亚洲视频视频在线| 亚洲欧美制服综合另类| 亚洲乱码av中文一区二区| 亚洲天堂av女优| 911国产网站尤物在线观看| 欧美激情二区三区| 久久久亚洲精选| 欧美特级www| 日韩暖暖在线视频| 2025国产精品视频| 国产精品久久久久久久久久久久久| 91精品国产综合久久香蕉922| 亚洲综合精品一区二区| 日韩av最新在线| 久久精品成人欧美大片古装| 亚洲一区二区三区四区在线播放| 成人福利在线观看| 91在线免费网站| 亚洲第一网中文字幕| 北条麻妃一区二区三区中文字幕| 亚洲国产高清高潮精品美女| 91国内产香蕉| 亚洲日韩欧美视频| 亚洲国产精品国自产拍av秋霞| 亚洲日韩中文字幕在线播放| 日韩欧美国产一区二区| 欧美整片在线观看| 欧美国产精品日韩| 久久久久久久av| 77777亚洲午夜久久多人| 18一19gay欧美视频网站| 亚洲国产精品人人爽夜夜爽| 亚洲性线免费观看视频成熟| 日韩少妇与小伙激情| 久久九九亚洲综合| 国产精品国语对白| 中文字幕视频一区二区在线有码| 色婷婷综合成人av| 久久久久久久久久久久久久久久久久av| 正在播放欧美视频| 亚洲自拍欧美色图| 久久大大胆人体| 隔壁老王国产在线精品| 国产综合视频在线观看|