Ubuntu 16.04中php artisan serve执行超时终止问题求助
解决Ubuntu 16.04下
php artisan serve超时问题 结合你同时运行yarn run watch:core的场景,这个超时错误大概率是PHP执行时间限制或系统资源竞争导致的,给你几个实用的解决方向:
临时解除CLI模式的PHP执行时间限制
php artisan serve基于PHP的CLI模式运行,和网页端的php.ini配置是分开的。你可以在启动时直接指定参数跳过时间限制:php -d max_execution_time=0 artisan serve这里
0表示无执行时间限制,仅适合开发环境使用,生产环境请勿这么设置。修改CLI专用的php.ini配置
如果不想每次启动都加参数,可以直接修改CLI模式的php.ini文件:- 先找到CLI版php.ini的位置,运行命令:
查看输出里的php --iniLoaded Configuration File路径,Ubuntu 16.04下一般是/etc/php/7.x/cli/php.ini(x对应你的PHP版本,比如7.0)。 - 打开该文件,找到
max_execution_time配置项,把数值改成0或者更大的数值(比如300),保存后重启php artisan serve即可。
- 先找到CLI版php.ini的位置,运行命令:
排查yarn监听的资源占用情况
同时运行yarn run watch:core可能会占用大量CPU或内存,导致PHP进程被卡住触发超时。你可以用htop或top命令查看系统资源使用情况,看看node.js进程是否占用过高:- 如果是资源占用问题,可以优化yarn的监听配置,比如缩小监听的文件范围,或者更换更高效的监听工具;
- 也可以暂时关闭
yarn run watch:core,测试php artisan serve是否还会超时,以此确认是不是两者的资源冲突导致的。
替换为更稳定的开发服务器
php artisan serve是官方提供的简易开发服务器,性能有限,长时间运行或高负载下容易出现问题。你可以考虑改用:- Nginx + PHP-FPM组合,这是生产环境常用的配置,开发环境也能稳定运行;
- 或者使用
php artisan serve的其他参数,比如指定不同端口php artisan serve --port=8001,定期重启进程避免内存泄漏。
内容的提问来源于stack exchange,提问作者Zahid Karim
相关产品推荐
相关产品推荐

