📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の5版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
Apache HTTP Serverプロジェクトは、UNIXやWindowsを含むOS向けのオープンソースHTTPサーバを開発および保守する取り組みである。<br> | |||
このプロジェクトの目標は、現在のHTTP標準に同期したHTTPサービスを提供する、安全で効率的かつ拡張可能なサーバを提供することである。<br> | |||
<br> | |||
Apache HTTPサーバ (httpd) は1995年に開始され、1996年4月以来、インターネット上で人気のあるWebサーバとなっている。<br> | |||
2020年2月にプロジェクトとして25回目の誕生日を迎えた。<br> | |||
<br> | |||
Apache HTTP Serverは、Apache Software Foundationのプロジェクトである。<br> | |||
<br> | |||
その他、Raspberry Piでは、WebサーバとPHP等で作成したWebページを介して、GPIOを制御することも可能である。<br> | |||
<br><br> | <br><br> | ||
| 205行目: | 212行目: | ||
<br><br> | <br><br> | ||
== | == CGIの設定 == | ||
まず、Apache2の設定ファイルにおいて、以下に示す赤字の設定を追記する。<br> | |||
# "/srv/www/cgi-bin" should be changed to whatever your ScriptAliased | |||
# CGI directory exists, if you have that configured. | |||
# | |||
<Directory "/srv/www/cgi-bin"> | |||
AllowOverride None | |||
Options +ExecCGI -Includes | |||
<span style="color:#C00000">AddHandler cgi-script .cgi .pl</span> | |||
<IfModule !mod_access_compat.c> | |||
Require all granted | |||
</IfModule> | |||
<IfModule mod_access_compat.c> | |||
Order allow,deny | |||
Allow from all | |||
</IfModule> | |||
</Directory> | |||
<br> | |||
上記の設定を反映させるため、Apache2を再起動する。<br> | |||
sudo systemctl restart apache2 | |||
<br> | |||
次に、test1.cgiファイルを作成して表示する。<br> | |||
test1.cgiファイルの内容は、以下の通りである。<br> | |||
以下の例では、CGIファイルのディレクトリのパスは、/usr/lib/cgi-bin/である。<br> | |||
sudo vi /usr/lib/cgi-bin/test1.cgi | |||
<br> | <br> | ||
<syntaxhighlight lang="bash"> | |||
# /usr/lib/cgi-bin/test1.cgiファイル | |||
#!/usr/bin/env bash | |||
echo "Content-Type: text/html" | |||
echo "" | |||
echo "<!doctype html>" | |||
echo "<html><head><title>Test CGI</title></head>" | |||
echo "<body>" | |||
echo "CGI Shell Web Site" | |||
echo "</body>" | |||
echo "</html>" | |||
</syntaxhighlight> | |||
<br> | <br> | ||
<syntaxhighlight lang=" | また、cgiファイルにはPython等も使用できる。<br> | ||
# / | 以下の例では、CGIスクリプトにPython3を使用している。<br> | ||
<syntaxhighlight lang="python"> | |||
# /usr/lib/cgi-bin/test2.cgi | |||
#!/usr/bin/env python3 | |||
< | print("Content-type: text/html\n") | ||
print("<html><head><title>Test CGI</title></head>\n<body>") | |||
print("<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">") | |||
print("CGI Python3 Web Site") | |||
print("</div>") | |||
print("</body>\n</html>") | |||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
また、一般ユーザでも実行できるようにするため、以下のコマンドを実行する。<br> | |||
sudo chmod 755 /srv/www/cgi-bin/test1.cgi | |||
sudo chmod 755 /srv/www/cgi-bin/test2.cgi | |||
<br> | |||
test1.cgiファイルおよびtest2.cgiファイルを実行するため、<br> | |||
Webブラウザにそれぞれ http://localhost/cgi-bin/test1.cgi および http://localhost/cgi-bin/test2.cgi と入力する。<br> | |||
Webブラウザに"CGI Shell Web Site"および"CGI Python3 Web Site"と表示されることを確認する。<br> | |||
<br><br> | <br><br> | ||
| 247行目: | 300行目: | ||
ls /etc/rc2.d/ | ls /etc/rc2.d/ | ||
<br><br> | <br><br> | ||
== PHPのインストール == | |||
次に、PHPをインストールする。<br> | |||
PHPのインストール手順は、[[インストール - PHP|インストール - PHP]]を参照する。<br> | |||
<br> | |||
PHPが正常に動作するかどうかを確認するため、/var/www/htmlディレクトリに対して、以下に示すPHPファイルを作成する。<br> | |||
sudo vi /var/www/html/index.php | |||
<br> | |||
<syntaxhighlight lang="php"> | |||
# /var/www/html/index.phpファイル | |||
<?php | |||
phpinfo(); | |||
?> | |||
</syntaxhighlight> | |||
<br> | |||
Webブラウザで http://localhost/index.php と入力する。<br> | |||
PHPの情報の一覧が表示されている場合は、PHPが正常に動作している。<br> | |||
<br><br> | |||
== PHP-FPMを使用する場合 == | |||
PHP-FPMを使用する場合、PHP-FPMが動作するユーザ名およびグループ名 (www.confファイルにある<code>user</code>および<code>group</code>) と同名にする必要がある。 (<code>nobody</code>でもよい)<br> | |||
この設定を行わない場合、リクエストが来てもテキストファイルのように.phpファイルの内容を返してしまう。<br> | |||
<br> | |||
Apache2の設定ファイル (httpd.confファイル) において、<code>User</code>および<code>Group</code>を設定する。<br> | |||
sudo vi /<Apache2のインストールディレクトリ>/conf/httpd.conf | |||
<br> | |||
<syntaxhighlight lang="apache"> | |||
# /<Apache2のインストールディレクトリ>/conf/httpd.confファイル | |||
User <PHP-FPMが動作する同一のユーザ名またはnobody> | |||
Group <PHP-FPMが動作する同一のグループ名またはnobody> | |||
</syntaxhighlight> | |||
<br><br> | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Raspberry_Pi]] | [[カテゴリ:Raspberry_Pi]][[カテゴリ:Web]] | ||