WSLコマンドとLAMP設定

Windows

DockerがあってもWSLの中でやるほうが安心なのは俺だけか?

WSL基本コマンド

ステータスを見る

wsl -l -v

wslのバージョン切り替え

wsl --set-version ディストリ名 バージョン

例:wsl –set-version Ubuntu-20.04 2

wslのディストリビューションの起動

wslのみだとデフォルトが起動

wsl -d ディストリビューション名

wslコマンドだけで起動するデフォルトのバージョンを設定

wsl --set-default-version ディストリ名

イメージをエクスポート

wsl --export ディストリ名 ファイル名

イメージをインポートして作る

wsl --import ディストリ名 インポートファイル名 エクスポートされたファイル名 --version 2

wslのディストリを作る

(作れるディストリビューション名はwsl –list –onlineでリストされる)

wsl --install -d ubuntu20.04

ログイン

powershellから

wsl

wslのインスタンスのシャットダウン

wsl --shutdown

ディストリビューションの登録を解除、(ファイルは消えないようだ)

wsl --unregister ディストリビューション

LAMPの導入

Dockerで作ったものが、Dockerのない世界で動かすにはどうすりゃいいんだろ?と思って作ってみた。
WSL上のソフトウェアはネイティブで動いているUBUNTUとちょっと違っていろいろ制約があるみたい。

PHP

フツーに

sudo apt update
sudo apt upgrade
sudo apt autoremove
sudo apt autoclean
sudo apt install php

と4個おまじないを入れてからphpをインストール

MySQL

フツーに

sudo apt install mysql-server

これで、クライアントも入ります。(apt list|gerp mysql)
セキュリティとかうざいので、なにもしない。ひとりのおじさんがひっそり使っているPCの上のWSLに入ったmysqlなんぞ、誰がアクセスできるというのか?

起動は

sudo service mysql start

mysqlもしくは mysql -u root と入れるとmysqlにつながる。

Apache2

sudo apt install apache2

これですんなりインストールはできるのですが、いろいろ周辺の作業があります。
ちなみにapache2 -V で設定ファイルの場所がわかります。

Apache2のユーザーグループがwww-dataなので、自分のユーザーIDも登録します。

sudo usermod -aG www-data <ユーザー名>

ドキュメントルートの属性を次のように変更(forbidden対策)

sudo chown -R <さっきのユーザー名>:www-data /var/www/html 
sudo chmod -R 755 /var/www/html

立ち上げる時は以下のコマンドでやりましょう!(

sudo service apache2 start

ここで、Windowsでブラウザーを立ち上げてlocalhostでアクセスできるはずです。

以下のネットワークツールをインストールします。

sudo apt install net-tools

これで、ifconfigコマンドが使えますからifcomandを投入します。

そこでinetという表示の後ろにipアドレスがあるはずです。
それがWSLの外部向けIPアドレスですから、やはりWindowsのブラウザーからアクセスします。
確認しておきましょう。

Laravel

PHPで一番メジャーなフレームワークです。
メジャーなだけに、いまやこんなに簡単にインストールできます。

まず、composerをインストールします。composerはPHPのパッケージ管理ツールです。

sudo apt install composer

Laravelのインストーラーをインストールします。

composer globalrequire laravel/installer

PATHを追加します。

nano .profile

で、最後の行に

PATH="$PATH:$HOME/.config/composer/vendor/bin"

を追加し、

source .profile

Apache2をインストールして表示したapache2の画面によると

/etc/apache2/apache2.conf

が設定ファイルです。
(ここから周囲のフォルダーのconfを呼びまくっているので、いちいち調べなきゃいけなくて疲れます。)

Laravelはpublicフォルダーがメインのindex.phpが置かれる場所です。

今まではVirtual HostでAliasを定義していたのですが、シンボリックリンクでとりあえず確認できる方法をやっている人がいたのでマネしました。

ln -s /var/www/html/testpj /user/<user-name>/testpj

ERROR 500ですが、これはLaravelのテストプロジェクトの作り方がまずかったようだ。