在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。

请参考。

 

广告
将在 10 秒后关闭
bannerAds