🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
https://github.com/laradock/laradock https://github.com/nickfan/laradock https://laravel-china.org/articles/3374/the-laradock-version-of-the-v2-changed-a-little-into-the-domestic-mirror https://segmentfault.com/a/1190000010905837 ~~~ cp env-example .env ~~~ .env中mysql版本换为 ~~~ 5.7.20 ~~~ 但是有人说mysql文件夹下的dockerfile中版本也要改,我没改也是5.7.20 APPLICATION_1=../ 这一行代表nginx的www目录的位置,../:指的是laradock仓库的上一级目录 mysql,php,nginx的配置信息都在laradock/.env文件里 切换php版本,可以改PHP_VERSION=70。 新增php扩展,可以改PHP_FPM_INSTALL_BCMATH=true(开启bc函数扩展) 如果swoole扩展要安装2.0版本可以到对应的dockerfile中 ~~~ pecl install swoole改为 pecl install swoole-2.0.9 ~~~ ~~~ 启动,默认php-fpm会启动的 docker-compose up -d mysql redis nginx 关闭 docker-compose down ~~~ 改站点在nginx的sites里面改 不过有人表示thinkphp的站点要这样配,没试过,记录下 ~~~ server { listen 80; listen [::]:80; server_name b2c.local; root /var/www/smallwx; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; } } location ~ ^(.+\.php)(.*)$ { fastcgi_pass php-upstream; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; } location ~ /\.ht { deny all; } location /.well-known/acme-challenge/ { root /var/www/letsencrypt/; log_not_found off; } error_log /var/log/nginx/laravel_error.log; access_log /var/log/nginx/laravel_access.log; } ~~~ 更改之后要重新构建下 ~~~ docker-compose build 名字 ~~~ 注意laravel的.env中 mysql的host也容器名mysql就行 在使用laradock的时候想要执行php artisan相关命令,需要进入Workspace容器 ~~~ # 找到Workspace容器名称 docker-compose ps # 进入工作区容器 docker-compose exec workspace bash # 运行你想要的 php artisan composer update phpunit ~~~ **容易出错的地方** .env中 LDAP 和 V8JS 也需要一起改true,因为不改他们也会报错,这是别人遇到的,我没开 然后如果用php5.6的版本 .env写一行这个 ~~~ PHP_FPM_INSTALL_MONGO_OLD=true ~~~ 没错,原本的配置文件里是没有这一行的,这个问题是因为PHP5.6 版本的问题,如果直接使用原本的 PHP_FPM_INSTALL_MONGO=true 这个配置,最后你会发现这样的报错 , ~~~ Error: Class 'MongoClient' not found ~~~ 这个问题在 laradock 的 issue 里已经有人遇到过。 https://github.com/laradock/laradock/issues/254 docker-compose.yml 文件。 ~~~ INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE} INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP} INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO} //多加了这里 INSTALL_MONGO_OLD=${PHP_FPM_INSTALL_MONGO_OLD} INSTALL_MSSQL=${PHP_FPM_INSTALL_MSSQL} INSTALL_ZIP_ARCHIVE=${PHP_FPM_INSTALL_ZIP_ARCHIVE} INSTALL_BCMATH=${PHP_FPM_INSTALL_BCMATH} ~~~ php-fpm/Dockerfile-56 文件,后面的 56 对应是的 PHP 的版本号,在原本的 MongoBD 前面加入了 Mongo(old). ~~~ ##################################### +# Mongo (old): +##################################### + +ARG INSTALL_MONGO_OLD=false +RUN if [ ${INSTALL_MONGO_OLD} = true ]; then \ + # Install the mongo extension + pecl install mongo && \ + docker-php-ext-enable mongo \ +;fi + +##################################### # MongoDB: ##################################### ~~~ https://github.com/nickfan/laradock 基于laradock把他改成中国镜像 中文文档 https://laradock-docs.linganmin.cn/zh/documentation/#%E4%BD%BF%E7%94%A8minio