您的位置:首页技术文章
文章详情页

Docker搭建php环境教程详解

浏览:48日期:2022-09-08 14:45:45

docker 安装

使用官方提供的安装脚本,安装最新版的Docker

curl -sSL https://get.docker.com/ | sh

安装完成后,通过如下命令启动Docker的守护进程,并让它随系统启动自动加载

sudo service docker startsudo chkconfig docker on## 或者sudo systemctl start dockersudo 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/lnmpdocker exec -it lnmp /bin/bashdocker cp lnmp:/etc/my.cnf /docker/lnmp/conf/my.cnfdocker cp lnmp:/usr/local/nginx/conf/nginx.conf /docker/lnmp/conf/nginx.confcp /docker/lnmp/conf/my.cnf /docker/lnmp/backup/my.cnfcp /docker/lnmp/conf/nginx.conf /docker/lnmp/backup/nginx.conf

查看或修改基本配置(代码目录,日志保存目录及vhost目录配置添加)

my.cnf

[mysqld]datadir=/data/mysqlsocket=/var/lib/mysql/mysql.socksymbolic-links=0log-error=/var/log/mysqld.logpid-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; gzipon; 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 lnmpdocker 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_installationcat /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 wwwuseradd -M -g www -s /usr/sbin/nologin www

修改时区(/etc/profile)

TZ=’Asia/Shanghai’; export TZcp /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; }}

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

标签: PHP
相关文章: