DNMP一鍵部署PHP8.2和Laravel10的Docker環(huán)境
服務器環(huán)境
所有命令皆在root用戶下運行
VMware虛擬機下的ubuntu22.04
docker24.0.7
docker-compose 2.6.1
yeszao/dnmp開源倉庫倉庫地址:https://gitee.com/yeszao/dnmp
本文章只提供整個部署的過程,對docker、dockerFile以及docker-compse的知識最好有初步的認識,才能更好的理解
流程
① 首先在/www文件夾拉取dnmp項目,代碼如下:
root$ mkdir /www #根目錄下創(chuàng)建www文件夾
root$ cd /www #切換到www目錄
root$ git clone https://gitee.com/yeszao/dnmp.git #克隆dnmp項目
root$ cd dnmp #切換到dnmp文件夾
root$ cp env.sample .env # 復制環(huán)境變量文件
root$ cp docker-compose.sample.yml docker-compose.yml # 復制 docker-compose 配置文件。默認啟動3個服務:
# Nginx、PHP7和MySQL8。要開啟更多其他服務,如Redis、
# PHP5.6、PHP5.4、MongoDB,ElasticSearch等,請刪
# 除服務塊前的注釋
② 創(chuàng)建Laravel項目(在dnmp的www文件夾下) 請忽略第二步,在這里創(chuàng)建項目不是我們的目的,等容器啟動完在進入PHP容器創(chuàng)建較為穩(wěn)妥,除非你是要將已有的項目clone到這里
root$ cd www #進入dnmp的www文件夾
root$ composer create-project laravel/laravel Laravel10 #創(chuàng)建Laravel項目,并命名為Laravel10
root$ cd .. #回到dnmp文件夾進行下一步操作
③ 修改dnmp的.env文件使用php8.2版本
root$ vim .env #編輯 .env文件
在.env文件中找到以下內容
PHP80_VERSION=8.0.30
PHP80_PHP_CONF_FILE=./services/php80/php.ini
PHP80_FPM_CONF_FILE=./services/php80/php-fpm.conf
PHP80_LOG_DIR=./logs/php80
PHP80_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcache
將 8.0.30 改為8.2并保存退出
PHP80_VERSION=8.2
④ 修改nginx容器的配置文件
root$ vim services/nginx/conf.d/localhost.conf
改動如下圖(四處改動,root的第二個是你laravel項目的主目錄名,這里只為快速啟動,想要將laravel項目配置到其他端口可以新建配置文件,再到docker-compose.yml進行端口映射即可)
⑤ 修改docker-compose文件,找到php80的位置
root$ vim docker-compose.yml
⑥ 啟動各個容器(這里啟動mysql5、nginx、php80;ps:若為mysql8則將mysql5改為mysql即可)
root$ docker-compose up mysql5 nginx php80
等待docker對各個鏡像的下載和編排啟動,一般不會出什么問題,若出錯請百度其他文章解決, 有個小坑,如果你也和我一樣使用VMware的話,請不要在共享文件夾進行這些操作,否則編排容器時會報錯,我找不到解決辦法 ┭┮﹏┭┮
出現(xiàn)以下界面即為啟動成功,或者查看docker容器,是否存在你啟動的容器
⑦別急,最后一步,按照docker的理念,我們應該進入php80容器執(zhí)行php以及composer命令,創(chuàng)建laravel10項目文章來源:http://www.zghlxwxcb.cn/news/detail-807411.html
root$ docker ps #查看運行中的容器,主要是為了查看php80容器的id
root$ docker exec -it 19faa598ed76 sh #19faa598ed76 請改為你直接的php80容器id
/www$ composer create-project laravel/laravel Laravel10 #創(chuàng)建laravel10項目
#建議將更改composer為國內鏡像源,https://learnku.com/articles/15977/composer-accelerate-and-modify-mirror-source-in-china
/www$ chown -R www-data:www-data /www/Laravel10/storage #若你使用mysql5進入容器后請運行此條命令
/www$ chmod -R 775 /www/Laravel10/storage #若你使用mysql5進入容器后請運行此條命令,否則無法寫入日志文件報錯
#進入容器后就是簡單的Laravel初始化操作了,即安裝依賴以及生成appkey
#composer install
#php artisan key:generate
#初始化完成后exit退出容器控制臺
文章來源地址http://www.zghlxwxcb.cn/news/detail-807411.html
最后
- 給個贊?
- 項目端口為80,請訪問服務器or虛擬機的ip地址即可
- 對于dnmp的更多詳細內容請閱讀倉庫的yeszao/dnmp 的 Readme.md
到了這里,關于DNMP一鍵部署PHP8.2和Laravel10的Docker環(huán)境的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!