Docker搭建php环境教程详解_docker

这篇文章主要介绍了Docker搭建php环境教程详解,文中通过示例代码介绍的非常详细,对大家的学习或

Docker搭建php环境教程详解_docker

这篇文章主要介绍了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;
}

}

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

本文为网络共享文章,如有侵权请联系邮箱485837881@qq.com

作者: 绝技小嗨皮

为您推荐

返回顶部