确保Ubuntu服务器已完成基础配置(如系统更新),并具备**Web服务器(Nginx/Apache)、PHP环境、数据库(MySQL/MariaDB)**三大核心组件。可通过以下命令快速检查版本:
php -v # 确认PHP版本≥7.0(ThinkPHP 6.x需≥7.2) nginx -v # 若使用Nginx apache2 -v # 若使用Apache mysql --version # 确认数据库服务已安装 ThinkPHP依赖PHP的多项扩展,需通过以下命令安装核心组件:
sudo apt update sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y 注:若使用PHP 8.x,需将
php-mysql替换为php-mysqlnd(原生驱动,性能更优)。
sudo apt install nginx -y sudo systemctl start nginx sudo systemctl enable nginx # 设置开机自启 curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer 创建专属站点配置文件(如thinkphp.conf),并添加以下内容:
sudo nano /etc/nginx/sites-available/thinkphp server { listen 80; server_name your_domain_or_ip; # 替换为域名或公网IP root /var/www/html/thinkphp/public; # ThinkPHP项目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/php8.1-fpm.sock; # 根据PHP版本调整 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 可选:禁止访问敏感目录 location ~ /(vendor|runtime)/ { deny all; } } 启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/thinkphp /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置语法 sudo systemctl restart nginx 若使用Apache,需启用mod_rewrite并创建虚拟主机:
sudo a2enmod rewrite sudo systemctl restart apache2 创建配置文件(如thinkphp.conf):
sudo nano /etc/apache2/sites-available/thinkphp.conf <VirtualHost *:80> ServerName your_domain_or_ip DocumentRoot /var/www/html/thinkphp/public <Directory /var/www/html/thinkphp/public> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> 启用配置并重启Apache:
sudo a2ensite thinkphp.conf sudo systemctl restart apache2 通过FTP(如FileZilla)、SCP或Git将项目文件上传至服务器/var/www/html/目录(如thinkphp文件夹)。
进入项目根目录,执行Composer安装:
cd /var/www/html/thinkphp composer install --no-dev --optimize-autoloader # 生产环境禁用开发依赖 编辑.env文件(位于项目根目录),修改数据库连接信息:
DB_TYPE=mysql DB_HOST=127.0.0.1 DB_NAME=your_database_name DB_USER=your_database_user DB_PASSWORD=your_database_password DB_PORT=3306 确保Web服务器用户(通常为www-data)对项目目录有读写权限:
sudo chown -R www-data:www-data /var/www/html/thinkphp sudo chmod -R 755 /var/www/html/thinkphp sudo chmod -R 775 /var/www/html/thinkphp/runtime # 运行时目录需可写 sudo systemctl restart nginx # 或apache2 sudo systemctl restart php8.1-fpm # 根据PHP版本调整 在浏览器输入http://your_domain_or_ip,若看到ThinkPHP欢迎页面,则部署成功。
config/app.php,将app_debug设为false。php.ini,启用opcache.enable=1,加速PHP执行。通过以上步骤,ThinkPHP项目即可在Ubuntu服务器上稳定运行。若遇到权限问题或路由失效,可检查Nginx/Apache配置中的try_files指令及目录权限设置。