使用docker compose 快速的安装fecshop的环境,包括mysql php(含扩展),mongodb,mysql,redis,xunsearch等
Fecshop Fancy ECommerce Shopphp Yii2 Fecshoppcwebapperp
Fecshop Github: https://github.com/fancyecommerce/yii2_fecshop
dockerfecshopdocker compopse fecshop
docker fecshop docker
dockerdocker https://github.com/fecshop/yii2_fecshop_docker_fool nginx dockerfecshop
docker-compose.yml docker
1.docker docker-compose.yml.aliyun
docker-compose.yml
,
fecshop
2.fecshopcomposerfecshop ``,
http://www.fecshop.com/topic/641
./app
: fecshopfecshopcomposer,phpcomposerfecshop ./app/fecshop
./db
: -
./db/mongodb
: mongodb
./db/mongodb/data
:
./db/mongodb/example_db
: fecshopmongodb
./db/mongodb/etc/mongod.conf
: Mongodb
./db/mongodb/logs
: Mongodblogs
./db/mysql
: mysql
./db/mysql/data
: mysql
./db/mysql/example_db
: fecshopmysql
./db/mysql/conf.d
: mysql
./db/redis
: redis
./db/redis/data
: redis
./db/redis/etc/redis.conf
: redis
./db/redis/etc/redis-password
: redis
./db/xunsearch
: xunsearch
./db/xunsearch/data
: xunsearch
./example_data
: fecshop
./services
: php nginx
./services/php
: php
./services/php/docker/Dockerfile
: phpdockerfile
./services/php/etc/php7.1.13.ini
: php
./services/web
: nginx
./services/web/nginx/conf
: nginx
./services/web/nginx/conf/conf.d/default.conf
nginx server
./services/web/nginx/logs
: nginxlog
./docker-compose.yml
: docker compose
linux3.1.0 ,centos 7
1docker
sudo curl -sSL https://get.daocloud.io/docker | sh
2 docker composeinstall-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
git clone
mkdir -p /www/web
cd /www/web
git clone https://github.com/fecshop/yii2_fecshop_docker.git
docker-compose.yml
1.1mysql
- MYSQL_ROOT_PASSWORD=fecshopxfd3ffaads123456
1.2redis
`./db/redis/etc/redis-password`,redis
mysqlredis
docker
service docker start
docker 15
chmod 755 /usr/local/bin/docker-compose
docker-compose build
docker-compose.yml docker
docker-compose.yml.aliyun
docker-compose.yml
,
fecshop
http://www.fecshop.com/topic/641
docker-compose up // ctrl+c
docker-compose up -d
compose
docker-compose ps
,php
docker-compose exec php bash
exit
docker compose
docker-compose stop
docker compose
docker dockerdockerdocker docker mysql phpredismongdob
volumes
./docker-compose.yml
volumes
docker
``: linux
``docker
1:
yii2_fecshop_docker
docker-compose up -d
2composer fecshop
php
docker-compose exec php bash
// php
cd /www/web
fecshophttps://github.com/fecshop/yii2_fecshop/releases
1.4.4.0
fecshop
composer create-project fancyecommerce/fecshop-app-advanced fecshop 1.4.4.0
** 1.4.4.0 ** ** 1.4.4.0 **
** 1.4.4.0 ** ** 1.4.4.0 **
githubtokenTokenhttp://www.fecshop.com/topic/412
githubgithubtokengithub token http://www.fecshop.com/topic/412
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+b3817f538307+2018-06-12+1503
to retrieve a token. It will be stored in "/root/.composer/auth.json" for future use by Composer.
Token (hidden):
composercomposerfxpFatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar http://www.fecshop.com/topic/612
cd fecshop
composer update
./init
log
root@21b9518c220b:/www/web/fecshop# ./init
bash: ./init: Permission denied
root@21b9518c220b:/www/web/fecshop# chmod 755 ./init
root@21b9518c220b:/www/web/fecshop# ./init
Yii Application Initialization Tool v1.0
Which environment do you want the application to be initialized in?
[0] Development
[1] Production
Your choice [0-1, or "q" to quit] 0
Initialize the application under 'Development' environment? [yes|no] yes
Start initialization ...
generate yii
generate apphtml5/merge_config.php
generate apphtml5/web/cn/index.php
generate apphtml5/web/cn/sitemap.xml
generate apphtml5/web/cn/robots.txt
generate apphtml5/web/fr/index.php
generate apphtml5/web/fr/sitemap.xml
generate apphtml5/web/fr/robots.txt
generate apphtml5/web/sitemap_es.xml
generate apphtml5/web/index.php
generate apphtml5/web/sitemap.xml
generate apphtml5/web/index-test.php
generate apphtml5/web/index-merge-config.php
generate apphtml5/web/robots.txt
generate apphtml5/config/main-local.php
generate apphtml5/config/params-local.php
generate appapi/merge_config.php
generate appapi/web/index.php
generate appapi/web/index-test.php
generate appapi/web/index-merge-config.php
generate appapi/config/main-local.php
generate appapi/config/params-local.php
generate console/config/main-local.php
generate console/config/params-local.php
generate appadmin/web/index.php
generate appadmin/web/index-test.php
generate appadmin/config/main-local.php
generate appadmin/config/params-local.php
generate appfront/merge_config.php
generate appfront/web/cn/index.php
generate appfront/web/cn/sitemap.xml
generate appfront/web/cn/robots.txt
generate appfront/web/fr/index.php
generate appfront/web/fr/sitemap.xml
generate appfront/web/fr/robots.txt
generate appfront/web/sitemap_es.xml
generate appfront/web/index.php
generate appfront/web/sitemap.xml
generate appfront/web/index-test.php
generate appfront/web/index-merge-config.php
generate appfront/web/robots.txt
generate appfront/config/main-local.php
generate appfront/config/params-local.php
generate appserver/merge_config.php
generate appserver/web/index.php
generate appserver/web/index-test.php
generate appserver/web/index-merge-config.php
generate appserver/config/main-local.php
generate appserver/config/params-local.php
generate tests/codeception/config/config-local.php
generate common/config/main-local.php
generate common/config/params-local.php
generate cookie validation key in appadmin/config/main-local.php
generate cookie validation key in appapi/config/main-local.php
generate cookie validation key in appfront/config/main-local.php
generate cookie validation key in apphtml5/config/main-local.php
generate cookie validation key in appserver/config/main-local.php
chmod 0777 appadmin/runtime
chmod 0777 appadmin/web/assets
chmod 0777 appapi/runtime
chmod 0777 appapi/web/assets
chmod 0777 appfront/runtime
chmod 0777 appfront/web/assets
chmod 0777 appfront/web/cn/assets
chmod 0777 appfront/web/fr/assets
chmod 0777 appfront/web/sitemap.xml
chmod 0777 appfront/web/sitemap_es.xml
chmod 0777 appfront/web/fr/sitemap.xml
chmod 0777 appfront/web/cn/sitemap.xml
chmod 0777 apphtml5/runtime
chmod 0777 apphtml5/web/assets
chmod 0777 apphtml5/web/sitemap.xml
chmod 0777 apphtml5/web/sitemap_es.xml
chmod 0777 apphtml5/web/fr/sitemap.xml
chmod 0777 apphtml5/web/cn/sitemap.xml
chmod 0777 appserver/runtime
chmod 0777 appserver/web/assets
chmod 0777 appimage/common/media/catalog/product
chmod 0755 yii
chmod 0755 tests/codeception/bin/yii
... initialization completed.
root@21b9518c220b:/www/web/fecshop#
composer
2.2
(),composer http://pan.baidu.com/s/1hs1iC2C
./app/
fecshop
./app/fecshop
fecshop
cd fecshop
./init
exit
phpdocker
Terry
./example_data/
./example_data/fecshop/*``./app/fecshop
./example_data/``./app/fecshop
1hostsipwindowhost(C:\Windows\System32\drivers\etc\hosts,IP 127.0.0.1 IP)
127.0.0.1 my.fecshop.com # mysqlphpmyadmin
127.0.0.1 appadmin.fecshop.com #
127.0.0.1 appfront.fecshop.com # pc
127.0.0.1 appfront.fecshop.es # pc es
127.0.0.1 apphtml5.fecshop.com # html
127.0.0.1 appapi.fecshop.com # api
127.0.0.1 appserver.fecshop.com # server
127.0.0.1 img.fecshop.com #appimage/common
127.0.0.1 img2.fecshop.com #appimage/appadmin
127.0.0.1 img3.fecshop.com #appimage/appfront
127.0.0.1 img4.fecshop.com #appimage/apphtml5
127.0.0.1 img5.fecshop.com #appimage/appserver
host#
127.0.0.1 my.fecshop.com # mysqlphpmyadmin
127.0.0.1 my.fecshop.com
,
host
2../example_data
fecshopTerry
./example_data
cp
./app/fecshop
2.1
./example_data/fecshop/common/config/main-local.php ,mysqlredisredissession cache
host
127.0.0.1
hostdockerhostipip127.0.0.1,http://www.fecshop.com/topic/935
win hostshostfecshop
nginx./services/web/nginx/conf/conf.d/default.conf
3.1Store
nginx
fecshop ./example_data/fecshop/
store
@appfront/config/fecshop_local_services/Store.php
@apphtml5/config/fecshop_local_services/Store.php
@appserver/config/fecshop_local_services/Store.php
:Fecshop4
3.2nginx
fecshopfec./example_data/fecshop/common/config/fecshop_local_services/Image.php
nginxnginxnginx
nginxfec./example_data/fecshop/common/config/fecshop_local_services/Image.php
4.fecshop
4.1./example_data/fecshop/*
./app/fecshop/
./example_data/
// fecshop3store ./app/fecshop
\cp -rf ./fecshop/* ../app/fecshop/
// ./app/fecshop
unzip -o ./example_img_and_db_data/appimage.zip -d ../app/fecshop/
,
5.Yii2 migrate
docker-compose exec php bash
cd /www/web/fecshop
mysql(mysql):
./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb
mongodb(mongodb):
./yii mongodb-migrate --interactive=0 --migrationPath=@fecshop/migrations/mongodb
exit
,
6.1mongodb
githubmongodb
docker-compose exec mongodb bash
mongo mongodb:27017/fecshop --quiet /data/example_db/mongo-fecshop_test-20170419-065157.js
exit
,
6.2mysql
(docker-compose.yml)mysql
docker-compose exec mysql bash
mysql -uroot -p
mysql
use fecshop;
source /var/example_db/mysql_fecshop.sql
exit
exit
,
(docker-compose.yml)php
docker-compose exec php bash
ubuntu 6.10 ubuntu bash shell dash shell /bin/sh /bin/dash/bin/bash http://blog.csdn.net/liuqinglong_along/article/details/52191382
dpkg-reconfigure dash
no
9.3.
cd /www/web/fecshop/vendor/fancyecommerce/fecshop/shell/search
sh fullSearchSync.sh //ubuntubash
exit
php
docker-compose (yii2_fecshop_docker
)
docker-compose stop
docker-compose up -d
,
pc: appfront.fecshop.com
html5apphtml5.fecshop.com
appapi appapi.fecshop.com
appserver: appserver.fecshop.com
appadmin appadmin.fecshop.com
, admin
admin123
console consolephp /www/web/fecshop
1.centos7docker
systemctl enable docker
2.docker-compose
vim /etc/rc.d/rc.local
,
/usr/local/bin/docker-compose -f /www/web/yii2_fecshop_docker/docker-compose.yml up -d
/www/web/yii2_fecshop_docker
VUEappserverapivue
yii2_fecshop_docker/app
, vue_fecshop_appserver yii2_fecshop_docker/app/
https://github.com/fecshop/vue_fecshop_appserver
2.6
npm run build
http://vue.fecshop.com nginx
OK,fecshop docker compose
so easyfecshop
1.mongodb
RoboMongohttps://robomongo.org/download sshmongodb
sshmongodb
1.2 ./services/ssh/docker/Dockerfile , RUN echo 'root:setyoupasss22XXXcreencast' | chpasswd
,setyoupasss22XXXcreencast
root
1.3 docker-compose.yml
, services
ssh1:
build:
context: ./services/ssh/docker/
networks:
- code-network
ports:
- "2222:22"
docker-compose.yml
docker-compose.yml
docker-compose.yml
version: "2"
services:
web:
image: nginx
ports:
- "80:80"
restart: always
volumes:
- ./app:/www/web
- ./services/web/nginx/conf:/etc/nginx
- ./services/web/nginx/logs:/www/web_logs
networks:
- code-network
depends_on:
- php
... //
redis:
image: redis
restart: always
ports:
- "6379:6379"
environment:
REDIS_PASS_FILE: /run/secrets/redis-password
command: [
"bash", "-c",
'
docker-entrypoint.sh
--requirepass "$$(cat $$REDIS_PASS_FILE)"
'
]
volumes:
- ./db/redis/etc/redis.conf:/usr/local/etc/redis/redis.conf
- ./db/redis/data:/data
- ./db/redis/etc/redis-password:/run/secrets/redis-password
networks:
- code-network
mongodb:
image: mongo:3.7
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/data/logs
volumes:
- ./db/mongodb/data:/data/db
- ./db/mongodb/example_db:/data/example_db
- ./db/mongodb/logs:/data/logs
networks:
- code-network
ssh1:
build:
context: ./services/ssh/docker/
networks:
- code-network
ports:
- "2222:22"
networks:
code-network:
driver: bridge
1.4mongodb mongod.confipssh1mongodb
db/mongodb/etc/mongod.conf
29bindIp: php
, bindIp: php,ssh1
docker-compose
1.5robomongomongodb connectscreateconnectionssh tab
1.5.1 connection typeredirect connection
namefecshop
Addreddmongodb
: 27017
1.5.2 SSHUse SSH tunnel
ssh address IP``2222
ssh User Name : root
ssh Auth Method: password
User Password1.2./services/ssh/docker/Dockerfile ``
save
2.mysql
phpmyadmin
cd ./app
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.7/phpMyAdmin-4.7.7-all-languages.zip
unzip phpMyAdmin-4.7.7-all-languages.zip
mv phpMyAdmin-4.7.7-all-languages phpmyadmin
cd phpmyadmin/
vim libraries/config.default.php
//117
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'mysql';
my.fecshop.com mysqldocker-compose.ymlmysql
my.fecshop.comnginx,nginx
/services/web/nginx/conf/conf.d/default.conf
OKso easy fecshop^-^,,
docker
1.httpsDockerLet's EncryptHTTPS
http://www.fecshop.com/topic/1249
2.docker-compose cronshell
http://www.fecshop.com/topic/1296
QA:
1.php
docker-compose.yml.aliyun docker-compose.yml
docker-compose build --no-cache
docker-compose.yml.aliyunphpdocker
docker-compose.yml.php.hub phphub.docker.com