Windows11 WSL2 Ubuntu Apache2

WSL2 Ubuntu Apache2 CGI

ここまでで、PHP が使えるようになりました。
引き続き、WSL2 Ubuntu Apache2 で CGI モジュールが使えるようにしていきます。
Windows11 WSL2 Ubuntu を起動します。
Ubuntu のターミナルが立ち上がったら
CGI モジュールが使えるようにします。
yamada@yama:~$ sudo a2enmod cgi
Enabling module cgid.
To activate the new configuration, you need to run:
systemctl restart apache2
apache2 を再起動します。
$ sudo systemctl restart apache2
これで CGI モジュールが有効になりました。

ユ-ザ-ディレクトリの CGI ファイルを実行

ユ-ザ-ディレクトリ
/home/yamada/public_html
に置いた CGI ファイルを実行する方法を説明していきます。
/etc/apache2/conf-available/ フォルダ
のなかに cgi-enabled.conf を新規作成します。

yamada@yama:~$ sudo nano /etc/apache2/conf-available/cgi-enabled.conf

# 新規作成
# 拡張子 cgi および py を CGI として扱う
<Directory "/home/yamada/public_html">
  Options +ExecCGI
  AddHandler cgi-script .cgi .py
</Directory>

を作成します。
作成が終わったら
^o
Enter
^x
として保存、nano エディタを終了します。
cgi のほかに py ファイルも扱えるようについでに設定しました。
保存したら a2enconf cgi-enabled とし
yamada@********:~$ sudo a2enconf cgi-enabled
Enabling conf cgi-enabled.
To activate the new configuration, you need to run:
systemctl reload apache2

apache2 を再起動します。
yamada@yama:~$ sudo systemctl restart apache2
または
yamada@yama:~$ sudo systemctl reload apache2
完了したら
$ which perl
として perl がインスト-ルされているディレクトリ- を見つけておきます。
/usr/bin/perl
に perl はインスト-ルされています。
自分の PC Windows OS 側で以下の内容の CGI ファイルを作成します。

#!/usr/bin/perl
# -*- coding: utf-8 -*-
print "Content-type: text/html; charset=UTF-8\n\n";
print "Hello WORLD!!";
print "こんにちは";

作成できたらファイル名は適当に test.cgi とします。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
この test.cgi を自分の PC Windows フォルダ
Linux\Ubuntu-22.04\home\yamada\public_html
に保存してください。

Ubuntu 側でtest.cgi を確認

Ubuntu 側で
yamada@yama:~$ cat public_html/test.cgi
としてファイル内容を確認します。
Windows 側で作成したファイルが Ubuntu 側でも見えました。
次に
/home/yamada/public_html/
のなかにある、test.cgi の パミッションを 実行可能 705 にします。
yamada@yama:~$ chmod 705 public_html/test.cgi
ブラウザの URL 欄に、

http://172.25.186.150/test.cgi
http://172.25.186.150/~yamada/test.cgi
または
http://v-host3.jp/test.cgi

と入力し表示すれば
「Hello WORLD!!こんにちは」
と表示されるはずです。

ユ-ザ-ディレクトリの Python ファイルを実行

次に Python ファイルが実行できるようにします。
Python3 ファイル実行
を参考にします。
WSL2 Ubuntu には Python3 がデフォルトでインスト-ルされています。
どこにあるか探してみましょう。
Ubuntu のターミナルを開き、
yamada@yama:~$ which python3
/usr/bin/python3
と表示されました。
このディレクトリに python3 はインスト-ルされています。
python3 ファイルは基本的には CGI ファイルの一種ですから、
CGI が動く DocumentRoot に置いてあげればブラウザ表示できるはずです。

Python3 ファイル作成

簡単な Python3 ファイル test.py を作成します。
自分の PC Windows で以下の内容の Python ファイルを作成します。


#!/usr/bin/pyton3
# coding: utf-8
import sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding = 'utf-8')
print ("Content-type: text/html; charset=UTF-8\n\n")
print ("Hello WORLD!!")
print ("こんにちは")

作成できたらファイル名は適当に test.py とします。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
この test.py を自分の PC Windows フォルダ
Linux\Ubuntu-22.04\home\yamada\public_html
に保存してください。 でもちょっと待ってください。
import sys, io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding = 'utf-8')
って何?
Python の文字列は自身のエンコードに関する情報を持っていない。
print() などでターミナルに日本語を標準出力するときは別の処置が必要。
と言うことで、おまじないを唱えておきましょう。

Ubuntu 側でtest.py を確認

Ubuntu 側で
yamada@yama:~$ cat public_html/test.py
としてファイル内容を確認します。
Windows 側で作成したファイルが Ubuntu 側でも見えました。
次に
/home/yamada/public_html/
のなかにある、test.py の パミッションを 実行可能 705 にします。
yamada@yama:~$ chmod 705 public_html/test.py
ブラウザの URL 欄に、

http://172.25.186.150/test.py
http://172.25.186.150/~yamada/test.py
または
http://v-host3.jp/test.py

と入力し表示すれば
「Hello WORLD!!こんにちは」
と表示されるはずです。

ここまでで、CGI, Python ファイルが実行できるようになりました。
引き続き Python パッケージをインストールしていきます。


  • WSL2 Ubuntu Python 概要 に進む
  • PHP 環境構築 に戻る
  • 仮想ホスト設定 に戻る
  • Apache2 ユ-ザ公開ディレクトリ に戻る
  • Apache2 環境構築 に戻る
  • 70VPS に戻る