Docker搭建php環境教程詳解
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; }}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: