如何在Linux上运行ThinkPHP项目
导读:在 Linux 上运行 ThinkPHP 的完整步骤 一 环境准备 安装 PHP 与常用扩展(以 Ubuntu/Debian 为例;CentOS/RHEL 可用 yum/dnf,包名基本一致): Ubuntu/Debian: sudo...
在 Linux 上运行 ThinkPHP 的完整步骤
一 环境准备
- 安装 PHP 与常用扩展(以 Ubuntu/Debian 为例;CentOS/RHEL 可用 yum/dnf,包名基本一致):
- Ubuntu/Debian:
- 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
- CentOS/RHEL:
- sudo yum install -y php php-cli php-fpm php-mysqlnd php-mbstring php-xml php-curl php-zip php-gd php-bcmath(按需启用 EPEL)
- Ubuntu/Debian:
- 安装并启动 Nginx 或 Apache(二选一或并存):
- Nginx:sudo apt/yum install -y nginx & & sudo systemctl enable --now nginx
- Apache:sudo apt/yum install -y apache2/httpd & & sudo systemctl enable --now apache2/httpd
- 安装 Composer(PHP 依赖管理):
- curl -sS https://getcomposer.org/installer | php
- sudo mv composer.phar /usr/local/bin/composer
- composer --version 验证安装成功
二 部署与运行方式
- 方式 A 快速运行(内置开发服务器,适合本机/测试)
- 安装项目:composer create-project topthink tp5 --prefer-dist
- 进入目录:cd tp5
- 启动服务:php think run
- 访问地址:http://服务器IP:8000(默认监听 8000 端口)
- 方式 B 生产部署(Nginx + PHP-FPM,推荐)
- 上传代码至站点目录(如:/var/www/html/your_tp_app)
- 配置站点根目录为项目的 public 目录(Nginx 示例 root 指向 public;Apache 示例 DocumentRoot 指向 public 并开启 .htaccess 重写)
- 配置 URL 重写(将所有请求转发到 index.php)
- 重启 Web 服务与 PHP-FPM,浏览器访问域名或 IP 即可
三 Nginx 与 Apache 配置要点
- Nginx 站点示例(将 root 指向 public,开启 PATH_INFO 与重写)
- 核心配置片段:
- root /var/www/html/your_tp_app/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:/var/run/php/php7.4-fpm.sock; # 按实际 PHP 版本调整 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
- location ~ /.ht { deny all; }
- 启用站点并重载:sudo ln -s /etc/nginx/sites-available/your_tp /etc/nginx/sites-enabled/ & & sudo nginx -t & & sudo systemctl reload nginx
- 核心配置片段:
- Apache 站点示例
- 核心配置片段:
- DocumentRoot /var/www/html/your_tp_app/public
- < Directory /var/www/html/your_tp_app/public> Options Indexes FollowSymLinks AllowOverride All Require all granted
- 启用重写模块并重启:sudo a2enmod rewrite & & sudo systemctl restart apache2
- 核心配置片段:
四 数据库与目录权限
- 数据库配置
- 编辑配置文件(常见为 application/database.php 或 config/database.php),填写 DB_HOST/DB_NAME/DB_USER/DB_PASS 等连接信息;如使用 MySQL 8,注意认证方式与字符集设置。
- 目录权限与运行用户
- 建议将站点目录属主设为 Web 服务运行用户(如 www-data 或 nginx),并设置安全权限:
- sudo chown -R www-data:www-data /var/www/html/your_tp_app
- sudo find /var/www/html/your_tp_app -type d -exec chmod 755 { } ;
- sudo find /var/www/html/your_tp_app -type f -exec chmod 644 { } ;
- 确保 runtime、storage 等目录可写(框架写日志、缓存、会话等需要)
- 建议将站点目录属主设为 Web 服务运行用户(如 www-data 或 nginx),并设置安全权限:
五 常见问题与排查
- 404 或路由无效:确认站点根目录指向 public,且 Nginx 已配置 try_files 将所有请求转发到 index.php;Apache 需启用 mod_rewrite 且 AllowOverride All。
- 访问出现空白或语法错误:检查 PHP-FPM 是否运行(如 systemctl status php7.4-fpm),并核对 php.ini 中是否启用必要扩展(如 mbstring、xml、curl、gd、zip、bcmath、pdo_mysql)。
- Composer 安装/更新慢或失败:可临时使用国内镜像(如 packagist.phpcomposer.com),或执行 composer self-update 更新 Composer 后重试。
- 权限被拒绝或日志写入失败:核对目录属主与权限,确保 runtime、storage 可写;Web 服务与 PHP-FPM 运行用户一致可减少权限问题。
- 需要外网访问:开放防火墙 80/443 端口,生产环境建议配置 HTTPS(如 Let’s Encrypt)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux上运行ThinkPHP项目
本文地址: https://pptw.com/jishu/789297.html
