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 パッケージをインストールしていきます。