如何用Windows 11运行Laravel项目 Laravel框架PHP环境部署步骤

在windows 11上运行laravel项目,1. 可使用xampp快速搭建环境,包括安装apache、mysql、php,配置环境变量,安装composer,并通过composer create-project创建项目,配置.env文件并运行php artisan serve启动服务;2. 或使用wsl2搭建更接近生产环境的linux开发环境,需启用wsl2、安装ubuntu、配置php、composer、nginx、mysql,创建或克隆项目,配置nginx站点并设置hosts文件,运行迁移并访问项目;3. 配置php和composer需正确设置环境变量,下载php并解压,修改php.ini启用扩展,将php路径添加至系统path,安装composer并测试;4. 常见问题包括文件权限问题,需修改目录权限为完全控制或使用chmod/chown;端口冲突可通过指定不同端口解决;composer内存不足需修改php.ini中memory_limit;.env文件需正确复制并配置数据库信息,生成应用密钥;node.js问题需安装node.js及npm依赖;git行尾符问题可通过git配置或dos2unix工具解决。

如何用Windows 11运行Laravel项目 Laravel框架PHP环境部署步骤

在Windows 11上运行Laravel项目,核心在于搭建PHP运行环境、安装Composer管理依赖,并配置一个本地Web服务器。最直接的路径通常是利用集成开发环境如XAMPP或WAMPP快速部署,或者,如果你追求更接近生产环境的体验,WSL2(Windows Subsystem for Linux 2)会是更优的选择,它能提供一个近乎原生的Linux开发环境。

如何用Windows 11运行Laravel项目 Laravel框架PHP环境部署步骤

解决方案

要让Laravel在你的Windows 11机器上跑起来,我们通常有几种方法。我个人比较推荐的,尤其对于初学者,是先从集成环境入手,因为它省心。但如果你想更深入一点,或者未来考虑部署到Linux服务器,WSL2绝对值得一试。

方法一:使用XAMPP(或WAMPP)快速搭建环境

立即学习“PHP免费学习笔记(深入)”;

如何用Windows 11运行Laravel项目 Laravel框架PHP环境部署步骤

这是很多新手入门的选择,因为它把Apache、MySQL、PHP和Perl打包在一起,一键安装。

下载并安装XAMPP: 访问Apache Friends官网下载最新版的XAMPP。安装过程很简单,一路“下一步”就行。安装路径建议保持默认,或者选择一个你容易找到的盘符,比如C:xampp启动Apache和MySQL: 安装完成后,打开XAMPP Control Panel,点击Apache和MySQL旁边的“Start”按钮,确保它们都变成绿色,表示运行正常。配置PHP环境变量(可选但推荐): 这一步是为了让你能在任何地方直接运行php命令。找到你的XAMPP安装目录下的php文件夹,比如C:xamppphp。右键“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”。在“系统变量”中找到Path变量,双击编辑。点击“新建”,然后粘贴你的PHP路径(例如C:xamppphp),点击确定保存。打开一个新的命令提示符(CMD)或PowerShell窗口,输入php -v,如果能显示PHP版本信息,说明配置成功。安装Composer: Composer是PHP的依赖管理工具,Laravel项目离不开它。访问Composer官网下载Composer-Setup.exe。运行安装程序,它会自动检测你的PHP路径。如果之前PHP环境变量设置好了,它会直接找到。如果没找到,你需要手动指定PHP的php.exe文件路径。安装完成后,打开新的CMD或PowerShell,输入composer -v,看到版本信息就对了。创建Laravel项目:打开CMD或PowerShell,导航到你希望存放项目的目录,比如C:xampphtdocs(这是XAMPP默认的Web根目录),或者你自定义的开发目录。运行命令:composer create-project laravel/laravel your-project-name。将your-project-name替换成你项目的名字。这个过程可能需要一些时间,因为它会下载所有Laravel所需的依赖。配置.env文件: 项目创建完成后,进入项目目录,复制.env.example文件并重命名为.env。这是Laravel的环境配置文件,你需要在这里配置数据库连接信息等。DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=your_database_name (在phpMyAdmin或MySQL客户端中创建这个数据库)DB_USERNAME=root (XAMPP默认用户)DB_PASSWORD= (XAMPP默认密码为空)生成应用密钥: 在项目根目录运行php artisan key:generate运行项目: 在项目根目录运行php artisan serve。这会启动Laravel自带的开发服务器,通常在http://127.0.0.1:8000。打开浏览器访问这个地址,你应该就能看到Laravel的欢迎页面了。

