结果展示
图片一般可以正常加载,主要是慢
php5.6
php7.1
1、准备 1 2 3 4 ├─code │ ├─edp │ └─test └─laradock
2 laradock/.env 配置 2.1、复制env-example 到.env 1 cp laradock/env-example laradock/.env
2.2、修改.env 共享目录 1 APP_CODE_PATH_HOST=../code/
虚拟机的数据文件目录(随便) 默认的虚拟机里的数据库文件存储在了主机的C 盘,可能会很大。
1 DATA_PATH_HOST=/d/project/.laradock/data
默认的php 版本
由于npm 的一些资源可能无法下载会中断 把WORKSPACE_INSTALL_NPM
开头的全改成false
比如:
1 2 WORKSPACE_INSTALL_NPM_GULP=false WORKSPACE_INSTALL_NPM_BOWER=false
3 配置另一个版本的php 复制php-fpm 为php-fpm5.6 1 cp laradock/php-fpm laradock/php-fpm5.6
编辑 laradock/docker-compose.yml 3.1.1、复制一份PHP-FPM 的php 配置并修改 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 php-fpm: build: context: ./php-fpm args: - CHANGE_SOURCE=${CHANGE_SOURCE} - BASE_IMAGE_TAG_PREFIX=${PHP_FPM_BASE_IMAGE_TAG_PREFIX} - LARADOCK_PHP_VERSION=${PHP_VERSION} php-fpm5.6: build: context: ./php-fpm args: {...与上面的PHP-FPM一样... } - LARADOCK_PHP_VERSION=5.6 {...与上面的PHP-FPM一样... } volumes: - ./php-fpm/php5.6.ini:/usr/local/etc/php/php.ini
3.1.2、把php-fpm5.6 加到nginx 的depends_on
1 2 3 4 5 6 nginx: depends_on: - php-fpm - php-fpm5.6
4 配置nginx 4.1、配置php7.1 的项目 1 cp laradock/nginx/sites/laravel.conf.example laradock/nginx/sites/j-mr.medlive.cn.conf
修改:laradock/nginx/sites/j-mr.medlive.cn.conf
1 2 server_name laravel.test; root /var/www/laravel/public;
由于一开始就把默认的php 版本设置为了7.1,所以不用改 fastcgi_pass php-upstream;
4.2、配置php5.6 的项目 1 cp laradock/nginx/sites/laravel.conf.example laradock/nginx/sites/test.project.cn.conf
修改laradock/nginx/sites/test.project.cn.conf
1 2 3 4 5 6 server_name test.project.cn; root /var/www/test/; ........ location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass php-fpm5.6:9000;
5 构建 由于已经构建过默认的php-fpm 了,所以不用再次构建
1 docker-compose up -d nginx php-fpm5.6 mysql redis
notice :记得把地址加到主机hosts 里
出错 错误1:Package “imagick” does not have REST info xml available 由于之前构建过默认的7.1 版本的php-fpm,所以在执行docker-compose up -d nginx php-fpm5.6 mysql redis
重新构建的时候出错
1 2 3 4 5 6 Package "imagick" does not have REST info xml available install failed ERROR: Service 'php-fpm5.6' failed to build: The command '/bin/sh -c if [ ${IN STALL_IMAGEMAGICK} = true ]; then apt-get install -y libmagickwand-dev ima gemagick && pecl install imagick && docker-php-ext-enable imagick ;fi' returned a non-zero code: 1
解决: 参考:Unable to install imagick
修改两个php-fpm 文件夹下的Dockerfile
laradock/php-fpm/Dockerfile
和 laradock/php-fpm5.6/Dockerfile
,都要改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 USER rootARG INSTALL_IMAGEMAGICK=falseRUN if [ ${INSTALL_IMAGEMAGICK} = true ]; then \ apt-get update && \ apt-get install -y libmagickwand-dev --no-install-recommends \ && pecl install imagick \ && docker-php-ext-enable imagick \ && rm -r /var/lib/apt/lists/* \ ;fi
参考