docker下怎么搭建一个php环境(Docker搭建php环境教程详解)
docker下怎么搭建一个php环境
Docker搭建php环境教程详解docker 安装
使用官方提供的安装脚本,安装最新版的Docker
curl -sSL https://get.docker.com/ | sh
安装完成后,通过如下命令启动Docker的守护进程,并让它随系统启动自动加载
sudo service docker start
sudo chkconfig docker on
## 或者
sudo systemctl start docker
sudo systemctl enable docker
添加用户(jerry)到Docker组
sudo usermod -aG docker jerry
命令笔记(centos),基于docker镜像2233466866/lnmp
下载镜像
docker pull 2233466866/lnmp
创建基本目录
mkdir -p /app/lnmp/default /docker/lnmp/data/mysql /docker/lnmp/conf/vhost /docker/lnmp/logs /docker/lnmp/temp /docker/lnmp/backup
下载容器配置文件到本地相应目录
docker run -itd -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged=true --name=lnmp 2233466866/lnmp
docker exec -it lnmp /bin/bash
docker cp lnmp:/etc/my.cnf /docker/lnmp/conf/my.cnf
docker cp lnmp:/usr/local/nginx/conf/nginx.conf /docker/lnmp/conf/nginx.conf
cp /docker/lnmp/conf/my.cnf /docker/lnmp/backup/my.cnf
cp /docker/lnmp/conf/nginx.conf /docker/lnmp/backup/nginx.conf
查看或修改基本配置(代码目录,日志保存目录及vhost目录配置添加)
my.cnf
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
nginx.conf
user www; worker_processes auto; worker_cpu_affinity auto; worker_cpu_affinity auto; pid logs/nginx.pid; events { worker_connections 102400; } http { charset utf-8; server_tokens off; log_format main '$remote_addr - $remote_user [$time_iso8601] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; include mime.types; default_type application/octet-stream; client_max_body_size 20M; sendfile on; keepalive_timeout 20; gzip on; gzip_vary on; gzip_comp_level 1; gzip_types text/css application/javascript application/json image/png image/webp image/apng image/jpeg image/x-icon; autoindex_localtime on error_log /logs/z_error.log; access_log /logs/z_$host.log main; server { listen 80 default; root /www/default; return 500; } include vhost/*.conf; }
停止并删除测试容器
docker stop lnmp
docker rm lnmp
重新创建容器
docker run -dit \
-p 80:80 \
-p 443:443 \
-p 3306:3306 \
-p 9000:9000 \
-e TC="Asia/Shanghai" \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /app/lnmp:/www \
-v /docker/lnmp/data/mysql:/data/mysql \
-v /docker/lnmp/conf/my.cnf:/etc/my.cnf \
-v /docker/lnmp/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf \
-v /docker/lnmp/conf/vhost:/usr/local/nginx/conf/vhost \
-v /docker/lnmp/logs:/logs \
--privileged=true \
--name=lnmp \
2233466866/lnmp
mysql 数据库配置(/etc/my.cnf)
/bin/mysql_secure_installation
cat /var/log/mysqld.log|grep 'A temporary password'
SET PASSWORD = PASSWORD('123456');
php.ini 配置(/usr/local/php7/lib/php.ini)
mysqli.default_socket = /var/lib/mysql/mysql.sock
linux 相关设置修改
添加不能登陆的用户www
groupadd www
useradd -M -g www -s /usr/sbin/nologin www
修改时区(/etc/profile)
TZ='Asia/Shanghai'; export TZ
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
多站点配置
www.test.test.conf
server { listen 80; server_name test.test; rewrite ^(.*)$ $scheme://www.test.test$1 permanent; } server { listen 80; server_name www.test.test; if ($time_iso8601 ~ "^(\d{4}-\d{2}-\d{2})") { set $ttt $1; } access_log /logs/$host-$ttt-access.log main; root /www/test; location / { index index.php index.html index.htm; } location ~* \.php { include fastcgi_params; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
- docker compose 与docker区别(windows安装Docker与docker-compose套装的详细教程)
- docker和golang哪个好(使用Golang玩转Docker API的实践)
- docker镜像保存教程(docker镜像导入导出备份迁移的操作)
- docker容器如何更改tomcat端口(Docker方式启动tomcat访问首页出现404错误)
- docker多个端口怎么分(Docker多个容器不能有相同端口号的处理方案)
- centos7docker部署(CentOS 7下设置Docker代理Linux下Systemd服务的环境变量配置)
- docker容器启动失败怎么查找原因(解决docker容器启动后马上退出的问题)
- dockerspringboot一键部署(docker-compose镜像发布springboot项目的流程分析)
- docker镜像配置的挂载路径(解决docker挂载的目录无法读写问题)
- docker容器退出错误码的步骤(docker容器退出错误码的步骤)
- docker容器访问权限(docker 容器自定义 hosts 网络访问操作)
- 安全进入docker容器的方法(使用docker部署一个简单的c/c++程序的方法)
- docker容器里的容器之间通信(Docker容器连接相互通信的实现)
- linuxdocker启动报错提示参数无效(docker 报错 Exited 1 4 minutes ago的原因分析)
- 怎么用docker中的mysql连接数据库(连接docker里面的mysql失败解决方法)
- docker 网络映射启动失败(解决docker安装完成报:bridge-nf-call-iptables is disabled问题)
- 小米音乐与 QQ 音乐合作,便捷迁移会员(小米音乐与QQ音乐合作)
- 小米推出米兔儿童电话手表奥特曼版,799 元,支持微信 QQ(小米推出米兔儿童电话手表奥特曼版)
- 贾怀胤唱《白龙马》 炸场 了 没想到京剧还能这么玩(贾怀胤唱白龙马)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
- 朱鹤松被不断认可,凤凰传奇玲花喊话岳云鹏,索要老朱演出门票(朱鹤松被不断认可)
热门推荐
- js解除网页屏蔽(js检测标题与描述中的关键词发现就替换或跳转到别的页面)
- oracle和mysql查询所有表(Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍)
- vue使用elementui框架(总结Vue Element UI使用中遇到的问题)
- javascript类型转换
- php大量数据计算有什么技巧(PHP各种常见经典算法总结排序、查找、翻转等)
- 宝塔面板怎么修改安全的端口(宝塔面板如何设置伪静态规则?)
- 宝塔面板怎么修改安全的端口(宝塔面板如何设置伪静态规则?)
- canvas指定区域生成图片(canvas实现图片镜像翻转的2种方式)
- serv-u设置文件夹权限(serv_U 域离线 解决方法)
- SQLServer中防止并发插入重复数据的方法详解(SQLServer中防止并发插入重复数据的方法详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9