Laravel 5.6执行php artisan serve时自动删除server.php问题求助
解决Laravel 5.6运行
php artisan serve时server.php被自动删除的问题 我之前在Windows+XAMPP的环境里折腾Laravel旧版本时,也碰到过这种离谱的情况——明明php artisan serve能启动,但核心的server.php文件突然就没了。结合PHP 7.2和Laravel 5.6的特性,给你几个针对性的解决思路:
1. 优先排查第三方安全软件的误删
这是最常见的原因!Windows自带的Defender或者你装的杀毒软件,可能会把server.php误判为恶意脚本(毕竟是PHP的服务启动文件,有些老版杀毒规则会误报):
- 临时关闭实时防护,再重新执行
php artisan serve,观察文件是否还会消失 - 如果确认是杀毒软件的问题,把Laravel项目根目录添加到信任列表,或者手动将
server.php加入白名单
2. 修复Laravel核心文件完整性
有可能是你的Laravel核心文件本身存在损坏,导致artisan serve运行时触发异常删除操作:
- 先备份好你的
.env文件和自定义代码(比如app/、resources/目录) - 在项目根目录执行
composer install,如果是特定版本需求,可执行composer update laravel/framework:5.6.*来重新安装对应版本的框架核心 - 也可以手动创建
server.php文件,粘贴Laravel默认的内容:
<?php $uri = urldecode( parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ); // This file allows us to emulate Apache's "mod_rewrite" functionality from the // built-in PHP web server. This provides a convenient way to test a Laravel // application without having installed a "real" web server software here. if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { return false; } require_once __DIR__.'/public/index.php';
3. 检查PHP的执行权限与环境配置
Windows下XAMPP的PHP如果配置不当,可能会引发文件操作异常:
- 用管理员权限打开命令提示符(CMD)或PowerShell,再执行
php artisan serve - 确认XAMPP的PHP路径已加入系统环境变量,避免因相对路径执行PHP导致的权限问题
- 检查项目根目录的读写权限:右键项目文件夹 → 属性 → 安全 → 确保当前用户拥有写入或完全控制权限
4. 绕开php artisan serve,改用XAMPP Apache直接部署
如果上面的方法都无效,其实可以直接用XAMPP的Apache来运行Laravel,这也是更稳定的生产级部署方式:
- 打开XAMPP的
httpd-vhosts.conf文件(一般位于xampp/apache/conf/extra/目录) - 添加虚拟主机配置:
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/你的Laravel项目目录/public" ServerName laravel.local </VirtualHost>
- 打开
C:\Windows\System32\drivers\etc\hosts文件,添加一行:127.0.0.1 laravel.local - 重启XAMPP的Apache服务,在浏览器访问
http://laravel.local即可正常运行项目
内容的提问来源于stack exchange,提问作者chhatraman shrestha
相关产品推荐
相关产品推荐

