确保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指令及目录权限设置。