Debian系统中ThinkPHP项目如何管理
导读:Debian下ThinkPHP项目全流程管理 一 环境准备与目录规范 更新系统并安装运行依赖(以 PHP 7.4 为例,可按需选择 8.0/8.2): sudo apt update && sudo apt instal...
Debian下ThinkPHP项目全流程管理
一 环境准备与目录规范
- 更新系统并安装运行依赖(以 PHP 7.4 为例,可按需选择 8.0/8.2):
- sudo apt update & & sudo apt install -y php php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd php-bcmath
- 安装 Composer 并全局可用:
- curl -sS https://getcomposer.org/installer | php
- sudo mv composer.phar /usr/local/bin/composer
- 创建项目(示例为 ThinkPHP 6,目录名自定义):
- composer create-project topthink tp
- 目录规范与权限(Web根目录指向 public,确保写入目录可写):
- 建议站点根:/var/www/your_project,Web入口:/var/www/your_project/public
- sudo chown -R www-data:www-data /var/www/your_project
- sudo chmod -R 755 /var/www/your_project
- 确保 runtime、日志、缓存等目录可写(按需设置 775/777,仅限运行目录)
二 依赖管理与版本控制
- 使用 Composer 管理第三方库与框架依赖:
- 安装生产依赖:composer install --optimize-autoloader --no-dev
- 新增依赖:composer require vendor/package
- 更新依赖:composer update
- 移除依赖:composer remove vendor/package
- 锁定版本:提交 composer.lock 到版本库,部署时以 lock 为准
- 多环境区分:使用 .env 管理数据库等敏感配置,避免硬编码;生产环境关闭调试
- 性能优化:启用 OPcache(生产环境强烈建议),减少重复编译开销
三 Web服务器与路由配置
- Nginx 推荐配置(站点根指向 public,支持 PATHINFO 与隐藏 index.php):
- server {
listen 80;
server_name your_domain.com;
root /var/www/your_project/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
# 按实际PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
安全:禁止访问敏感文件
location ~ /.env { deny all; } location ~ /.ht { deny all; } } - 启用站点并校验:sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/ & & sudo nginx -t & & sudo systemctl reload nginx
- server {
listen 80;
server_name your_domain.com;
root /var/www/your_project/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
# 按实际PHP版本调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
- Apache 可选方案(启用 mod_rewrite,将 DocumentRoot 指向 public):
- 启用重写:sudo a2enmod rewrite & & sudo systemctl restart apache2
- 虚拟主机示例:
- < VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/your_project/public < Directory /var/www/your_project/public> Options Indexes FollowSymLinks AllowOverride All Require all granted
- 常见问题速查
- 502 Bad Gateway:检查 PHP-FPM 是否运行,核对 fastcgi_pass 路径(如 /run/php/php7.4-fpm.sock 或 /var/run/php/php7.4-fpm.sock)
- 路由 404/失效:确认 Nginx 包含 try_files $uri $uri/ /index.php?$query_string; 且 Web 根指向 public
四 数据库与部署流程
- 安装并初始化数据库(示例为 MySQL/MariaDB):
- sudo apt install -y mysql-server
- mysql -e “CREATE DATABASE your_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ”
- mysql -e “CREATE USER ‘your_user’@‘localhost’ IDENTIFIED BY ‘your_password’; ”
- mysql -e “GRANT ALL PRIVILEGES ON your_db.* TO ‘your_user’@‘localhost’; FLUSH PRIVILEGES; ”
- 配置连接信息:在 .env 写入
- DB_TYPE=mysql
- DB_HOST=127.0.0.1
- DB_NAME=your_db
- DB_USER=your_user
- DB_PWD=your_password
- DB_PORT=3306
- 部署与上线
- 拉取代码:git clone 或 rsync/scp 上传至 /var/www/your_project
- 安装依赖:composer install --optimize-autoloader --no-dev
- 设置权限:sudo chown -R www-data:www-data /var/www/your_project & & sudo chmod -R 755 /var/www/your_project
- 检查配置:确保 app_debug=false,.env 权限安全
- 重启服务:sudo systemctl reload php7.4-fpm & & sudo systemctl reload nginx
- 可选 HTTPS:使用 Certbot 获取并自动配置 Let’s Encrypt 证书(–nginx 或 --apache 参数)
五 运行维护与安全加固
- 进程与日志
- PHP-FPM:sudo systemctl enable --now php7.4-fpm
- Nginx:sudo systemctl enable --now nginx
- 日志路径:Nginx 默认 /var/log/nginx/,PHP-FPM 默认 /var/log/php7.4-fpm.log(按实际版本调整)
- 安全建议
- 关闭调试:生产环境设置 app_debug=false
- 隐藏敏感文件:Nginx 中拒绝访问 .env、.ht*
- 最小权限:运行用户 www-data,目录 755,仅运行目录可写(如 runtime)
- 性能与安全:启用 OPcache,会话/缓存建议使用 Redis
- 防火墙:sudo ufw allow ‘Nginx Full’(或 Apache 对应规则)
- 自动化与持续交付
- 使用 Git hooks 或 CI/CD(如 GitHub Actions/GitLab CI)拉取、composer install、迁移、平滑重启服务,实现零停机或蓝绿发布
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统中ThinkPHP项目如何管理
本文地址: https://pptw.com/jishu/749355.html
