<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
mkdir -p /Users/mwqnice/Documents/Program/phpProgram && mkdir -p /Users/mwqnice/Documents/Program/docker/php/php7.1.33/conf && mkdir -p /Users/mwqnice/Documents/Program/docker/php/php7.1.33/logs && mkdir -p /Users/mwqnice/Documents/Program/docker/nginx/conf.d && mkdir -p /Users/mwqnice/Documents/Program/docker/mysql/conf && mkdir -p /Users/mwqnice/Documents/Program/docker/mysql/logs && mkdir -p /Users/mwqnice/Documents/Program/docker/mysql/data && cd /Users/mwqnice/Documents/Program/docker/nginx/conf.d && sudo touch default.conf
docker pull php:7.1.33-fpm #版本7.1.33
docker run --name mwq-php -v /Users/mwqnice/Documents/Program/phpProgram:/var/www/html -v /Users/mwqnice/Documents/Program/docker/php/php7.1.33/conf:/usr/local/etc/php -v /Users/mwqnice/Documents/Program/docker/php/php7.1.33/logs:/phplogs -d --link mwq-php php:7.1.33-fpm
--name mwq-php是容器的名字
/Users/mwqnice/Documents/Program/phpProgram是本地專案目錄,/var/www/html是容器內專案儲存目錄
docker pull nginx:latest //拉取最新版本
server { listen 80; server_name localhost; set $root /var/www/html/localhost; #access_log /tmp/nginx/logs/localhost.net.access.log main; #error_log /tmp/nginx/logs/localhost.net.error.log notice; location ~ .*.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root $root; } location / { root $root; index index.php index.html index.htm; if ( -f $request_filename) { break; } if (!-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } } location ~ .php(.*)$ { root $root; set $script $uri; set $path_info ""; if ($uri ~ "^(.+.php)(/.+)") { set $script $1; set $path_info $2; } fastcgi_pass mwq-php:9000; #fastcgi_index index.php; fastcgi_index index.php?IF_REWRITE=1; fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $script; include fastcgi_params; } location ~ /.ht { deny all; } location ~ /.svn { deny all; } location ~ /.git/ { deny all; } location ~ /Logs/ { deny all; } location ~ /Logs/.* { } location ~ /Logs/.* { deny all; } location ~ .*.(sql|tar.gz|zip|gz|tar|rariso|rpm|apk|bak)$ { deny all; } }
docker run --name mwq-nginx -p 80:80 -d -v /Users/mwqnice/Documents/Program/phpProgram:/var/www/html:ro -v /Users/mwqnice/Documents/Program/docker/nginx/conf.d:/etc/nginx/conf.d:ro --link mwq-php:php nginx
docker pull mysql:5.7.36 #版本5.7.36
docker run -p 3306:3306 --name mwq-mysql -v /Users/mwqnice/Documents/Program/docker/mysql/conf:/etc/mysql/conf.d -v /Users/mwqnice/Documents/Program/docker/mysql/logs:/logs -v /Users/mwqnice/Documents/Program/docker/mysql/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.36
缺少pdo_mysql擴充套件,連線資料庫失敗
找到php.ini,docker中在/usr/local/etc/php中,複製一份php.ini,增加extension=pdo_mysql.so
,重啟php-fpm,如果還是不行,存取phpinfo頁面,檢視是否有pdo_mysql
如果沒有,說明沒有pdo_mysql擴充套件,需要編譯
編譯方法如下:
到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
是因為伺服器快取資料夾的操作許可權不夠,即Runtime沒有許可權,把快取檔案全部刪除,再給Runtime777許可權就行了
sudo chmod 777 Runtime 或者直接對程式碼庫最外層設定777許可權
缺少gd擴充套件,安裝:
docker-php-ext-install gd
可能以下報錯:
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
phpinfo中顯示gd庫
注意如果phpinfo的gd庫中沒有freetype的支援,驗證碼依然顯示不出來, 會報錯:
Call to undefined function Thinkimagettftext()
如果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快速搭建PHP+Nginx+Mysql環境及踩坑 的文章就介紹到這了,更多相關Docker搭建PHP Nginx Mysq內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45