启动 Laravel 专案前的环境设置还是挺麻烦的,不过目前 Laravel 官方指南的安装方式变成用 Laravel Sail 直接建立一个 Docker ,就不用那麽伤脑筋了,理论上。
https://github.com/laravel/sail
Laravel Sail 会建立包含资料库在内的 Laravel 环境容器,并且让我们可以直接由指令视窗操作容器中的 Laravel 专案。
指令
curl -s "https://laravel.build/example-app" | bash
在 Linux 跟 MacOS 下可以直接使用着个指令,不过在 windows 要藉由 WSL (Windows Subsystem Linux) 执行。
如果指令正确执行的话会做几件事:
example-app 是专案目录的名称,可以替换
顺利的话等他跑完就可以进到专案中执行 Sail
cd example-app
./vendor/bin/sail up
而我就是特别不顺利的那个,在 Windows 底下尝试安装时撞了好多墙 (大多是 WSL 的问题),这边记录一下
直接参考官方文件,蛮详细的。
这边要特别注意步骤 3 跟 4 ,要设定 Docker 可被 WSL 取用才能够在 WSL 中使用 Docker 的指令。
在进入 Ubuntu 试图执行 Docker 指令时可能会出现的错误。
首先确定上面安装 Docker 时有设定可被 WSL 取用。
另外我遇到的是安装 Microsoft Store 中的 Ubuntu 时不管怎麽设定都连不上 Docker,後来是改用 Ubuntu 20.04 LTS 才成功连上
执行创建专案指令时可能发生。
curl -s "https://laravel.build/example-app" | bash
问题发生在安装脚本上,可以试着开启连结 https://laravel.build/example-app ,可以看到脚本内容。
docker info > /dev/null 2>&1
# Ensure that Docker is running...
if [ $? -ne 0 ]; then
echo "Docker is not running."
exit 1
fi
docker run --rm \
-v $(pwd):/opt \
-w /opt \
laravelsail/php80-composer:latest \
bash -c "laravel new example-app && cd example-app && php ./artisan sail:install --with=mysql,redis,meilisearch,mailhog,selenium"
cd example-app
CYAN='\033[0;36m'
LIGHT_CYAN='\033[1;36m'
WHITE='\033[1;37m'
NC='\033[0m'
echo ""
if sudo -n true 2>/dev/null; then
sudo chown -R $USER: .
echo -e "${WHITE}Get started with:${NC} cd example-app && ./vendor/bin/sail up"
else
echo -e "${WHITE}Please provide your password so we can make some final adjustments to your application's permissions.${NC}"
echo ""
sudo chown -R $USER: .
echo ""
echo -e "${WHITE}Thank you! We hope you build something incredible. Dive in with:${NC} cd example-app && ./vendor/bin/sail up"
fi
这边确认起来应该是因为 11~14 行的指令有退行,导致 Docker 无法执行。
解决办法就是复制这份脚本到本地,把退行删掉,然後手动执行 bash。
需要改专案名称的话就手动替换掉脚本内的 example-app
成功执行脚本後开始建立 Laravel 专案, Composer 却安装不了套件。
原因: WSL 记忆体不足。
找到 .wslconfig,一般放在 C:\Users\<使用者> 底下
// .wslconfig
[wsl2]
memory=128GB //将记忆体改大
swap=0
localhostForwarding=true
可以视需求调整分配给 WSL 的记忆体,我是拉到超大让 WSL 可取用所有记忆体。
故障都排除的话 sail up 指令可以成功执行,就会开始容器的建置,第一次建置会跑比较久一些。
当 sail up 的指令跑完之後可以到 Chrome 网址输入 locahost ,就能看到 Laravel 预设专案的欢迎画面。
<<: [Day-17] R语言 - 分群应用(一) GMM数值补值-下 ( Fill.NA with GMM in R.Studio )
我对VR的第一印象,就是一个人戴着罩住眼睛的头盔,手拿着摇杆的游戏。但是这个软件到底要怎麽制作,且是...
前言 直接将所有 Python 程序写在工作簿内的第一种 TabPy 使用方法我们已经学会了,但这种...
INNER JOIN (内部连接) 为等值连接,必需指定等值连接的条件,而查询结果只会返回符合连接条...
-API 闸道器和服务网格(来源:Liran Katz) 实施 API 闸道器以促进跨境通信;他们...
前言 今日的程序码 => GITHUB 这次要来介绍 Flutter 的 Cloud Mess...