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のテストプロジェクトの作り方がまずかったようだ。