方法二:使用WSL2(Windows Subsystem for Linux 2)

如何用Windows 11运行Laravel项目 Laravel框架PHP环境部署步骤

如果你对Linux环境更熟悉,或者希望开发环境更接近生产环境,WSL2是绝佳的选择。它允许你在Windows上运行一个完整的Linux内核,性能非常接近原生。

启用WSL2:

打开PowerShell(以管理员身份运行),运行wsl --install。这会安装WSL和默认的Ubuntu发行版。重启电脑。第一次启动Ubuntu,你需要设置用户名和密码。

在WSL2中安装PHP、Composer、Nginx/Apache和MySQL:

打开Ubuntu终端。更新包列表:sudo apt update && sudo apt upgrade安装PHP及其常用扩展:sudo apt install php-cli php-mbstring php-xml php-zip php-mysql php-fpm unzip composer安装Nginx(或Apache):sudo apt install nginx安装MySQL服务器:sudo apt install mysql-server配置MySQL安全设置:sudo mysql_secure_installation

克隆或创建Laravel项目:

在WSL2中导航到你希望存放项目的目录,比如cd /var/www/html。使用Git克隆你的项目:git clone your-repo-url,或者使用Composer创建新项目:composer create-project laravel/laravel your-project-name

配置Web服务器(Nginx为例):

为你的Laravel项目创建一个Nginx站点配置文件:sudo nano /etc/nginx/sites-available/your-project-name.conf

粘贴以下内容(根据实际路径修改rootserver_name):

