Linux下ThinkPHP部署步骤
部署前需安装PHP、Web服务器(Nginx/Apache)、Composer及数据库(MySQL/PostgreSQL)。
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl,CentOS使用sudo yum install php php-fpm php-mysqlnd php-mbstring php-xml php-curl)。sudo apt install nginx。curl -sS https://getcomposer.org/installer | php,然后将composer.phar移动至/usr/local/bin/composer。sudo apt install mysql-server,初始化后设置root密码。将本地ThinkPHP项目上传至Linux服务器,推荐存放至/var/www/html/your_project(需替换为实际项目名)。上传方式可选:
scp命令(如scp -r local_project.zip user@server_ip:/var/www/html/)或FileZilla等工具。git clone repository_url /var/www/html/your_project。进入项目根目录,执行composer install,自动安装composer.json中定义的依赖包(如ThinkPHP核心组件、数据库驱动等)。安装完成后,会生成vendor目录。
sudo nano /etc/nginx/sites-available/your_project,添加以下内容(替换your_domain和项目路径):server {
    listen 80;
    server_name your_domain.com;
    root /var/www/html/your_project/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:/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_project /etc/nginx/sites-enabled/。sudo nginx -t(检查语法),sudo systemctl restart nginx。mod_rewrite模块:sudo a2enmod rewrite。/etc/apache2/sites-available/000-default.conf),将DocumentRoot指向项目public目录,并添加AllowOverride All以支持.htaccess重写。sudo systemctl restart apache2。编辑项目根目录下的.env文件(若不存在则复制config/.env.example),修改数据库连接信息:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_database_user
DB_PASSWORD=your_database_password
然后创建数据库(如mysql -u root -p -e "CREATE DATABASE your_database_name;"),并导入表结构(若有SQL文件)。
确保Web服务器用户(如www-data)对项目目录有读写权限:
sudo chown -R www-data:www-data /var/www/html/your_project
sudo chmod -R 755 /var/www/html/your_project
sudo chmod -R 775 /var/www/html/your_project/runtime # runtime目录需可写
注意:避免使用777权限,以防安全风险。
sudo systemctl start nginx;Apache:sudo systemctl start apache2)。http://your_domain.com(或服务器IP),若看到ThinkPHP欢迎页面,说明部署成功。config/app.php,将app_debug设为false,避免泄露敏感信息。sudo apt install certbot python3-certbot-nginx(Nginx),然后sudo certbot --nginx -d your_domain.com,按提示完成配置。php.ini,开启opcache.enable=1,提升PHP执行效率。