docker nginx 部署thinkphp6
时间: 2023-11-17 22:00:41 浏览: 287
要在Docker中部署ThinkPHP6,需要先搭建Nginx+PHP环境,然后拉取webdevops/php-nginx镜像并创建项目目录和配置文件。接着,将TP6的代码放到/app/tp6目录下,然后在Nginx配置文件中指定访问路径到TP6的public目录,并隐藏index.php以及使得Nginx支持pathinfo模式。最后,创建容器并将目录映射到容器中即可。
具体步骤如下:
1. 搭建Nginx+PHP环境并拉取webdevops/php-nginx镜像:
```
# 拉取 PHP+Nginx 镜像
docker pull webdevops/php-nginx
# 创建项目目录和配置文件
cd ~/wang
mkdir app nginx
vim ~/wang/nginx/vhost.conf
```
2. 将TP6的代码放到/app/tp6目录下:
```
cp -r /path/to/tp6 /app/
```
3. 在Nginx配置文件中指定访问路径到TP6的public目录,并隐藏index.php以及使得Nginx支持pathinfo模式:
```
server {
listen 80 default_server;
server_name _ *.vm docker;
# 指定访问路径到TP6的public目录
root "/app/tp6/public";
index index.php;
# 隐藏 index.php 以及使得Nginx支持pathinfo模式
if (!-e $request_filename) {
rewrite ^/index.php(.*)$ /index.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
}
include /opt/docker/etc/nginx/vhost.common.d/*.conf;
}
# SSL
server {
listen 443 default_server;
server_name _ *.vm docker;
root "/app";
index index.php;
include /opt/docker/etc/nginx/vhost.common.d/*.conf;
include /opt/docker/etc/nginx/vhost.ssl.conf;
}
```
4. 创建容器并将目录映射到容器中:
```
docker run --name nginx-php -p 8080:80 \
-v ~/wang/nginx/vhost.conf:/opt/docker/etc/nginx/vhost.conf \
-v ~/wang/app:/app \
-d webdevops/php-nginx
```
阅读全文