大家好,我拿出我的macbook,帶著大家實操用docker部署mysql+php+nginx環(huán)境。
之前的小白實操搭建Nginx1.2.0+PHP7.0+MySQL5.7+Thinkphp5項目,看這篇就夠了,歡迎閱讀。
之前的是服務器上配置環(huán)境,現(xiàn)在在mac本地搭建全棧開發(fā)環(huán)境。
目錄
1.docker
1.1docker下載:
1.2配置docker下載鏡像
1.3 在本地建好對應映射關(guān)系的文件夾
2.mysql
2.1 mysql基礎知識學習:MySQL 教程 | 菜鳥教程
2.2 docker下載mysql
2.3 docker配置mysql
2.4 docker查看
?2.5?進入mysql容器使用
3.php
3.1 php基礎知識學習:PHP 教程 | 菜鳥教程
3.2 docker下載php-fpm:
3.3 docker配置php
3.4 docker查看
3.5 php中安裝連接mysql的擴展
4.nginx
4.1 nginx基礎知識學習:Nginx 安裝配置 | 菜鳥教程
4.2 docker下載nginx
4.3 docker配置nginx
4.4 docker查看
4.5 docker 里修改 nginx隨啟動
4.6配置nginx
5.運行
以上,就是今天的學習,關(guān)注我,我們一起進步!
歡迎點贊、評論,謝謝!~
本文環(huán)境:
時間:2023年
mac:MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) 版本11.6
? ? ? ? ? 處理器:2.3 GHz 四核Intel Core i7
docker:v20.10.22
mysql:5.6
php:7.2.34
nginx:1.23.3
1.docker
1.1docker下載:
Get Started | Docker進入官網(wǎng),如圖位置,點擊mac版本的docker下載.
?
安裝后,點擊圖標:
1.2配置docker下載鏡像
docker打開后進入Settings,進入Docker Engine中添加鏡像地址,這樣下載其他模塊速度快一點。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-486576.html
?
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com/",
"https://reg-mirror.qiniu.com"
]
1.3 在本地建好對應映射關(guān)系的文件夾
在www文件夾里新建一個index.php文件
<?php
echo phpinfo();
?>
?
2.mysql
2.1 mysql基礎知識學習:MySQL 教程 | 菜鳥教程
MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應用軟件之一。
2.2 docker下載mysql
docker pull mysql:5.6
2.3 docker配置mysql
docker run -it --name mysql -p 3308:3306 -v ~/mynmp/mysql/conf:/etc/mysql/conf.d -v ~/mynmp/mysql/logs:/logs -v ~/mynmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
–name mysql 指定容器名稱為 mysql
-e MYSQL_ROOT_PASSWORD=123456 初始化 root 用戶的密碼為 123456
-p 3308:3306 將容器的 3306 端口映射到主機的 3308 端口
-v ~/mynmp/mysql/data:/var/lib/mysql 將主機 ~/mynmp/mysql/data 目錄掛載到容器的 /var/lib/mysql
-v ~/mynmp/mysql/conf:/etc/mysql/conf.d 將主機 ~/mynmp/mysql/conf/my.cnf 掛載到容器的 /etc/mysql/my.cnf
-v ~/mynmp/mysql/mysql_sock:/var/run/mysqld 將主機 ~/mynmp/mysql/mysql_sock 目錄掛載到容器的 /var/run/mysqld (為防止 php 容器無權(quán)限讀取 mysql 容器的 sock 文件)
-d 后臺運行
2.4 docker查看
docker ps
?2.5?進入mysql容器使用
進入mysql容器
docker exec -it mysql /bin/bash
啟動mysql
mysql -uroot -p123456
查看mysql版本
status
授權(quán)遠程鏈接
GRANT ALL ON *.* TO`'root'@'%'`;
刷新權(quán)限
flush privileges;
更改加密規(guī)則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
修改root密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
刷新權(quán)限
flush privileges;
3.php
3.1 php基礎知識學習:PHP 教程 | 菜鳥教程
PHP(全稱:PHP:Hypertext Preprocessor,即"PHP:超文本預處理器")是一種通用開源腳本語言。
?
3.2 docker下載php-fpm:
docker pull php:7.2-fpm
3.3 docker配置php
docker run -it --name myphp -p 9000:9000 -v ~/mynmp/php/conf:/usr/local/etc/php/conf.d -v ~/mynmp/www:/www -v ~/mynmp/php/logs:/phplogs --privileged=true -d php:7.2-fpm
--name myphp 指定容器的名稱為myphp
-p 9000:9000 將容器的 9000 端口映射到主機的 9000 端口
-v ~/mynmp/www:/www 將主機的 ~/mynmp/www 目錄掛載到容器的 /www 目錄
-v ~/mynmp/mysql/mysql_sock:/var/run/mysqld 將主機 ~/mynmp/mysql/mysql_sock 目錄掛載到容器的 /var/run/mysqld (為防止 php 容器無權(quán)限讀取 mysql 容器的 sock 文件)
--link mysql:mysql 將 mysql 容器的網(wǎng)絡并入 myphp 容器,實現(xiàn)容器間的通信
-d 保持后臺運行
3.4 docker查看
docker ps
3.5 php中安裝連接mysql的擴展
docker exec -it myphp /bin/bash
docker-php-ext-install mysql
docker-php-ext-install mysqli
docker-php-ext-install pdo
4.nginx
4.1 nginx基礎知識學習:Nginx 安裝配置 | 菜鳥教程
Nginx("engine x")是一款是由俄羅斯的程序設計師Igor Sysoev所開發(fā)高性能的 Web和?反向代理?服務器,也是一個 IMAP/POP3/SMTP?代理服務器。在高連接并發(fā)的情況下,Nginx是Apache服務器不錯的替代品.
4.2 docker下載nginx
docker pull nginx
4.3 docker配置nginx
docker run -it --name mynginx -p 8080:80 -v ~/mynmp/nginx/conf:/etc/nginx/conf.d -v ~/mynmp/www:/www -v ~/mynmp/nginx/logs:/var/log/nginx --link myphp:php -d nginx
--name nginx 指定當前容器名稱為 nginx
-p 80:80 將容器的 80 端口映射到主機的 80 端口
-v ~/mynmp/www:/usr/share/nginx/html 將主機的 ~/mynmp/www 目錄掛載到容器的 /www
-v ~/mynmp/nginx/conf.d:/etc/nginx/conf.d 將主機的 ~/mynmp/nginx/conf.d 目錄掛載到容器的 /etc/nginx/conf.d
--link myphp:php 將 myphp?容器的網(wǎng)絡并入 nginx 容器,實現(xiàn)容器間的通信
4.4 docker查看
docker ps
4.5 docker 里修改 nginx隨啟動
登錄docker:
docker exec -it mynginx /bin/bash
docker實例隨docker啟動:
docker update --restart=always mynginx
更改配置后重啟:
docker restart mynginx
4.6配置nginx
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /www;
index index.html index.htm index.php;
# 因為我這里用的TP框架所以加了下面這個,可以根據(jù)自己情況去掉
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass 172.17.0.3:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name;
# scripts$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;
#}
}
5.運行
以上三個模塊安裝配置好里,docker ps查看如下:
?打開http://localhost:8080/index.php?,可以看到如下圖展示,所有配置完成!~
?以上就是今天的分享,你學會了嗎?文章來源:http://www.zghlxwxcb.cn/news/detail-486576.html
?
以上,就是今天的學習,關(guān)注我,我們一起進步!
歡迎點贊、評論,謝謝!~
到了這里,關(guān)于用MacBook實操:docker本地部署mysql+php+nginx壞境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!