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;

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值