在Ubuntu上实现PHP应用的自动部署可以通过多种方式来完成,以下是一个基本的步骤指南,使用Git进行版本控制,并结合一些自动化工具来实现自动部署。
首先,确保你的服务器上安装了必要的软件:
sudo apt update
sudo apt install git nginx php-fpm
配置Nginx以服务你的PHP应用。假设你的应用位于/var/www/html/myapp目录下。
sudo nano /etc/nginx/sites-available/myapp
添加以下内容:
server {
listen 80;
server_name your_domain.com;
root /var/www/html/myapp;
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 ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
在你的应用目录中初始化一个Git仓库:
cd /var/www/html/myapp
git init
git add .
git commit -m "Initial commit"
创建一个自动部署脚本,例如deploy.sh:
nano /home/your_username/deploy.sh
添加以下内容:
#!/bin/bash
# Clone the repository
if [ ! -d "repo" ]; then
git clone https://github.com/your_username/myapp.git repo
else
cd repo
git pull origin main
fi
# Install dependencies
cd ..
composer install --no-interaction --prefer-dist --optimize-autoloader
# Restart PHP-FPM and Nginx
sudo systemctl restart php7.4-fpm
sudo systemctl restart nginx
echo "Deployment completed successfully!"
赋予脚本执行权限:
chmod +x /home/your_username/deploy.sh
在你的Git仓库(如GitHub)中设置Webhook,指向你的服务器上的部署脚本。例如,如果你的服务器IP是123.456.789.0,你可以设置Webhook为:
http://123.456.789.0/deploy.sh
deploy.sh脚本已经执行。通过以上步骤,你就可以实现PHP应用的自动部署。你可以根据实际需求进一步优化和扩展这个流程,例如添加数据库迁移、缓存清理等步骤。