您的位置:首页 >thinkphp项目在ubuntu上的部署流程是什么
发布于2026-05-01 阅读(0)
扫一扫,手机访问

想把ThinkPHP项目稳稳当当地跑在Ubuntu服务器上?其实没那么复杂。下面这份从环境准备到安全上线的全流程指南,能帮你避开大多数新手会踩的坑。咱们一步步来。
万事开头难,先把地基打牢。这里以主流的Ubuntu 20.04或22.04为例,PHP版本建议选择7.4或更高。
sudo apt update && sudo apt install -y nginx php php-fpm php-mysql php-mbstring php-xml php-curl。这套组合拳下来,Nginx和PHP及其常用扩展就齐活了。sudo apt install -y mysql-server。安装过程中记得为MySQL的root用户设置一个强密码。curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer。这是PHP的依赖管理工具,必不可少。php -v、composer -v、sudo systemctl status nginx、sudo systemctl status mysql,确保所有服务都安装成功并处于运行状态。composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。这能节省大量等待时间。环境就绪,接下来就是把你的代码“安家落户”。
/var/www/html/your_project。将你的ThinkPHP项目代码通过FTP、Git克隆等方式上传至此。关键一步:务必确保Web服务器(如Nginx)的根目录指向项目内的public文件夹,而不是项目根目录。cd /var/www/html/your_project && composer install --optimize-autoloader --no-dev。这个命令会安装生产环境所需的所有依赖,并优化自动加载性能。.env文件进行配置,它更安全、更灵活。在项目根目录下找到或创建.env文件,填入类似下面的信息:
[DATABASE]TYPE=mysqlHOSTNAME=127.0.0.1DATABASE=your_dbUSERNAME=your_userPASSWORD=your_passPORT=3306config/database.php中配置,但不如.env方便管理。sudo chown -R www-data:www-data /var/www/html/your_projectsudo chmod -R 755 /var/www/html/your_projectruntime目录,框架需要在此写入日志、缓存等文件。如果应用涉及队列或特殊缓存写入,可能需要适当放宽其子目录权限,但极其不推荐直接设置为777。config/app.php文件,将‘app_debug’ => true改为‘app_debug’ => false。这能避免敏感信息泄露。现在,需要让Web服务器认识并正确引导你的应用。这里以Nginx为例,Apache的配置思路也大同小异。
/etc/nginx/sites-a vailable/目录下创建一个配置文件,例如your_project。其核心要点有两个:一是将网站根目录(root)指向项目的public子目录;二是将所有非静态文件请求都转发给index.php处理。下面是一个标准示例:
server { listen 80; server_name your_domain.com; root /var/www/html/your_project/public; index index.php; 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; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.env { deny all; } # 禁止直接访问.env敏感文件}sudo ln -s /etc/nginx/sites-a vailable/your_project /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl reload nginx。如果看到“syntax is ok”的提示,就说明配置正确。mod_rewrite模块已启用,并且在VirtualHost配置或项目目录的.htaccess文件中,设置AllowOverride All以支持路由重写。fastcgi_pass路径(如/run/php/php7.4-fpm.sock)必须与服务器上实际运行的PHP-FPM版本匹配。如果是PHP 8.x,路径可能是/run/php/php8.x-fpm.sock。配置完毕,是时候检验成果了。
sudo systemctl reload nginx让Nginx加载新配置,并用sudo systemctl status php7.4-fpm(请替换为你的实际版本)确认PHP-FPM服务运行正常。http://your_domain.com/。如果一切顺利,应该能看到ThinkPHP应用的首页或默认的路由输出。/var/log/nginx/error.log,这里会记录Web服务器层面的问题。/var/log/php7.4-fpm.log,这里会记录PHP解析执行时的问题。runtime目录下的log日志文件,这里记录了框架和应用自身的运行细节和错误信息。项目跑起来只是第一步,让它跑得又快又安全,才是真正的上线。
app_debug已关闭。location ~ /.env { deny all; })禁止直接访问.env等敏感文件。同时,隐藏Nginx和PHP的版本信息。sudo apt install certbot python3-certbot-nginx,然后运行sudo certbot --nginx -d your_domain.com即可自动获取并配置证书。php.ini中启用并调优。--optimize-autoloader参数已经做了这一步。此外,可以按需执行框架自带的优化命令,如php think optimize。composer install --optimize-autoloader --no-dev来更新依赖。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9