Termux/Android上Laravel+PHP-MySQL性能极差问题排查求助
针对Galaxy Tab S8 Termux环境下Laravel性能问题的优化方案
核心问题定位
你遇到的性能瓶颈主要来自默认配置的缺失,ARM架构和Galaxy Tab S8的硬件(骁龙8 Gen1+8/12GB RAM完全能支撑开发级Laravel应用)不是核心障碍,Termux的Android环境特性、未优化的PHP/Laravel配置才是关键。
具体优化步骤
1. 用PHP-FPM+Nginx替代默认开发服务器
Laravel自带的php artisan serve是单进程简易服务器,性能极差,Termux环境下劣势被放大,换成FPM+Nginx能大幅提升响应速度:
- 安装依赖:
pkg install nginx php-fpm - 配置Nginx反向代理(编辑
/data/data/com.termux/files/usr/etc/nginx/nginx.conf):server { listen 8080; root /path/to/your/laravel/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/data/data/com.termux/files/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } - 启动服务:执行
nginx和php-fpm,修改配置后用nginx -s reload重启
2. 开启Laravel全量缓存
默认开发环境下Laravel会禁用缓存,每次请求都重新编译文件,这是加载缓慢的核心原因:
- 配置缓存:
php artisan config:cache - 路由缓存:
php artisan route:cache - 视图缓存:
php artisan view:cache - 类映射优化:
composer dump-autoload --optimize
注意:修改配置/路由/视图后需重新执行对应缓存命令,开发阶段可按需清理(如
php artisan config:clear)
3. 优化MariaDB配置
Termux默认数据库配置未针对移动设备优化,调整以下参数(编辑/data/data/com.termux/files/usr/etc/my.cnf.d/mariadb-server.cnf):
[mysqld] # 平衡内存占用与查询效率 key_buffer_size = 64M innodb_buffer_pool_size = 256M # 关闭非必要日志减少IO slow_query_log = 0 general_log = 0 # 降低磁盘IO频率 innodb_flush_log_at_trx_commit = 2
重启服务:mysql.server restart
4. 存储IO优化
Android内部存储在Termux下通过FUSE挂载,IO性能弱于原生Linux,可做如下调整:
- 将Laravel项目移到Termux私有目录
/data/data/com.termux/files/home/,避免使用外部SD卡 - 修改
.env启用文件缓存替代数组缓存:CACHE_DRIVER=file
关于硬件与架构的疑问
Galaxy Tab S8的硬件完全能满足Laravel开发需求,ARM64架构对PHP 8.x的性能影响极小(PHP官方已针对ARM做过充分优化)。换成Surface Pro虽能提升性能,但不符合你的移动场景需求,完全没必要。
额外建议
- Composer缓慢可切换国内镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 开发阶段可关闭调试模式(
.env中APP_DEBUG=false),减少调试信息开销
内容的提问来源于stack exchange,提问作者wonz
相关产品推荐
相关产品推荐

