WAMP Server下Laravel公共存储链接访问NAS问题求助
WAMP Server下Laravel符号链接访问NAS文件失败问题
问题描述
本地Windows 11环境:VueJS前端在VSCode终端独立运行(支持热重载),WAMP Server部署Laravel 10 API后端。
通过管理员权限执行命令mklink /D "storage" "<path to NAS>"创建指向NAS(SMB/1.0CIFS)的符号链接,用php artisan serve启动Laravel时链接正常可用,但WAMP Server(管理员身份运行)无法访问该链接。
已尝试操作
- 映射NAS驱动器,
net use确认映射正常,资源管理器点击符号链接可进入目标目录 - 调整Apache运行账户:先后用「LocalSystem Account」、本地管理员账户启动服务,均无效
- NAS文件夹权限设为「777」
- 本地同驱动器目录的符号链接,WAMP Server可正常访问,仅NAS链接异常
环境配置
- OS: Windows 11
- NAS: SMB/1.0CIFS
- Laravel: 10
- Apache: 2.4.58
- PHP: 8.2.13
解决方案
1. 改用UNC路径创建符号链接
Windows服务无法直接识别用户会话中映射的驱动器,替换成NAS的UNC路径重新创建链接:
mklink /D "C:\wamp64\www\你的Laravel项目路径\storage" "\\NAS的IP地址\共享文件夹路径"
注意:要确保Apache运行账户(LocalSystem或指定账户)在NAS端有读写权限。
2. 开启Apache的符号链接跟随权限
修改WAMP的Apache虚拟主机配置文件httpd-vhosts.conf,在对应Laravel站点的<Directory>区块中添加:
Options FollowSymLinks AllowOverride All
保存后重启Apache服务。
3. 给Apache运行账户配置NAS访问权限
- 若用LocalSystem账户运行Apache:在NAS端添加「NETWORK SERVICE」或「ANONYMOUS LOGON」账户,并授予读写权限
- 若用自定义管理员账户:确保该账户在NAS端被明确分配了共享文件夹的读写权限,修改服务登录账户后重启WAMP和Apache
4. 检查PHP的open_basedir限制
打开php.ini文件,找到open_basedir配置项,将NAS的UNC路径或符号链接路径加入允许列表:
open_basedir = "C:\wamp64\www\你的Laravel项目路径;\\NAS的IP地址\共享文件夹路径"
修改后重启Apache生效。
内容的提问来源于stack exchange,提问作者user558720
相关产品推荐
相关产品推荐

