在Ubuntu上使用Docker實現PHP應用程序的容器化部署是一個相對簡單的過程。以下是一個基本的步驟指南:
首先,確保你的Ubuntu系統上已經安裝了Docker。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install docker.io
在你的PHP項目根目錄下創建一個名為Dockerfile的文件。這個文件將定義如何構建你的PHP鏡像。
# 使用官方的PHP基礎鏡像
FROM php:7.4-fpm
# 安裝必要的擴展
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg62-turbo-dev \
libpq-dev \
libzip-dev \
zip \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd pdo_mysql zip opcache
# 設置工作目錄
WORKDIR /var/www/html
# 復制項目文件到容器中
COPY . /var/www/html
# 安裝Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# 設置權限
RUN chown -R www-data:www-data /var/www/html
# 暴露端口
EXPOSE 9000
# 啟動PHP-FPM服務
CMD ["php-fpm"]
在項目根目錄下運行以下命令來構建Docker鏡像:
docker build -t my-php-app .
構建完成后,你可以使用以下命令來運行一個Docker容器:
docker run -d -p 9000:9000 --name my-php-container my-php-app
這個命令會啟動一個名為my-php-container的容器,并將主機的9000端口映射到容器的9000端口。
如果你希望使用Nginx作為反向代理來處理HTTP請求,可以按照以下步驟進行配置:
sudo apt install nginx
編輯Nginx配置文件(通常位于/etc/nginx/sites-available/default),添加以下內容:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
sudo systemctl restart nginx
打開瀏覽器并訪問你的服務器IP地址或域名,你應該能夠看到你的PHP應用程序。
通過以上步驟,你就可以在Ubuntu上使用Docker實現PHP應用程序的容器化部署了。