2019年12月30日月曜日

raspberry pi : WEBサーバ (apache, wordpress 他) の インストール

目的:

WEBサーバを立てる。
当面、宅内のローカルWEBサーバとする。

手順:

WEBサーバ として、apache, PHP, mySQL, workpress をインストールする。
  1. apache のインストール
    • apache2 のインストール
      $ sudo apt install apache2
      別PC から http://[ラズベリーパイのIPアドレス] で、
      Apache2 Debian Default Page
      It works!
      とかの表示がでれば、OK
    •  apache2 のグループを自IDに追加
        自分のグループに www-data を追加しておく。
      $ sudo gpasswd -a [自ユーザ名] www-data
    • エラー発生時のバージョン情報等を表示させなくする
      エラー発生時等に、apacheバージョン,サーバー名等を表示させない様にしておく。
      $ sudo vi /etc/apache2/conf-available/security.conf
      を以下の通り編集する。
      (全サイトにて起用する場合。個別サイトでの対応時は、別ファイル)
      ServerSignature Off    <=== コメントアウトを外す
      #ServerSignature On    <=== コメントアウトする
      

  2. webサーバーのルート、設定ファイル等
    • 設定ファイルの所在
      apach2 全体の 設定ファイルは、
      /etc/apache2/apache2.conf
      サイトの設定ファイルは、
      /etc/apache2/sites-available
      にある。ここには、複数の .conf があるが、
      /etc/apache2/sites-enabled
      にリンクされたファイルが有効なファイル。
      初期状態では、000-default.conf が リンクされている。
    • /etc/apache2/sites-enabled への リンク/リンク解除のコマンド
      リンク/リンク解除のコマンドは、
      $ sudo a2ensite     //リンクを張る
      $ sudo a2dissite    //リンク解除
       
    • ドキュメントルート
      sites-enabled に リンクされた .conf に webサーバーのルート(ドキュメントルート)が設定されている。
      例えば、
      DocumentRoot /var/www/html
      が、webサーバーのルート。

      http://[ラズベリーパイのIPアドレス] で表示されるのは、
      /var/www/html/index.html
      の内容。初期状態では、”Apache2 Debian Default Page” が表示される。
      必要に応じて、index.html を書き換える。
       
  3. PHP7.3 インストール
    $ sudo apt install php7.3
     
  4. PHP7.3-mysql インストール
    $ sudo apt install php7.3-mysql
     
  5. MariaDB インストール
    $ sudo apt install mariadb-server
     
  6. MariaDB 初期設定
    $ sudo systemctl start mariadb.service
    $ sudo /usr/bin/mysql_secure_installation

    Enter current password for root (enter for none):
     のメッセージは、初期状態では未設定の為 Enter (空打ち)。

    Set root password? [Y/n]
     は Y で、root のパスワードを入力する。

    その他の入力は Y を入力。
     
  7. phpmyadmin インストール
    $ sudo apt install phpmyadmin

    自動再設定をする web サーバ:
     apache2 を選択

    phpmyadmin 用のデータベースを dbconfig-common で設定しますか?
     はい を選択

    phpmyadmin 用の MySQL アプリケーションパスワード:
     MariaDB に設定したパスワードと同じパスワードを設定
     
    apacheに設定を読ませる為、/etc/apache2/apache2.conf を修正
    $ sudo vi /etc/apache2/apache2.conf
    最下行に次の記述を追加。
    Include /etc/phpmyadmin/apache.conf
     
    
  8. MariaDB に ユーザを登録
    phpmyadmin でアクセスする場合、root で ログイン しようとすると、
    #1698 - Access denied for user 'root'@'localhost'
    となる。この為、新しいユーザを登録する。(参考)
    $ sudo mysql -u root
     で MariaDBに接続。
    CREATE USER 'hoge'@'localhost' IDENTIFIED BY 'hogepasswd';
     で ユーザを追加。
    GRANT ALL ON *.* TO 'hoge'@'localhost' WITH GRANT OPTION;
     で 管理者用権限 を 付与する。
    \q で MariaDB から抜ける。
     
  9. 起動確認
    apache2 を再起動する。
    $ sudo /etc/init.d/apache2 restart
    再起動後、 http://[ラズベリーパイの IPアドレス]/phpmyadmin/ にアクセスし、
    ログイン画面が表示されることを確認する。
    追加した ユーザで ログインができることを確認する。
    画面左上のアイコンの 左から2番目のアイコン(ログアウト) を押下して抜ける。
     
  10. phpMyAdmin セキュリティ対策
    将来サーバーを公開した場合等、phpMyAdmin が攻撃対象となる可能性がある為、
    対策が必要。対策として、以下を実施。
    1. エイリアスの変更。
      /etc/phpmyadmin/apache.conf
      の 3行目のエイリアス設定を変更し、phpmyadmin とは異なる名称にする。
      $ sudo vi /etc/phpmyadmin/apache.conf
      (変更前)  Alias /phpmyadmin /usr/share/phpmyadmin
      (変更後)  Alias /[新しい名前]    /usr/share/phpmyadmin
      変更後、apache2 を再起動する。
      $ sudo /etc/init.d/apache2 restart

      今後、phpmyadmin にアクセスする場合は、
       http://[ラズベリーパイの IPアドレス]/[Ailias に設定した名前]/
      で行う。
       
    2. ローカルLAN内からのアクセスに限定する。
      自宅内からのアクセスに限定できる場合は、以下の設定を行い、特定のIPからのアクセスからしか受け付けないようにする。
      $ sudo vi /etc/phpmyadmin/apache.conf
      /etc/phpmyadmin/apache.conf の 8行目あたり ( <Directory /usr/share/phpmyadmin> セクション ) に、以下を追加する。
      Order Deny,Allow
      Deny from All
      Allow from 192.168.1.
      
       
  11. wordpress インストール
    1. wordpress 用データベース設定
      phpMyAdmin にログインして、データベースを設定
      データベースタブから、”データベースを作成する” で作成。
      例えば、データベース名 に wordpress を入力して "作成" を押下。
       (まだ、テーブルは無い)
      特権タブ を選択し、"wordpress" からのアクセス用ユーザーを追加する。
      "Add user account" を押下し、
      ユーザー名、パスワードを入力し、
      ”パスワードを生成する" で "生成する" を押下して生成されたパスワードを控え、
      実行を押下。
    2. wordpress をダウンロード
      /var/www/html で、パッケージを取得し、解凍する。
      $ cd /var/www/html
      $ sudo wget http://wordpress.org/latest.tar.gz
      $ sudo tar xzf latest.tar.gz
      $ sudo rm -rf latest.tar.gz
      $ sudo chown -R www-data:www-data /var/www/html/wordpress

      最後にリブートする。
      $ sudo reboot  
       
  12. wordpress 設定
    http://[ラズベリーパイの IPアドレス]/wordpress/
    にアクセスすると設定画面となる。
    日本語を選択して "続ける"
    "さあ、始めましょう!" を押下。
    データベース名、ユーザ名、パスワードに 上(11) で設定した値を入力。
    その他は初期状態のまま、"送信"
    "インストール実行" を押下。
    サイトのタイトル、ユーザ名、パスワード、メールアドレス を入力し、"wordpressをインストール"を押下。
    "ログイン" を押下し、設定したユーザ名、パスワードを入力すると、"ダッシュボード" が表示される。
    以上の設定は、
    /var/www/html/wordpress/wp-config.php
    で 修正できる。
     
    尚、この後は
    http://[ラズベリーパイの IPアドレス]/wordpress
    にアクセスすると サイトが表示される。
    管理画面は、
    http://[ラズベリーパイの IPアドレス]/wordpress/wp-login.php
    で ログイン できる。
     

0 件のコメント:

コメントを投稿