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


  1. apache2, php が OS にインストールされていないことの確認
      $ dpkg -l | grep apache $ dpkg -l | grep php

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

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

    • PHP のインストール
        $ sudo apt install php
          cURL は使用しないので「php-curl」オプションは付けない
      バージョンの確認
        $ php --version
        PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

    • 上の2つのインストールで,Apache + PHP が自動的につくられている:
        $ ls -la /etc/php/7.4/apache2/
        drwxr-xr-x 2 root root 4096 Feb 25 17:54 conf.d -rw-r--r-- 1 root root 72941 Oct 7 00:47 php.ini

  3. apache の設定
    • apache の設定ファイル:
        $ ls -la /etc/apache2 -rw-r--r-- 1 root root 7224 Aug 13 2020 apache2.conf drwxr-xr-x 2 root root 4096 Feb 25 17:52 conf-available drwxr-xr-x 2 root root 4096 Feb 25 17:52 conf-enabled -rw-r--r-- 1 root root 1782 Apr 14 2020 envvars -rw-r--r-- 1 root root 31063 Apr 14 2020 magic drwxr-xr-x 2 root root 12288 Feb 25 17:54 mods-available drwxr-xr-x 2 root root 4096 Feb 25 17:54 mods-enabled -rw-r--r-- 1 root root 320 Apr 14 2020 ports.conf drwxr-xr-x 2 root root 4096 Feb 25 18:03 sites-available drwxr-xr-x 2 root root 4096 Feb 25 17:52 sites-enabled

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


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


    • permission to access
      $ sudo vi /etc/apache2/apache2.conf
      ドキュメントルートの変更に合わせて,つぎの設定をする: #<Directory /var/www/> <Directory /home/ubuntu/apache/> Options Indexes FollowSymLinks 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 25 17:52 access.log -rw-r----- 1 root adm 997 Feb 25 17:54 error.log -rw-r----- 1 root adm 0 Feb 25 17:52 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

  4. PHP の設定── /etc/php/7.4/apache2/php.ini
      $ cd /etc/php/7.4/apache2 $ ls -la drwxr-xr-x 2 root root 4096 Feb 25 17:54 conf.d -rw-r--r-- 1 root root 72941 Oct 7 00:47 php.ini $ ls -la conf.d lrwxrwxrwx 1 root root 39 Feb 25 17:54 10-opcache.ini -> /etc/php/7.4/mods-available/opcache.ini lrwxrwxrwx 1 root root 35 Feb 25 17:54 10-pdo.ini -> /etc/php/7.4/mods-available/pdo.ini lrwxrwxrwx 1 root root 40 Feb 25 17:53 20-calendar.ini -> /etc/php/7.4/mods-available/calendar.ini lrwxrwxrwx 1 root root 37 Feb 25 17:53 20-ctype.ini -> /etc/php/7.4/mods-available/ctype.ini lrwxrwxrwx 1 root root 36 Feb 25 17:53 20-exif.ini -> /etc/php/7.4/mods-available/exif.ini lrwxrwxrwx 1 root root 35 Feb 25 17:54 20-ffi.ini -> /etc/php/7.4/mods-available/ffi.ini lrwxrwxrwx 1 root root 40 Feb 25 17:54 20-fileinfo.ini -> /etc/php/7.4/mods-available/fileinfo.ini lrwxrwxrwx 1 root root 35 Feb 25 17:54 20-ftp.ini -> /etc/php/7.4/mods-available/ftp.ini lrwxrwxrwx 1 root root 39 Feb 25 17:54 20-gettext.ini -> /etc/php/7.4/mods-available/gettext.ini lrwxrwxrwx 1 root root 37 Feb 25 17:54 20-iconv.ini -> /etc/php/7.4/mods-available/iconv.ini lrwxrwxrwx 1 root root 36 Feb 25 17:54 20-json.ini -> /etc/php/7.4/mods-available/json.ini lrwxrwxrwx 1 root root 36 Feb 25 17:54 20-phar.ini -> /etc/php/7.4/mods-available/phar.ini lrwxrwxrwx 1 root root 37 Feb 25 17:54 20-posix.ini -> /etc/php/7.4/mods-available/posix.ini lrwxrwxrwx 1 root root 40 Feb 25 17:54 20-readline.ini -> /etc/php/7.4/mods-available/readline.ini lrwxrwxrwx 1 root root 37 Feb 25 17:54 20-shmop.ini -> /etc/php/7.4/mods-available/shmop.ini lrwxrwxrwx 1 root root 39 Feb 25 17:54 20-sockets.ini -> /etc/php/7.4/mods-available/sockets.ini lrwxrwxrwx 1 root root 39 Feb 25 17:54 20-sysvmsg.ini -> /etc/php/7.4/mods-available/sysvmsg.ini lrwxrwxrwx 1 root root 39 Feb 25 17:54 20-sysvsem.ini -> /etc/php/7.4/mods-available/sysvsem.ini lrwxrwxrwx 1 root root 39 Feb 25 17:54 20-sysvshm.ini -> /etc/php/7.4/mods-available/sysvshm.ini lrwxrwxrwx 1 root root 41 Feb 25 17:54 20-tokenizer.ini -> /etc/php/7.4/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 ;mbstring.language = Japanese mbstring.language = Japanese ;mbstring.internal_encoding = mbstring.internal_encoding = UTF-8 ;mbstring.substitute_character = none; mbstring.substitute_character = none;

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

  6. テスト
    1. 起動
        $ sudo service apache2 start
        $ ps -ef | grep apache root 37550 1 0 17:54 ? 00:00:00 /usr/sbin/apache2 -k start www-data 37554 37550 0 17:54 ? 00:00:00 /usr/sbin/apache2 -k start www-data 37555 37550 0 17:54 ? 00:00:00 /usr/sbin/apache2 -k start www-data 37556 37550 0 17:54 ? 00:00:00 /usr/sbin/apache2 -k start www-data 37557 37550 0 17:54 ? 00:00:00 /usr/sbin/apache2 -k start www-data 37558 37550 0 17:54 ? 00:00:00 /usr/sbin/apache2 -k start

    2. /home/ubuntu/apache/www/index.phtml を作成:
        $ vi /home/ubuntu/apache/www/index.phtml
           <?
                  print "Hello ハロー";
           ?>

      PC のブラウザからアクセス
        http://192.168.1.150

    3. 停止
        $ sudo service apache2 stop