这又是一次不成功的尝试,10 个月前试过一次,同样由于权限问题止步。此次记录下来备查。 windows 10 系统。官网下载安装包,下一步下一步,安装后重启。确认安装成功后,打开 CMD 。 运行一个 ubuntu 的 container
1 docker run -ti --name lamp ubuntu:16.04 bash
升级系统
1 2 apt-get -y update apt-get -y upgrade
安装apache2
1 apt-get -y install apache2
查看 apache 版本
1 2 3 apache2 -v Server version: Apache/2.4.18 (Ubuntu) Server built: 2017-05-05T16:32:00
启用 Apache rewrite 模块
1 vim /etc/apache2/sites-available/000-default.conf
在文件末尾添加 下面的
1 2 3 <Directory "/var/www/html"> AllowOverride all </Directory>
安装 MySQL 5.7
1 apt-get -y install mysql-server-5.7 mysql-client-5.7
输入 root 的密码:root
1 2 3 4 5 service mysql restart mysql -u root -p Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
创建数据库 magento 并将所有权限授予 magento 用户 密码 magento
1 2 3 4 5 create database magento; GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY 'magento'; exit mysql -u magento -p show databases;
安装 php 7
1 2 3 4 5 apt-get -y update apt-get install software-properties-common add-apt-repository ppa:ondrej/php apt-get -y update apt-get install -y php7.0 libapache2-mod-php7.0 php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-mcrypt php7.0-curl php7.0-intl php7.0-xsl php7.0-mbstring php7.0-zip php7.0-bcmath php7.0-iconv
1 2 3 4 5 6 php -v PHP 7.0.19-1+deb.sury.org~xenial+1 (cli) (built: May 11 2017 14:06:14) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.19-1+deb.sury.org~xenial+1, Copyright (c) 1999-2017, by Zend Technologies
PHP 的其他设置 有两个 php.ini /etc/php/7.0/apache2/php.ini /etc/php/7.0/cli/php.ini 两个都需要更改并启用 opcache
1 2 3 4 5 6 date.timezone = "Asia/Shanghai" memory_limit = 1024M opcache.enable=1 opcache.enable_cli=1 opcache.save_comments = 1 service apache2 restart
1 docker commit -m "This is lamp for magento2" -a "Pisces.ThankIT" lamp wqdocker/lamp:v1
这样我就得到了一个 lamp 的 image 然后我尝试更改挂载上去的目录权限,无效。 以下是失败的部分
1 docker run -tid -p 80:80 --name lampv1 -v g:/dockerwww:/var/www/html wqdocker/lamp:v1 bash
1 docker run -tid -p 80:80 -p 3306:3306 --name lampv2 -v g:/dockerwww:/var/www/html wqdocker/lamp:v1 bash
进入容器
1 2 3 docker attach lampv1 service apache2 start service mysql start
1 2 3 4 5 6 7 8 9 10 11 12 useradd -r -m -s /bin/bash magento 配置用户的密码(magento) passwd magento 寻找 apache 的 user (www-data) ps aux grep apache www-data 的 group 也是www-data groups www-data 把 magento 用户创建的任何文件都分配给 www-data 组 usermod -g www-data magento 验证下 magento 在 www-data 组 groups magento chown magento:www-data index.php
无法修改权限,查了一些资料,推测是 docker 在 windows 系统上的 bug 。 在 ubuntu 系统下,权限的映射有点小问题,但是可以解决。