在Ubuntu上安装ThinkPHP前,需先安装PHP、Composer、Web服务器(Nginx/Apache)、MySQL等基础组件,确保环境兼容。
sudo apt update
pdo_mysql用于数据库交互、mbstring用于字符处理、xml用于XML解析等):sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
验证安装:composer --version(显示版本号即为成功)。sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx # 开机自启
使用Composer快速生成ThinkPHP项目骨架,避免手动配置繁琐结构。
/var/www/html,存放Web项目):cd /var/www/html
your_project替换为项目名称,如blog):composer create-project topthink/think your_project
等待依赖下载完成,项目目录将包含public(入口目录)、app(业务逻辑)、config(配置文件)等核心结构。需将Nginx的请求转发至ThinkPHP的入口文件(public/index.php),并开启URL重写功能。
your_project),并设置root指向public目录:sudo nano /etc/nginx/sites-available/your_project
粘贴以下内容(修改server_name为域名/IP,root为项目public目录路径):server {
listen 80;
server_name your_domain_or_ip; # 替换为实际域名或IP
root /var/www/html/your_project/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string; # URL重写,支持PATHINFO
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据PHP版本调整(如php7.4-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/your_project /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置语法(无错误则继续)
sudo systemctl restart nginx
设置数据库连接、环境变量及目录权限,确保项目正常运行。
.env文件(若不存在则复制config/.env.example生成):cd /var/www/html/your_project
cp .env.example .env
nano .env
修改以下内容(替换为实际数据库信息):DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_NAME=your_database # 数据库名
DB_USER=your_username # 数据库用户名
DB_PASSWORD=your_password # 数据库密码
DB_PORT=3306
runtime目录需可写(用于存储缓存、日志等临时文件):sudo chown -R www-data:www-data /var/www/html/your_project # 将所有者设为www-data(Nginx默认用户)
sudo chmod -R 755 /var/www/html/your_project/runtime # 设置runtime目录权限
通过内置服务器或Web服务器访问项目,验证安装是否成功。
php think run
浏览器访问http://your_domain_or_ip:8000,若看到ThinkPHP欢迎页面则说明安装成功。http://your_domain_or_ip即可(需确保域名已解析至服务器IP)。config/app.php,将app_debug设为false,避免泄露敏感信息:'app_debug' => false,
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain_or_ip
按提示完成配置,自动重定向HTTP至HTTPS。以上步骤覆盖了ThinkPHP在Ubuntu上的完整安装流程,涵盖环境准备、项目创建、服务器配置及安全优化,确保项目稳定运行。