docker php伪静态无效,docker 安装 thinkphp+nginx
#安裝docker 默認(rèn)已安裝docker,安裝地址:https://www.docker.com/
1.下載php 和nginx鏡像
docker pull php
docker pull nginx
2.創(chuàng)建dockerfile, dockerfile 是由一系列命令和參數(shù)構(gòu)成的腳本,這些命令應(yīng)用于基礎(chǔ)鏡像并最終創(chuàng)建一個新的鏡像。 #touch Dockerfile
創(chuàng)建phpdockerfile文件夾,創(chuàng)建Dockerfile文件。
FROM php:5.6-fpm
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
&& docker-php-ext-install -j$(nproc) iconv mcrypt \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd
RUN docker-php-ext-install mbstring
RUN docker-php-ext-install mysqli
RUN docker-php-ext-install pdo && docker-php-ext-install pdo_mysql
運(yùn)行build 創(chuàng)建鏡像
docker build -t pdophp . //(pdophp)代表新鏡像名非固定,(.) 代表當(dāng)前目錄 docker自動去找Dockerfile文件
3.根據(jù)新創(chuàng)建的pdophp鏡像,建立容器互連php與nginx。并建立文件映射
//myphp 容器名(非固定),workend 網(wǎng)絡(luò)組名稱(非固定),/Users/xxx/Works/web/工作目錄(非固定)
docker run --name myphp --net workend -v /Users/xxx/Works/web/:/var/www/html/ --privileged=true -d pdophp
//mynginx容器名(非固定),workend網(wǎng)絡(luò)組名稱(同名互連),/Users/xxx/Works/web 工作目錄(非固定),/Users/xxx/Works/docker/nginx/conf.d/ nginx配置文件(非固定)
docker run --name mynginx -p 80:80 --net workend -v /Users/xxx/Works/web:/usr/share/nginx/html -v /Users/xxx/Works/docker/nginx/conf.d/:/etc/nginx/conf.d --privileged=true -d nginx
4.建立nginx配置文件
運(yùn)行 docker ps
查看myphp容器端口(ports),我的為9000
在/Users/xxx/Works/docker/nginx/conf.d/下創(chuàng)建default.conf
server {
listen 80 default_server;
server_name _;
root /usr/share/nginx/html;
location / {
index index.html index.htm index.php;
autoindex off;
}
location ~ \.php(.*)$ {
root /var/www/html/;
fastcgi_pass myphp:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
重啟mynginx
docker restart mynginx
在/Users/xxx/Works/web/ 下創(chuàng)建info.php
成功繼續(xù)往下,不成功找原因...
之后把thinkphp項目放到/Users/xxx/Works/web/下,如phpshop 訪問http://localhost/phpshop 在/Users/xxx/Works/docker/nginx/conf.d/下創(chuàng)建每個項目的專屬nginx配置。配置之后要重啟mynginx
偶爾容器關(guān)閉了,使用docker start myphp啟動,先啟動myphp再啟動mynginx
參考:
...等等等等
總結(jié)
以上是生活随笔為你收集整理的docker php伪静态无效,docker 安装 thinkphp+nginx的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 限制php-cgi进程数量,php-fc
- 下一篇: linux运行windows环境变量,使