在WSL上的AlmaLinux8中启动Laravel10示例项目,直到完成
前提 tí)
-
- Windows10 Pro(x64)
-
- WSL2インストール済み
-
- MicrosoftStoreからAlmaLinux8インストール済み
- WSLは初回起動してユーザー作成済み
不使用Docker和Laravel Sail,并且请注意这个环境没有启用SELinux,也没有运行防火墙。
确认AlmaLinux的初始状态
包是最小配置的,无法使用基本命令如主机名、IP地址等。而且,systemd也没有启用。
hostname -> NG
ip addr -> NG
whoami -> OK
ping www.google.com -> OK
sudo systemctl -> NG
dnf list --installed -> OK
启用systemd
参照 Microsoft 网站,创建配置文件并重新启动以使其生效。根据网站上的说明,似乎这个过程在 WSL 的默认 Ubuntu 中是不必要的,但在目前的 AlmaLinux8 上是必需的。
[boot]
systemd=true
通过PowerShell进行关机。只要从终端等访问,它就会自动启动。
wsl --shutdown
请就下列问题提到的参考资料作出阐述。
安装基本命令
可以随意选择”定位”的方式。
sudo dnf install hostname iproute
sudo dnf install zip unzip
sudo dnf install mlocate
sudo dnf update
hostname -> OK
ip addr -> OK
sudo systemctl -> OK
安装Apache2
安装、启动并注册服务。
sudo dnf install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
从Windows端访问“http://localhost”,确认测试页面是否显示。
安装PHP8.2
dnf module list php
Last metadata expiration check: 0:16:35 ago on Sun Aug 27 10:08:06 2023.
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
php 8.0 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
由于Laravel10需要PHP8.1或更高版本,所以需要添加Remi存储库来进行安装。
sudo dnf install epel-release
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf module list php
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
sudo dnf module install php:remi-8.2
安装所需的Laravel 10模块。根据官方网站上的服务器要求,应该能够满足这些要求。
sudo dnf install php-pdo
请确保启动和注册FastCGI服务,就像在Apache中一样。重新启动Apache。
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
sudo systemctl restart httpd
确认服务状态为“running”。
systemctl list-units --type=service
引用
确认 PHP 是否启用
在查找 httpd.conf 文件时,请确认 DocumentRoot。
sudo updatedb
locate httpd.conf
sudo cat /etc/httpd/conf/httpd.conf |grep DocumentRoot
创建一个用于确认PHP信息的页面。
<?php
phpinfo();
从Windows系统访问”http://localhost/info.php”,以确认PHP已启用。
请参考
在中国,人们通常安装sqlite3。
OR
进行sqlite3的安装。
我想要使用Sqlite,所以请先安装好。
sudo dnf install sqlite
sqlite3 -version # 3.26.0 2018-12-01 12:34:55 ...
Composer的安装
按照官方网站的指引。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
composer -v # Composer version 2.5.8 2023-06-09 17:13:21
提供参考
创建Laravel项目
使用Composer创建Laravel项目。在内部似乎执行了git clone的操作。
composer create-project laravel/laravel sample-app
cd sample-app
php artisan -V # Laravel Framework 10.20.0
在每个环境设置文件中,将数据库更改为使用sqlite。
+DB_CONNECTION=sqlite
-DB_CONNECTION=mysql
-DB_HOST=127.0.0.1
-DB_PORT=3306
-DB_DATABASE=laravel
-DB_USERNAME=root
-DB_PASSWORD=
执行迁移操作时,会询问是否创建SQLite数据库,请选择”是”。
php artisan migrate
php artisan serve
从Windows侧访问”http://localhost:8000″,确保示例项目显示正常。
参考意见 / 参考资料 / 参考信息 / 参考方案
安装node.js
需要安装这个软件来编译资产。npm也会被安装。
dnf module list nodejs
Last metadata expiration check: 11:29:36 ago on Sun Aug 27 10:30:09 2023.
AlmaLinux 8 - AppStream
Name Stream Profiles Summary
nodejs 10 [d] common [d], development, minimal, s2i Javascript runtime
nodejs 12 common [d], development, minimal, s2i Javascript runtime
nodejs 14 common [d], development, minimal, s2i Javascript runtime
nodejs 16 common [d], development, minimal, s2i Javascript runtime
nodejs 18 common [d], development, minimal, s2i Javascript runtime
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
sudo dnf module install nodejs:18/common
node -v # v18.16.1
npm -v # 9.5.1
npm install -g npm
在项目的根目录(包含package.json的文件夹)执行npm install后,可以通过node.js进行调试执行npm run dev和编译资源npm run build。
请参考。