首页主机资讯如何在Linux上运行ThinkPHP项目

如何在Linux上运行ThinkPHP项目

时间2026-01-22 00:27:04发布访客分类主机资讯浏览1224
导读:在 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)
  • 安装并启动 NginxApache(二选一或并存):
    • 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.phpconfig/database.php),填写 DB_HOST/DB_NAME/DB_USER/DB_PASS 等连接信息;如使用 MySQL 8,注意认证方式与字符集设置。
  • 目录权限与运行用户
    • 建议将站点目录属主设为 Web 服务运行用户(如 www-datanginx),并设置安全权限:
      • 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 { } ;
    • 确保 runtimestorage 等目录可写(框架写日志、缓存、会话等需要)

五 常见问题与排查

  • 404 或路由无效:确认站点根目录指向 public,且 Nginx 已配置 try_files 将所有请求转发到 index.php;Apache 需启用 mod_rewriteAllowOverride 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 后重试。
  • 权限被拒绝或日志写入失败:核对目录属主与权限,确保 runtimestorage 可写;Web 服务与 PHP-FPM 运行用户一致可减少权限问题。
  • 需要外网访问:开放防火墙 80/443 端口,生产环境建议配置 HTTPS(如 Let’s Encrypt)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Linux上运行ThinkPHP项目
本文地址: https://pptw.com/jishu/789297.html
Linux中ThinkPHP数据库连接方法 Ubuntu中Fortran如何进行版本控制

游客 回复需填写必要信息