以下是一个基于Docker的ThinkPHP5项目本地部署的示例。
- 创建一个新的目录用于存放Docker相关文件。
- 创建一个名为
Dockerfile
的文件,用于构建ThinkPHP5的Docker镜像。 - 创建一个名为
docker-compose.yml
的文件,用于定义Docker容器的网络和服务。
Dockerfile
FROM php:7.4-fpm
# 安装PDO扩展
RUN docker-php-ext-install pdo pdo_mysql
# 安装ThinkPHP5框架
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer require topthink/framework 5.*
# 配置Nginx
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# 复制Nginx配置文件和ThinkPHP应用
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY ./thinkphp /var/www/html/
# 暴露80端口
EXPOSE 80
# 启动Nginx和PHP-FPM
CMD service php7.4-fpm start && nginx -g 'daemon off;'
docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "8080:80"
volumes:
- ./thinkphp:/var/www/html
depends_on:
- db
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: your_database
ports:
- "33060:3306"
Nginx配置文件(nginx.conf)
server {
listen 80;
server_name localhost;
location / {
root /var/www/html/public;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
}
在这些文件的同一级目录下,执行以下命令来启动容器:
docker-compose up -d
这将会启动一个包含Nginx、PHP-FPM和MySQL的Docker容器。你可以通过访问http://localhost:8080
来查看你的ThinkPHP5应用。
注意:
- 确保你的ThinkPHP5应用已配置好数据库连接。
- 根据你的ThinkPHP5应用的具体配置,可能需要调整Nginx配置文件和
docker-compose.yml
中的配置。