1、新装的ubuntu系统,没有update
- sudo apt-get update
2、安装 git,中间会有询问,输Y
- apt-get install git
3、安装composer
- apt-get install composer
4、安装shell内可拖动文件上传:
- apt install lrzsz
5、安装docker
- cd /
- wget http://47.75.85.30/php-docker.tar.gz
- tar -zxvf php-docker.tar.gz
- rm -f php-docker.tar.gz
安装docker 参考:http://www.yoyo88.cn/study/docker/281.html
- curl -fsSL get.docker.com -o get-docker.sh
- sudo sh get-docker.sh
- ## 安装docker-compose
- sudo pip install docker-compose
安装镜像,php5.6的容器和php7.1的容器
- cd /php-docker
- docker-compose up -d
- docker ps
这里注意看一下容器都有没有都起来
第一种 :已优化 ->
php7.1 + php5.6 + mysql + redis + swoole4.0
https://pan.baidu.com/s/1dnNrr0_PQXW75Wr7AzwxRA
一键安装
QAQ:php-fpm CPU占用率高
执行:
mkdir -p /etc/php-fpm.d
QAQ:mysql CPU占用率高
mysql / my.cnf
- [client]
- port=3306
- [mysql]
- default-character-set=utf8
- [mysqld]
- port=3306
- pid-file = /var/run/mysqld/mysqld.pid
- socket = /var/run/mysqld/mysqld.sock
- datadir = /var/lib/mysql
- character-set-server=utf8
- sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- bind-address = 0.0.0.0
- server-id = 1
- log-bin = /var/log/mysql/mysql-bin
- max_allowed_packet = 500M
- ## open slow log
- slow_query_log=1
- slow_query_log_file=/var/log/mysql/slow.log
- long_query_time=1
- open_files_limit = 102400
- max_connections=300
- innodb_flush_log_at_trx_commit = 2
- innodb_log_file_size = 256M
- innodb_log_buffer_size = 8M
- innodb_buffer_pool_size = 256M
第二种 : ->
php7.1 + php5.6 + mysql + redis
如果正常,忽略以下开始:
有时候会有mysql启不来的现象,如果发生了,先down掉
docker-compose down
docker-compose build --no-cache // 重新编译
down了重来吧!
1、修改mysql
- vim /php-docker/docker-compose.yaml
把mysql那一段改成:
- mysql:
- image: mysql:${MYSQL_VERSION}
- container_name: ${MYSQL_HOST}
- ports:
- - "3306:3306"
- volumes:
- - ${dockerdir}/mysql/my.cnf:/etc/mysql/my.cnf
- - ${dockerdir}/mysql/data:/var/lib/mysql
- - ${dockerdir}/mysql/log:/var/log/mysql
- environment:
- - MYSQL_DATABASE=${MYSQL_DATABASE}
- - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- - MYSQL_USER=${MYSQL_USER}
- - MYSQL_PASSWORD=${MYSQL_PASSWORD}
2、添加配置文件:
- vim /php-docker/.env
在下面加上:
- # MySQL
- MYSQL_VERSION=5.7.22
- # container_name
- MYSQL_HOST=mysql
- MYSQL_DATABASE=test
- MYSQL_ROOT_USER=root
- MYSQL_ROOT_PASSWORD=m123456,
- MYSQL_USER=dev
- MYSQL_PASSWORD=dev
docker-compose up //不要加-d 看一下错误日志,如果不看就忽略
docker-compose up -d
docker-ps
支持远程连接,如果连接不上,去阿里云后台安全组规则看一下放行 3306端口
忽略结束,继续安装。
修改mysql管理
- // 进入mysql容器
- docker exec -it mysql容器ID前四位 /bin/bash
- // 连接mysql
- mysql -u root -p
- ## 开始修改mysql可外部连接
- use mysql;
- update user set host="%" where host="127.0.0.1";
- flush privileges;
- ## 修改完以后看一下:
- select host,user from user;
默认mysql密码是m123456,
修改新密码:
- use mysql;
- update user set authentication_string = password('root');
- flush privileges;
服务器本地程序 连接mysql使用host = mysql而不是localhost或者127.0.0.1
导出mysql的数据,不进入容器,直接使用:
- docker exec -it feba557f06b4 mysqldump -u root -p zaojiao > /php-docker/mysql/data/data/zaojiao.sql
自己切换一下容器ID,还有数据库名即可。
查看php7.1的镜像ID,进入容器,开始编译安装swoole + 异步redis
- docker exec -it 容器ID前四位 /bin/bash
- apt install wget ## 安装下载方式
- ## 开始安装hiredis
- wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
- tar -zxvf v0.13.3.tar.gz
- cd hiredis-0.13.3/
- make -j
- make install
- ldconfig
开始编译swoole扩展
- ## 开始安装swoole + Redis客户端, 下载地址在这看最新版 https://github.com/swoole/swoole-src/releases
- wget https://github.com/swoole/swoole-src/archive/v2.1.3.tar.gz
- tar -zxvf v2.1.3.tar.gz
- cd swoole-src-2.1.3/
- phpize
- ./configure --enable-async-redis
- make clean
- make -j
- make install
- ## 查看phpini的位置
- php --ini
- ## 查看已安装扩展
- php -m
编译swoole扩展出现,或前台websocket服务器无法收到实时消息
fatal error: pcre.h: No such file or directory
原因是缺少pcre,需要安装libpcre:http://www.yoyo88.cn/study/swoole/304.html
如果 没有swoole的扩展
- ## 退出容器
- exit
- cd /php-docker
- docker-compose restart
查看一下swoole的redis是否启用
- php --ri swoole
确认没问题以后,提交当前容器作为新的镜像
docker ps // 查看当前容器的ID,例:0be47785b35e
- docker commit 0be47785b35e php-docker_php7.1
在php容器中安装sqlserv
https://www.microsoft.com/en-us/sql-server/developer-get-started/php/ubuntu/step/2.html