Docker搭建php环境教程详解

 更新时间:2020年12月10日 11:32:36   作者:绝技小嗨皮  
这篇文章主要介绍了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部署Jenkins新手使用教程

    详解docker部署Jenkins新手使用教程

    这篇文章主要介绍了详解docker部署Jenkins新手使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Centos7下安装Docker Engine

    Centos7下安装Docker Engine

    这篇文章主要介绍了Centos7下安装Docker Engine的相关资料,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12
  • 快速掌握使用Docker搭建开发环境

    快速掌握使用Docker搭建开发环境

    利用Docker Compose技术辅助开发人员对于开发环境的搭建,最终实现开发人员只要装有Docker就可以完成整个开发环境的搭建。今天小编给大家分享使用Docker搭建开发环境的详细流程,感兴趣的朋友一起看看吧
    2021-05-05
  • docker镜像完全卸载的操作步骤

    docker镜像完全卸载的操作步骤

    这篇文章主要介绍了docker镜像完全卸载的操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 在Centos7 中更改Docker默认镜像和容器的位置

    在Centos7 中更改Docker默认镜像和容器的位置

    这篇文章主要介绍了在Centos7 下更改Docker默认镜像和容器的位置,需要的朋友可以参考下
    2017-05-05
  • Elasticsearch使用常见问题解决方案

    Elasticsearch使用常见问题解决方案

    这篇文章主要介绍了Elasticsearch使用常见问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 基于docker 搭建Prometheus+Grafana的过程详解

    基于docker 搭建Prometheus+Grafana的过程详解

    这篇文章主要介绍了基于docker 搭建Prometheus+Grafana的过程详解,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • docker搭建rabbitmq集群环境的方法

    docker搭建rabbitmq集群环境的方法

    本篇文章主要介绍了docker搭建rabbitmq集群环境的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-07-07
  • Docker安装阿里云服务器和在虚拟机安装遇到的坑(问题小结)

    Docker安装阿里云服务器和在虚拟机安装遇到的坑(问题小结)

    这篇文章主要介绍了Docker安装阿里云服务器和在虚拟机安装遇到的坑,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Docker镜像推送(push)到Docker Hub的实现

    Docker镜像推送(push)到Docker Hub的实现

    这篇文章主要介绍了Docker镜像推送(push)到Docker Hub的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论