本文目录导读:

我来详细说明PHP项目部署到服务器的完整流程:
服务器环境准备
基础环境配置
# Ubuntu/Debian系统 sudo apt update sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml # CentOS/RHEL系统 sudo yum install epel-release sudo yum install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml
PHP版本选择
# 查看当前PHP版本 php -v # 安装特定版本(如PHP 8.1) sudo apt install php8.1 php8.1-fpm php8.1-mysql
项目文件上传
使用SCP上传
# 从本地上传到服务器 scp -r /local/project user@server_ip:/var/www/html/ # 如果使用SSH密钥 scp -i ~/.ssh/id_rsa -r /local/project user@server_ip:/var/www/html/
使用Git部署
# 服务器上克隆项目 cd /var/www/html git clone https://github.com/username/project.git # 更新项目 cd project git pull origin main
Nginx配置
创建站点配置文件
# /etc/nginx/sites-available/project.conf
server {
listen 80;
server_name your_domain.com;
root /var/www/html/project/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
启用站点
# 创建软链接 sudo ln -s /etc/nginx/sites-available/project.conf /etc/nginx/sites-enabled/ # 测试配置 sudo nginx -t # 重启Nginx sudo systemctl restart nginx
文件权限设置
# 设置目录权限 sudo chown -R www-data:www-data /var/www/html/project sudo chmod -R 755 /var/www/html/project sudo chmod -R 775 /var/www/html/project/storage sudo chmod -R 775 /var/www/html/project/bootstrap/cache
环境配置
复制环境变量文件
# Laravel项目 cp .env.example .env php artisan key:generate # 其他框架类似
修改.env配置
APP_URL=http://your_domain.com DB_HOST=localhost DB_DATABASE=your_database DB_USERNAME=your_user DB_PASSWORD=your_password
数据库配置
# 创建数据库 mysql -u root -p CREATE DATABASE project_db; CREATE USER 'project_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON project_db.* TO 'project_user'@'localhost'; FLUSH PRIVILEGES; # 导入数据库 mysql -u project_user -p project_db < database.sql # 运行迁移 php artisan migrate
使用Docker部署(推荐)
docker-compose.yml示例
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./public:/var/www/html/public
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- php
php:
image: php:8.1-fpm
volumes:
- .:/var/www/html
environment:
- DB_HOST=db
- DB_DATABASE=project_db
- DB_USERNAME=user
- DB_PASSWORD=password
db:
image: mysql:8.0
environment:
MYSQL_DATABASE: project_db
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: root_password
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
部署脚本示例
#!/bin/bash # deploy.sh # 变量 PROJECT_DIR="/var/www/html/project" GIT_REPO="https://github.com/username/project.git" # 拉取最新代码 cd $PROJECT_DIR git pull origin main # 安装依赖 composer install --no-dev --optimize-autoloader # 设置权限 chown -R www-data:www-data $PROJECT_DIR chmod -R 755 $PROJECT_DIR/storage chmod -R 755 $PROJECT_DIR/bootstrap/cache # 清理缓存 php artisan optimize:clear php artisan config:cache php artisan route:cache php artisan view:cache # 运行迁移 php artisan migrate --force echo "部署完成!"
安全配置
防火墙设置
# 开放端口 sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
SSL证书配置(Let's Encrypt)
# 安装Certbot sudo apt install certbot python3-certbot-nginx # 获取证书 sudo certbot --nginx -d your_domain.com
监控和维护
日志查看
# Nginx访问日志 tail -f /var/log/nginx/access.log # PHP错误日志 tail -f /var/log/php8.1-fpm.log
性能优化
# 启用OPcache # 编辑php.ini opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=10000
注意事项:
- 生产环境禁止开启错误显示
- 定期备份数据库和项目文件
- 使用环境变量管理敏感信息
- 保持系统和依赖的更新
这样配置后,你的PHP项目就可以正常运行了,具体步骤可能根据项目框架略有不同,但大体流程是一样的。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播