ThinkPHP依赖PHP+Web服务器+Composer,需先安装以下组件:
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
sudo yum update -y # CentOS/RHEL
pdo_mysql(数据库)、mbstring(字符集)、xml(解析)、curl(网络)等扩展:sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl -y # Ubuntu/Debian
sudo yum install php php-cli php-fpm php-mysqlnd php-mbstring php-xml php-curl -y # CentOS/RHEL
sudo apt install nginx -y # Ubuntu/Debian
sudo yum install epel-release && sudo yum install nginx -y # CentOS/RHEL
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
验证安装:composer --version(显示版本号即为成功)。/etc/nginx/sites-available/thinkphp.conf,内容如下(替换/path/to/tp6/public为项目实际路径):server {
listen 80;
server_name yourdomain.com; # 替换为域名或IP
root /path/to/tp6/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string; # 关键:支持PATHINFO
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock; # 根据PHP版本调整(如php8.2-fpm.sock)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all; # 禁止访问.htaccess文件
}
}
sudo ln -s /etc/nginx/sites-available/thinkphp.conf /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx
sudo a2enmod rewrite
sudo systemctl restart apache2
/etc/apache2/sites-available/000-default.conf,修改DocumentRoot为项目路径(如/var/www/html/tp6/public),并在<Directory>中添加AllowOverride All以允许.htaccess生效。composer create-project topthink/think tp6 /var/www/html/tp6 # 替换为你的项目目录
/var/www/html/tp6),并删除public/.htaccess(若使用Nginx)。.env文件(若不存在则复制config/.env.example),修改数据库配置:DATABASE_TYPE=mysql
DATABASE_HOSTNAME=127.0.0.1
DATABASE_NAME=your_dbname
DATABASE_USERNAME=your_username
DATABASE_PASSWORD=your_password
DATABASE_PORT=3306
runtime目录(存放缓存、日志)可写:sudo chown -R www-data:www-data /var/www/html/tp6/runtime # www-data为Web服务器用户(Ubuntu/Debian)
sudo chmod -R 755 /var/www/html/tp6/runtime
config/app.php中'app_debug' => true),生产环境务必关闭(false)以避免敏感信息泄露。sudo systemctl start nginx # 或 apache2
sudo systemctl enable nginx # 开机自启
http://yourdomain.com(或IP),若看到ThinkPHP欢迎页面则表示部署成功。sudo systemctl status php-fpm),确认Nginx配置中的fastcgi_pass路径与PHP-FPM监听路径一致(如/run/php/php-fpm.sock)。try_files $uri $uri/ /index.php?$query_string;(关键规则,支持ThinkPHP的PATHINFO模式)。composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/)。config/app.php中的'app_debug'设为false,并删除runtime目录中的调试文件。sudo apt install certbot python3-certbot-nginx),运行sudo certbot --nginx -d yourdomain.com自动配置HTTPS。php.ini中的opcache.enable=1),使用Redis缓存会话(配置config/session.php中的'type' => 'redis')。