Docker搭建php環(huán)境教程詳解
docker 安裝
使用官方提供的安裝腳本,安裝最新版的Docker
curl -sSL https://get.docker.com/ | sh
安裝完成后,通過(guò)如下命令啟動(dòng)Docker的守護(hù)進(jìn)程,并讓它隨系統(tǒng)啟動(dòng)自動(dòng)加載
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
創(chuàng)建基本目錄
mkdir -p /app/lnmp/default /docker/lnmp/data/mysql /docker/lnmp/conf/vhost /docker/lnmp/logs /docker/lnmp/temp /docker/lnmp/backup
下載容器配置文件到本地相應(yīng)目錄
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;}
停止并刪除測(cè)試容器
docker stop lnmpdocker rm lnmp
重新創(chuàng)建容器
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 數(shù)據(jù)庫(kù)配置(/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 相關(guān)設(shè)置修改
添加不能登陸的用戶www
groupadd wwwuseradd -M -g www -s /usr/sbin/nologin www
修改時(shí)區(qū)(/etc/profile)
TZ=’Asia/Shanghai’; export TZcp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
多站點(diǎn)配置
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; }}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JS圖片懶加載庫(kù)VueLazyLoad詳解2. Java實(shí)現(xiàn)的迷宮游戲3. django queryset相加和篩選教程4. Java利用TCP協(xié)議實(shí)現(xiàn)客戶端與服務(wù)器通信(附通信源碼)5. 使用AJAX(包含正則表達(dá)式)驗(yàn)證用戶登錄的步驟6. idea設(shè)置提示不區(qū)分大小寫(xiě)的方法7. Java PreparedStatement用法詳解8. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算9. Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類(lèi)封裝10. IDEA 2020.1.2 安裝教程附破解教程詳解

網(wǎng)公網(wǎng)安備