server {    listen 80;    server_name your-project-name.test; # 或你的域名/IP    root /var/www/html/your-project-name/public; # 项目的public目录    add_header X-Frame-Options "SAMEORIGIN";    add_header X-Content-Type-Options "nosniff";    index index.php index.html index.htm;    charset utf-8;    location / {        try_files $uri $uri/ /index.php?$query_string;    }    location ~ .php$ {        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据你的PHP版本修改        fastcgi_index index.php;        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;        include fastcgi_params;    }    location ~ /.(?!well-known).* {        deny all;    }}

创建软链接启用站点:sudo ln -s /etc/nginx/sites-available/your-project-name.conf /etc/nginx/sites-enabled/

删除默认站点:sudo rm /etc/nginx/sites-enabled/default

测试Nginx配置:sudo nginx -t

重启Nginx服务:sudo systemctl restart nginx

配置.env和运行项目:

在项目根目录复制.env.example.env,配置数据库等信息。生成应用密钥:php artisan key:generate运行迁移:php artisan migrate

访问项目:

如果你配置了server_name your-project-name.test,你可能需要在Windows的hosts文件中添加一行:127.0.0.1 your-project-name.test。或者直接访问WSL2的IP地址。在WSL2终端运行ip addr show eth0,找到inet后面的IP地址,然后在Windows浏览器中访问该IP。

为什么我应该在Windows 11上使用WSL2来运行Laravel项目?

说实话,我个人现在几乎都倾向于在WSL2里搞开发了。它真的带来了很多便利,尤其是在处理一些特定场景的时候。

首先,环境一致性是最大的优势。Laravel项目最终通常会部署到Linux服务器上,WSL2提供了一个非常接近生产环境的Linux开发体验。这意味着你在开发过程中遇到的问题,比如文件权限、路径分隔符、某些特定扩展的兼容性,都更可能在本地重现,而不是等到部署后才发现。这大大减少了“在我的机器上能跑”的尴尬。

其次,性能提升。相比于传统的虚拟机或者直接在Windows上运行PHP,WSL2在文件I/O方面的性能表现要好得多,尤其是在处理大量文件操作的Composer安装或npm构建时,你会明显感觉到速度的提升。对于Laravel这种依赖文件较多的框架来说,这体验上的提升是实实在在的。

再来,工具链的无缝衔接。很多开源工具和库,比如Docker、Git、Node.js,在Linux环境下有着更原生的支持和更丰富的生态。在WSL2里,你可以直接使用这些工具的Linux版本,不用再担心Windows下各种路径问题或者兼容性补丁。比如,使用Docker Desktop for Windows时,它能与WSL2深度集成,让你的容器化开发流程更加顺畅。

当然,它也有一些学习曲线,比如你需要熟悉一些基本的Linux命令,但这些投入绝对是值得的。我经常开玩笑说,WSL2就像给Windows装了个“Linux加速器”,让你在Windows的舒适区里,享受Linux的开发效率。

在Windows 11上配置PHP和Composer的正确姿势是什么?

配置PHP和Composer,说白了就是让你的系统知道phpcomposer这两个命令在哪里。很多人刚开始会在这里遇到点小麻烦,主要是环境变量没设对,或者版本搞混了。

最“正确”的姿势,其实取决于你的需求。如果你用XAMPP或WAMPP,它们安装时通常会帮你把PHP的环境变量设置好。但如果没设好,或者你是手动下载PHP,那手动添加php.exe所在的目录到系统Path变量就成了关键一步。

手动设置PHP环境变量的步骤:

下载PHP: 从PHP官网下载对应的Windows版本(通常是Thread Safe版本,如果你用Apache)。解压到一个你喜欢的目录,比如C:php配置php.ini 在PHP解压目录里,你会看到php.ini-developmentphp.ini-production。复制其中一个(通常是php.ini-development)并重命名为php.ini。打开php.ini,找到extension_dir,取消注释并修改为你的ext目录路径,例如extension_dir = "C:phpext"。启用一些常用扩展,比如extension=curlextension=mbstringextension=pdo_mysqlextension=gd等,把前面的分号去掉就行。调整memory_limit(比如memory_limit = 512M),防止Composer安装大项目时内存不足。添加到Path变量: 就像前面XAMPP那部分讲的,把C:php(或你实际的PHP安装路径)添加到系统环境变量的Path中。

Composer的安装姿势:

Composer的安装就简单多了,直接下载Composer-Setup.exe运行,它会引导你完成安装,并自动帮你设置好环境变量。它会自动找到你系统中的PHP可执行文件。如果它没找到,那多半是你PHP的环境变量没设对,或者你电脑里有多个PHP版本,它选错了。

小贴士: 每次修改完环境变量,一定要打开一个新的CMD或PowerShell窗口来测试。旧窗口的环境变量是不会自动刷新的。输入php -vcomposer -v,确保它们都能正常显示版本信息,这就算大功告成了。如果遇到问题,先检查Path变量,再看看是不是有多个PHP版本在“打架”。

Laravel项目在Windows环境下常见的运行问题及解决方案?

在Windows上折腾Laravel,我遇到过不少“小坑”,有些是Windows特有的,有些则是新手常犯的。

文件权限问题:问题表现: storagebootstrap/cache目录写入失败,导致日志无法生成、缓存无法写入,页面报错500。解决方案: 这是最常见的。Windows的文件权限管理和Linux不同。通常,你需要给你的项目目录(特别是storagebootstrap/cache)赋予当前用户完全控制的权限。右键项目文件夹 -> 属性 -> 安全 -> 编辑,给你的用户添加完全控制权限。或者,如果你在WSL2里,确保你的Linux用户有这些目录的写入权限,通常sudo chmod -R 777 storage bootstrap/cache可以临时解决,但更推荐sudo chown -R $USER:$USER storage bootstrap/cache端口冲突(php artisan serve):问题表现: 运行php artisan serve时提示端口8000被占用。解决方案: 可能是其他程序占用了8000端口,比如另一个Laravel项目,或者某些开发工具。你可以指定一个不同的端口:php artisan serve --port=8001Composer内存不足(memory_limit):问题表现: 运行composer installcomposer update时报错,提示内存不足。解决方案: PHP默认的memory_limit可能不够大。你需要编辑php.ini文件,找到memory_limit这一行,将其值调大,比如memory_limit = 512M1024M。改完记得重启XAMPP的Apache服务,或者如果你是手动安装PHP,确保你修改的是当前使用的php.ini.env配置错误或未生成:问题表现: 数据库连接失败、应用密钥未生成导致加密解密问题。解决方案: 确保你已经从.env.example复制并创建了.env文件。仔细检查.env文件中数据库连接信息(DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD)是否与你的数据库配置一致。然后运行php artisan key:generate生成应用密钥。Node.js/NPM相关问题:问题表现: 如果你的Laravel项目使用了Laravel Mix或Vite进行前端资源编译,你可能需要安装Node.js和NPM。解决方案: 访问Node.js官网下载并安装LTS版本。安装完成后,在项目根目录运行npm install安装前端依赖,然后运行npm run dev(或npm run build)编译前端资源。这块跟PHP环境是独立的,但对于现代Laravel项目来说,几乎是标配。Git行尾符转换问题:问题表现: 在Windows上克隆的Git项目,在WSL2里运行时可能会因为行尾符(CRLF vs LF)问题导致脚本执行异常。解决方案: 在Git配置中设置git config --global core.autocrlf input,或者在克隆项目时注意设置。如果已经克隆了,可以在WSL2里用dos2unix工具转换文件。

这些问题,说白了就是环境配置、依赖管理和一些跨系统兼容性的小细节。多折腾几次,你就会发现它们其实都有固定的套路去解决。

以上就是如何用Windows 11运行Laravel项目 Laravel框架PHP环境部署步骤的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1289495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何开启PHP环境的OPcache加速 PHP代码执行性能优化技巧
上一篇 2025年12月11日 05:37:47
Laravel 中统计活跃缓存会话数(在线用户数)
下一篇 2025年12月11日 05:38:00

相关推荐

  • 如何在mysql中实现热备份

    最推荐的MySQL热备份方案是结合Percona XtraBackup全量备份与binlog增量备份,并通过主从复制实现高可用。首先使用XtraBackup对InnoDB引擎进行在线全量备份,无需锁表;备份后执行–prepare确保数据一致性,恢复时用–copy-back还原…

    2026年9月22日
    000
  • Laravel 8 注册成功但登录失败的解决方案

    本文针对 Laravel 8 中使用 php artisan ui:auth 生成的认证系统,注册功能正常但登录功能失效的问题,提供了一种解决方案。通过重写 LoginController 中的 username() 方法,将认证字段从默认的 email 修改为 username,从而解决登录失败的…

    2026年9月22日
    000
  • VSCode搭建Vivado开发环境(详细配置指南,FPGA开发必备)

    答案:通过安装Verilog/SystemVerilog和Tcl扩展、配置Linter进行语法检查,并在tasks.json中定义调用Vivado命令行的任务,可在VSCode中实现RTL开发、语法高亮、智能提示及综合仿真等自动化流程,提升FPGA开发效率。 将VSCode作为Vivado的开发前端…

    2026年9月22日
    000
  • rm -rf 误删文件?别急,或许有救!

    rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!

    立即采取行动! 在生产环境中,我们应尽量避免进行风险操作。但如果不慎犯错,如何挽救呢?让我分享一个故事:上周我为了打包一个应用,需要整理Ubuntu 16.04上的线上数据,不小心删除了一个数据文件,幸而最终有惊无险,现记录如下。 extundelete 我的恢复计划主要依赖于一个工具——extun…

    2026年9月22日 用户投稿
    000
  • MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作

    MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作MySQL跨数据库查询技巧_实现不同数据库间的数据联动操作

    mysql跨数据库查询的核心方法是在sql语句中通过“数据库名.表名”方式指定不同数据库的表,实现数据联动。1.在同一个mysql实例内,直接使用数据库名加表名进行关联查询,如db_user.users和db_order.orders,前提是用户需具备相应权限且建议对关联字段建立索引以提升性能;2.…

    2026年9月22日 用户投稿
    400
  • laravel+redis有哪些用法

    laravel+redis有用法有:1、使用Redis作为缓存驱动器;2、使用Laravel提供的缓存操作方法来操作Redis缓存;3、使用Redis作为数据存储系统,Laravel提供了与Redis交互的方法,使我们能够方便地进行数据存储和读取;4、还提供了其他高级功能,如发布订阅、事务和管道等,…

    2026年9月22日
    700
  • VSCode高效配置Node.js:npm集成、中文报错、断点调试

    答案:高效配置VSCode与Node.js需确保Node.js和npm为最新版,利用集成终端运行命令,通过jsconfig.json或tsconfig.json优化项目配置,解决中文乱码需设置终端编码为UTF-8并选择支持中文的字体,调试核心是正确配置launch.json文件,使用pwa-node…

    2026年9月22日
    400
  • MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑

    MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑MySQL复杂查询语句写作技巧_Sublime环境中编写多表关联逻辑

    提升mysql多表查询性能与可读性的方法包括:1. 优化索引,确保join和where字段有合适索引,理解复合索引左前缀原则;2. 使用cte分解逻辑,使结构清晰易维护;3. 利用sublime text插件如sqltools、sublimelinter提升编写效率;4. 拆解复杂逻辑,逐步构建查询…

    2026年9月22日 用户投稿
    100
  • unix怎么安装php_unix系统安装php环境指南

    首先确认系统环境并检查是否已安装相关软件,然后选择包管理器或源码编译方式安装PHP;推荐使用包管理器快速安装,如Debian/Ubuntu用apt,CentOS/RHEL/Fedora用yum或dnf,FreeBSD用pkg;安装后配置Web服务器,Apache需加载mod_php或集成PHP-FP…

    2026年9月22日
    300
  • itextpdf freemarker渲染

    关于打印pdf操作的需求,经过研究,发现以下两种方法: 在现有的模板上进行编辑,这种方法操作难度较大。而通过FreeMarker生成静态页面,然后转换为HTML,操作更为顺畅。动态生成PDF的方法在网上参考较多,经过对比,我认为使用FreeMarker结合IText生成PDF最为简单。参考链接为ht…

    2026年9月22日
    300
  • laravel路由错误怎么办

    laravel路由错误解决方法:1、检查路由定义是否正确,如果错误,根据错误提示进行修改;2、检查路由命名冲突,可以修改其中一个路由的名称来解决冲突;3、清除路由缓存,使用“php artisan route:clear”命令来清除路由缓存;4、检查路由参数,可以在路由定义中使用正则表达式来限制参数…

    2026年9月22日
    1400
  • 使用空值合并运算符为数组元素设置默认值

    本文将介绍如何使用 PHP 的空值合并运算符 (??) 为数组元素设置默认值,尤其是在处理用户输入时。 通过该运算符,可以在变量值为 null 或不存在时,提供一个备选值,从而简化代码并提高可读性。我们将通过一个实际的 Laravel 邮件发送示例,演示如何在请求参数中缺失主题时,设置默认主题。 空…

    2026年9月22日
    600
  • VSCode精简配置Git:中文提交记录、分支可视化、冲突解决

    首先解决中文乱码需配置Git和VSCode编码为UTF-8,其次通过GitLens或Git Graph实现分支可视化,最后利用VSCode内置的冲突解决工具高效处理合并冲突,全面提升Git使用体验。 在VSCode里用Git,我总觉得能再顺手点。特别是处理中文提交信息、想直观看看分支图,或者面对恼人…

    2026年9月22日
    500
  • Linux驱动开发-编写DS18B20驱动

    Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动

    引言 本文详细介绍了如何在linux系统下为ds18b20温度传感器编写驱动程序,以测量环境温度,并将ds18b20注册为字符设备,通过文件接口将温度数据传递给应用层。 本文使用的开发板是友善之臂的Tiny4412开发板,搭载三星的Exynos-4412 CPU,主频为4核1.5GHz,运行的Lin…

    2026年9月22日 用户投稿
    100
  • Reinstalling Alpine Linux on a Lighthouse Instance

    Start by creating an instance with Debian or your preferred operating system. Log into the instance. Download the Arch Linux ISO for booting. Although…

    2026年9月22日
    000
  • MySQL数据类型详解_如何选择合适字段类型提升存储效率

    MySQL数据类型详解_如何选择合适字段类型提升存储效率MySQL数据类型详解_如何选择合适字段类型提升存储效率MySQL数据类型详解_如何选择合适字段类型提升存储效率MySQL数据类型详解_如何选择合适字段类型提升存储效率

    mysql选择合适数据类型的核心原则是根据数据特性选择占用空间最小且能准确表达数据的类型。1. 选择整数类型时,应依据数据范围选择tinyint、smallint、mediumint、int或bigint,优先选更小类型以节省空间;2. 字符串类型中,char适用于固定长度数据,varchar适用于…

    2026年9月22日 用户投稿
    000
  • VSCode调试FPGA工程的技巧(结合Vivado,快速定位问题)

    vscode在fpga开发中并非替代vivado,而是作为高效辅助工具提升开发效率。1. 在代码编写方面,vscode提供 superior 的语法高亮、自动补全和代码管理功能,显著优化verilog、systemverilog和tcl脚本的编写体验,并通过git实现无缝版本控制;2. 在仿真与自动…

    2026年9月22日
    1200
  • MySQL慢查询日志分析技巧_MySQL慢查询优化策略全方位讲解

    MySQL慢查询日志分析技巧_MySQL慢查询优化策略全方位讲解MySQL慢查询日志分析技巧_MySQL慢查询优化策略全方位讲解MySQL慢查询日志分析技巧_MySQL慢查询优化策略全方位讲解MySQL慢查询日志分析技巧_MySQL慢查询优化策略全方位讲解

    要正确配置mysql慢查询日志以捕获关键性能数据,1. 开启slow_query_log = on;2. 设置slow_query_log_file指定日志路径;3. 根据业务设定合适的long_query_time(如生产环境设为1秒);4. 启用log_queries_not_using_ind…

    2026年9月22日 用户投稿
    500
  • laravel表单类用法是什么

    laravel表单类用法有:1、表单验证,提供了一种简单而强大的方式来验证表单数据,可以使用validate方法来定义验证规则和错误消息;2、表单重填,提供了一个方便的方式来重新填充表单字段的值,可以使用old方法来获取上一次提交的值;3、文件上传,提供了一个方便的方式来处理文件上传,可以在表单中添…

    2026年9月22日
    500
  • 如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    在linux中查看文件系统类型时,df -t 适合查看已挂载分区的文件系统,而 lsblk -f 可查看所有块设备信息。1. df -t 显示已挂载的文件系统类型、磁盘使用情况及挂载点,适用于快速了解当前挂载目录所用文件系统;2. lsblk -f 列出包括未挂载设备的详细信息,如 uuid、lab…

    2026年9月22日 用户投稿
    300

发表回复

登录后才能评论
关注微信