「インストール - Apache2(Raspberry Pi)」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の5版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
Raspberry Pi 3でWebサーバを構築する。<br>
Apache HTTP Serverプロジェクトは、UNIXやWindowsを含むOS向けのオープンソースHTTPサーバを開発および保守する取り組みである。<br>
Webサーバを構築して、PHP等で作成したWebページを介してGPIOを制御するところまで記載する。<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>


== PHPのインストール ==
== CGIの設定 ==
次に、PHPをインストールする。<br>
まず、Apache2の設定ファイルにおいて、以下に示す赤字の設定を追記する。<br>
PHPのインストール手順は、[[インストール - PHP|インストール - PHP]]を参照する。<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>
PHPが正常に動作するかどうかを確認するため、/var/www/htmlディレクトリに対して、以下に示すPHPファイルを作成する。<br>
<syntaxhighlight lang="bash">
  sudo vi /var/www/html/index.php
# /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="php">
また、cgiファイルにはPython等も使用できる。<br>
  # /var/www/html/index.phpファイル
以下の例では、CGIスクリプトにPython3を使用している。<br>
  <syntaxhighlight lang="python">
  # /usr/lib/cgi-bin/test2.cgi
#!/usr/bin/env python3
   
   
  <?php
  print("Content-type: text/html\n")
  phpinfo();
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>
Webブラウザで http://localhost と入力する。<br>
また、一般ユーザでも実行できるようにするため、以下のコマンドを実行する。<br>
PHPの情報の一覧が表示されている場合は、PHPが正常に動作している。<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]]