Up インストール 作成: 2021-02-11
更新: 2021-02-11


  1. インストール
    • パッケージの更新
        $ sudo apt update
        $ sudo apt upgrade

    • apache のインストール
        $ sudo apt install apache2

    • PHP のインストール
        $ sudo apt install php
          cURL は使用しないので「php-curl」オプションは付けない
        バージョンの確認
        $ php --version
          PHP 7.3.19-1~deb10u1 (cli) (built: Jul 5 2020 06:46:45) ( NTS )
          ‥‥

    • 上の2つのインストールで,Apache + PHP が自動的につくられている:
        $ ls -la /etc/php/7.3/apache2/
        drwxr-xr-x 2 root root 4096 Feb 11 13:16 conf.d -rw-r--r-- 1 root root 71958 Jul 5 2020 php.ini

  2. apache の設定
    • apache の設定ファイル:
        $ ls -la /etc/apache2 -rw-r--r-- 1 root root 7224 Aug 26 05:08 apache2.conf drwxr-xr-x 2 root root 4096 Feb 11 13:14 conf-available drwxr-xr-x 2 root root 4096 Feb 11 13:14 conf-enabled -rw-r--r-- 1 root root 1782 Aug 8 2020 envvars -rw-r--r-- 1 root root 31063 Aug 8 2020 magic drwxr-xr-x 2 root root 12288 Feb 11 13:16 mods-available drwxr-xr-x 2 root root 4096 Feb 11 13:16 mods-enabled -rw-r--r-- 1 root root 320 Aug 8 2020 ports.conf drwxr-xr-x 2 root root 4096 Feb 11 13:14 sites-available drwxr-xr-x 2 root root 4096 Feb 11 13:14 sites-enabled

    • ポート番号 : 80
      $ cat /etc/apache2/ports.conf | grep Listen


    • ドキュメントルートの変更
      デフォルトは /var/www/html
      $ ls -la /var/www/html -rw-r--r-- 1 root root 10701 Feb 11 13:14 index.html これを,/home/pi/apache/www に変更する
      $ mkdir /home/pi/apache
      $ mkdir /home/pi/apache/www
      $ sudo vi /etc/apache2/sites-available/000-default.conf
        #DocumentRoot /var/www/html
        DocumentRoot /home/pi/apache/www


    • permission to access
      $ sudo vi /etc/apache2/apache2.conf
      ドキュメントルートの変更に合わせて,つぎの設定をする: #<Directory /var/www/> <Directory /home/pi/apache/> Options Indexes FollowSymLinks ExecCGI AllowOverride None Require all granted </Directory> この設定をしないと,つぎのようにアクセスが拒否される:
        Forbidden
        You don't have permission to access this resource.

    • ログを置くディレクトリ : /var/log/apache2
        $ ls -la /var/log/apache2 -rw-r----- 1 root adm 0 Feb 11 13:14 access.log -rw-r----- 1 root adm 980 Feb 11 13:17 error.log -rw-r----- 1 root adm 0 Feb 11 13:14 other_vhosts_access.log

    • index ファイルの設定
        $ sudo vi /etc/apache2/mods-enabled/dir.conf
        DirectoryIndex を編集 #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm DirectoryIndex index_j.phtml index.phtml index_j.html index.html

    • 「.phtml」の MIME設定
        $ sudo vi /etc/apache2/mods-enabled/mime.conf
        つぎを追加: AddType application/x-httpd-php .phtml .php

  3. PHP の設定── /etc/php/7.3/apache2/php.ini
      $ cd /etc/php/7.3/apache2 $ ls -la drwxr-xr-x 2 root root 4096 Feb 11 13:16 conf.d -rw-r--r-- 1 root root 71958 Jul 5 2020 php.ini $ ls -la conf.d lrwxrwxrwx 1 root root 39 Feb 11 13:16 10-opcache.ini -> /etc/php/7.3/mods-available/opcache.ini lrwxrwxrwx 1 root root 35 Feb 11 13:16 10-pdo.ini -> /etc/php/7.3/mods-available/pdo.ini lrwxrwxrwx 1 root root 40 Feb 11 13:16 20-calendar.ini -> /etc/php/7.3/mods-available/calendar.ini lrwxrwxrwx 1 root root 37 Feb 11 13:16 20-ctype.ini -> /etc/php/7.3/mods-available/ctype.ini lrwxrwxrwx 1 root root 36 Feb 11 13:16 20-exif.ini -> /etc/php/7.3/mods-available/exif.ini lrwxrwxrwx 1 root root 40 Feb 11 13:16 20-fileinfo.ini -> /etc/php/7.3/mods-available/fileinfo.ini lrwxrwxrwx 1 root root 35 Feb 11 13:16 20-ftp.ini -> /etc/php/7.3/mods-available/ftp.ini lrwxrwxrwx 1 root root 39 Feb 11 13:16 20-gettext.ini -> /etc/php/7.3/mods-available/gettext.ini lrwxrwxrwx 1 root root 37 Feb 11 13:16 20-iconv.ini -> /etc/php/7.3/mods-available/iconv.ini lrwxrwxrwx 1 root root 36 Feb 11 13:16 20-json.ini -> /etc/php/7.3/mods-available/json.ini lrwxrwxrwx 1 root root 36 Feb 11 13:16 20-phar.ini -> /etc/php/7.3/mods-available/phar.ini lrwxrwxrwx 1 root root 37 Feb 11 13:16 20-posix.ini -> /etc/php/7.3/mods-available/posix.ini lrwxrwxrwx 1 root root 40 Feb 11 13:16 20-readline.ini -> /etc/php/7.3/mods-available/readline.ini lrwxrwxrwx 1 root root 37 Feb 11 13:16 20-shmop.ini -> /etc/php/7.3/mods-available/shmop.ini lrwxrwxrwx 1 root root 39 Feb 11 13:16 20-sockets.ini -> /etc/php/7.3/mods-available/sockets.ini lrwxrwxrwx 1 root root 39 Feb 11 13:16 20-sysvmsg.ini -> /etc/php/7.3/mods-available/sysvmsg.ini lrwxrwxrwx 1 root root 39 Feb 11 13:16 20-sysvsem.ini -> /etc/php/7.3/mods-available/sysvsem.ini lrwxrwxrwx 1 root root 39 Feb 11 13:16 20-sysvshm.ini -> /etc/php/7.3/mods-available/sysvshm.ini lrwxrwxrwx 1 root root 41 Feb 11 13:16 20-tokenizer.ini -> /etc/php/7.3/mods-available/tokenizer.ini $ sudo cp php.ini php.ini.org $ sudo vi php.ini short_open_tag = On ( <?php の短縮形 <? を許す) ;output_buffering = 4096 output_buffering = On ;output_handler = output_handler = mb_output_handler ;max_execution_time = 30 ; Maximum execution time of each script, in seconds max_execution_time = 120 ;register_argc_argv = Off register_argc_argv = On ; PHP's built-in default is text/html default_mimetype = "text/html" default_charset = "UTF-8" ;mbstring.language = Japanese mbstring.language = Japanese ;mbstring.internal_encoding = UTF-8 mbstring.internal_encoding = UTF-8 ;mbstring.substitute_character = none; mbstring.substitute_character = none;

  4. /var/www が root 権限になっているので,pi に変更
      $ cd /var
      $ sudo chown -R pi www

  5. テスト
    1. 起動
        $ sudo service apache2 start
        $ ps -ef | grep apache root 8216 1 0 13:17 ? 00:00:00 /usr/sbin/apache2 -k start www-data 8218 8216 0 13:17 ? 00:00:00 /usr/sbin/apache2 -k start www-data 8219 8216 0 13:17 ? 00:00:00 /usr/sbin/apache2 -k start www-data 8220 8216 0 13:17 ? 00:00:00 /usr/sbin/apache2 -k start www-data 8221 8216 0 13:17 ? 00:00:00 /usr/sbin/apache2 -k start www-data 8222 8216 0 13:17 ? 00:00:00 /usr/sbin/apache2 -k start

    2. /home/pi/apache/www/index.phtml を作成:
        $ vi /home/pi/apache/www/index.phtml
           <?
                  print "Hello ハロー";
           ?>
      PC のブラウザからアクセス
        http://192.168.1.150

    3. 停止
        $ sudo service apache2 stop