laradock原创
# 诚城的使用
- 添加站点
- 查看docker的IP地址
docker-machine env - hosts设置(bridge 模式时,IP地址为127.0.0.1):
10.75.0.1 xx.xxx.xx - nginx 设置
- sites设置
- server_name laravel.test;
- root /var/www/laravel/public;
- sites设置
- 重启nginx 容器
- 查看docker的IP地址
- 修改文件的权限 chmod 755
- 切换root用户 sudo -i
- docker-machine command not found
https://github.com/docker/machine/releases
# 重建 build
容器和镜像存在时,使用 build
重建
docker-compose build mysql
docker-compose build --no-cache php-worker
# 基本设置 (最新设置)
设置.env
- APP_CODE_PATH_CONTAINER=/var/www
- COMPOSE_PATH_SEPARATOR=: # win10下改为;,其他改为:
- PHP_VERSION=7.4
- DOCKER_HOST_IP=10.0.75.1
- CHANGE_SOURCE=ture//切换中国资源
- WORKSPACE相关设置
- WORKSPACE_COMPOSER_GLOBAL_INSTALL=true # workspace全局安装composer
- WORKSPACE_COMPOSER_REPO_PACKAGIST=https://mirrors.aliyun.com/composer/ # composer阿里云镜像
- WORKSPACE_INSTALL_NODE=true
- WORKSPACE_NODE_VERSION=node
- WORKSPACE_NPM_REGISTRY=https://registry.npm.taobao.org # npm淘宝镜像
- LARAVEL_HORIZON_INSTALL_PHPREDIS=true
- PHP_WORKER_INSTALL_REDIS=true # 可以设置为false
- WORKSPACE_INSTALL_LARAVEL_INSTALLER=true # workspace laravel安装器
- WORKSPACE_INSTALL_LIBPNG=ture
- WORKSPACE_TIMEZONE="Asia/Shanghai" # 设置workspace时区,默认是UTC
- PHP_FPM_INSTALL_OPCACHE=true # 生产环境要开启
- WORKSPACE_INSTALL_SUPERVISOR=true # 开启laravel队列需要用到 Supervisor, Linux 操作系统的进程监视器。 查看本文档的 Supervisor 配置
- WORKSPACE_INSTALL_SWOOLE=true && PHP_FPM_INSTALL_SWOOLE=true # 启动Swoole 加速 laravel
- PHP_WORKER_INSTALL_SWOOLE=true
- INSTALL_MONGO=true # 邮件驱动
- MYSQL相关设置 285行
MYSQL_VERSION=8.0.17
MYSQL_USER=XXXX
MYSQL_PASSWORD=XXXX.
MYSQL_ROOT_PASSWORD=XXXX.
修改mysql 时区
laradock\mysql\DockerfileARG TZ="Asia/Shanghai"
修改laravel 文件权限,否则会出现页面的错误
sudo chmod -R 777 storage bootstrap/cache
# Supervisor
在 mydock/php-worker 中配置 supervisor。
在supervisord.d中有示例文件,根据示例文件创建自己的配置文件,如 web-worker.conf 。
# mac
- 错误处理
Laravel 框架能够正常地使用 PHP artisan migrate 进行迁移,但是利用 Eloquent 模型访问数据库时提示 connection refused
解决办法,修改mac hosts 增加 127.0.0.1 mysql
# 报错处理 Error
外网连接 错误!
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused /bin/sh: 1: .: Can't open /home/laradock/.nvm/nvm.sh
在hosts文件中添加
151.101.76.133 raw.githubusercontent.com
,如果还是不行,就改代码:curl -o- https://monitor-majors.oss-cn-shenzhen.aliyuncs.com/install.sh|bash \ #curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh|bash \
一般的安装错误,大部分是网络原因,报错后重新执行docker-compose up --build -d xx
MySql
Different lower_case_table_names settings for server ('2') and data dictionary ('0') [建议用方法二]
- 方法一:这个是出现在升级docker 2.4版本时,解决办法:打开docker 设置,您可以禁用gRPC Fuse进行文件共享。(gRPC Fuse设置导致此问题,它与数据字典0不兼容)。
该lower_case_table_names设置告诉mysql如何存储和比较表名。如果存储数据库的文件系统本身不区分大小写,它将迫使您使用lower_case_table_names=2。
MacOS文件系统不区分大小写。直到Docker Desktop 2.4为止,mysql容器显然都不知道底层文件系统不区分大小写和设置lower_case_table_names=0。但是,由于升级到Docker 2.4,因此Docker在装载卷方面显然更聪明。因此,容器实现了在不区分大小写的文件系统上运行并强制运行lower_case_table_names=2。问题是lower_case_table_names初始化数据库后您无法更改的值。并且由于数据字典是使用初始化的lower_case_table_names=0,因此如果服务器设置为,它将无法初始化lower_case_table_names=2。
- 方法二: 删除 "C:\Users\XXXXX.laradock\data\mysql"文件,删除前记得备份
workspace
-error: /tmp/sources.sh: not found解决办法:
1.vim sources.sh 2.:set ff 如果是 dos 3.:set ff=unix 4.:wq 5.重新执行 docker-compose up --build -d xx
# 共享(挂载)问题(win10)
- servieces.msc
- 开启server服务
- gpedit.msc
- gpedit.msc 中的计算机配置→Windows设置→安全设置→本地策略→安全选项→网络访问:本地账户的共享和安全模型为“经典模式”;
- docker-desktop→setting→Shared Device勾选对应的盘符。
# nginx 配置
nginx, 文件nginx\sites下生产新的.conf文件,可参考bbs.vipnol.com.conf
修改 server_name root相关内容。
增加站点,在目录laradock\nginx\sites下增加对应的XXX.com.conf配置文件即可
另外需要修改主机的host文件(线上环境可不设置)
XXX.com.conf内容如下:
server {listen 80; listen [::]:80; # For https # listen 443 ssl; # listen [::]:443 ssl ipv6only=on; # ssl_certificate /etc/nginx/ssl/default.crt; # ssl_certificate_key /etc/nginx/ssl/default.key; server_name bbs.vipnol.com; root /var/www/bbs/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #fixes timeouts fastcgi_read_timeout 600; 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; }
重启 nginx 容器
docker-compose restart nginx
# docker 的使用
查看日志
docker logs [options] container
# centos 8 setting
需要修改 env
APP_DEBUG=false
同时每个项目都必须 执行
chmod -R 777 storage bootstrap/cache
php artisan storage:link
composer dump-autoload --optimize // compose 优化
php artisan optimize // laravel 优化
# 服务器页面加载慢的原因
- 页面引入了外网的CDN 样式 或JS 或字体