Giter Club home page Giter Club logo

docker-magento's Introduction

docker for magento 1.9

为 Magento 1.9.x.x 准备的docker环境,可能1.7.x1.8.x也能用

安装 docker & docker-compose

参见docker 官方文档
https://docs.docker.com/install/linux/docker-ce/ubuntu/
https://docs.docker.com/compose/install/#master-builds

创建项目文件夹

# 项目文件夹
mkdir magento-domain-1/ && cd magento-domain-1/

# magento 1.x 代码文件夹
mkdir public/

文件夹结构

magento-domain-1/
├── .docker-compose/ # <---- docker-compose 运行及数据文件夹
│   ├── adminer
│   ├── db
│   ├── docker-compose.yml
│   ├── .env
│   ├── .env.example
│   ├── .git
│   ├── .gitignore
│   ├── nginx
│   ├── php-fpm
│   └── README.md
└── public/ # <------------- magento 1.x 代码文件夹
    ├── api.php
    ├── app
    ├── cron.php
    ├── cron.sh
    ├── dev
    ├── downloader
    ├── error_log
    ├── errors
    ├── favicon.ico
    ├── get.php
    ├── .htaccess
    ├── .htaccess.sample
    ├── includes
    ├── index.php
    ├── index.php.sample
    ├── install.php
    ├── js
    ├── lib
    ├── LICENSE_AFL.txt
    ├── LICENSE.html
    ├── LICENSE.txt
    ├── mage
    ├── media
    ├── php.ini.sample
    ├── RELEASE_NOTES.txt
    ├── shell
    ├── skin
    └── var

安装 docker-magento

克隆

cd magento-domain-1/
git clone https://github.com/goodwong/docker-magento .docker-compose

配置

cd .docker-compose/
cp .env.example .env

默认配置即可运行,如果有多个magento站点运行,分别修改以下变量为不同的值:

  • COMPOSE_PROJECT_NAME=
  • NGINX_HOST_HTTP_PORT=
  • DB_ADMINER_PORT=

生产环境下,建议修改数据库密码

  • DB_ROOT_PASSWORD=
  • DB_PASSWORD=
  • DB_USER=
  • DB_NAME=

运行

cd .docker-compose/
docker-compose up -d web

# 如果需要查看日志,增加:
docker-compose logs -f

安装magento

全新magento代码

cd magento-domain-1/
cd public/
# tar jxf .docker-compose/magento-1.9.3.9-2018-06-27-02-47-24.tar -C public/
# 文件过大,自行下载吧。。。

然后在浏览器里访问 http://你的服务器ip或域名:nginx端口号 安装过程中,配置数据库:

数据库地址:db
数据库用户名:root 或.env文件<DB_USER>
数据库密码:见.env文件 <DB_ROOT_PASSWORD><DB_PASSWORD>
数据库名称:见.env文件 <DB_NAME>,可不填

使用现有的magento代码

  1. 解压代码至 public/文件夹
  2. 修改app/etc/local.xml数据库信息:

    数据库地址:db
    数据库用户名:见.env文件<DB_USER>
    数据库密码:见.env文件<DB_PASSWORD>
    数据库名称:见.env文件 <DB_NAME>

设置文件权限

cd .docker-compose/
docker-compose exec php-fpm bash
chown -R www-data:www-data public/var/ public/media/

导入/管理数据库

有两种方式管理数据库:

  • �方法一,通过adminer的web界面操作

    cd .docker-compose/
    docker-compose up adminer

    打开浏览器 http://IP地址:<DB_ADMINER_PORT>
    Server地址填写db

  • 方法二,进入mysql容器,使用命令行界面
    首先将数据文件解压并放在项目文件夹

    cd .docker-compose/
    docker-compose exec db bash
    cd /var/www/html/
    mysql -p magento < database_backup_file.sql
    #           ^                ^
    #        数据库名         数据库备份文件
    #       见.env文件

多站点多项目

注意分别修改.env文件里端口变量为不同的值

建议使用nginx作前端机,配置代理规则

# 宿主机
# /etc/nginx/sites-available/domain-1.conf

server {
    listen 80;
    listen [::]:80;

    server xxx.com www.xxx.com;

    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://127.0.0.1:8888/; # <--- 末尾必须有/符号
                                           # <--- 端口号见<NGINX_HOST_HTTP_PORT> 变量
    }
}

docker-magento's People

Contributors

goodwong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.