サーバ構築備忘録

Raspberry Pi 3をセットアップ(LAMP環境の構築までの備忘録)

LINEで送る
Pocket

Raspberry Piに求めること

うちにはすでにサーバが1台あります。
必要な機能は基本それ一台で間に合っています。

そこに新たにRaspberry Piを追加したわけですが、果たしてどんな機能を持たせようか考えています。

ファイルサーバやDNSサーバはすでにあるので、新しいCATVインターネット接続に必要な機能だけを持たせようと思います。

既にSSHサーバは設定してあるので、残りはWebサーバだけかなと思います。

せっかくなので、こちらにもLAMP(Linux + Apache + MySQL + PHP)を構築して、Wordpressをインストールしてみます。

既にLinuxは構築済みなので、今日は残りの環境を構築していきます。

Apacheのインストールと設定

インストールは

>sudo apt-get -y install apache2

で完了です。

あとは設定ですが、次のようにしてみます。
  1. データは /data/www 以下に配置する。(ドキュメントルートを/data/www/htmlにする)
  2. ホスト名を www.simple-server.net にする。
  3. OS情報などセキュリティ情報を送らない。
  4. タイムアウトの時間を120秒にする。
  5. index.htmlやindex.phpなどがないディレクトリのファイル一覧を表示しない
1のために
>sudo cp -pR /var/www /data/
>sudo rm -fR /var/www
を実行する。
/etc/apache2/apache2.conf
の164行目の /var/www を /data/www に変更する。
同じく166行目の None を all にする。

>sudo cp /etc/apache2/site-available/000-default.con /etc/apache2/site-available/simple.conf
を実行する。
/etc/apache2/site-available/simple.conf
の11行目の /var/www/html を /data/www/html に変更する。

2のために
/etc/apache2/site-available/simple.conf
の9行目の #ServerName www.example.com のコメントを外し ServerName www.simple-server.net に変更する。

デフォルトの設定を削除しsimple.confの設定を有効にするため
>sudo a2dissite 000-default
>sudo a2ensite simple

3のために
/etc/apache2/conf-available/security.conf
の25行目の ServerTokens OS を ServerTokens Prod に変更する。
同じく36行目の ServerSignature On を ServerSignature Offに変更する。

4のために
/etc/apache2/apache2.conf
の86行目の 300 を 120 に変更する。

5のために
>sudo vi /etc/apache2/apache2.conf

の165行目の
Options Indexes FollowSymLinks

Options -Indexes
に変更する。

ここまで終わったら
>sudo systemctl restart apache2
を実行して、ブラウザでwww.simple-server.netを開いてみる。(Apache2 Ubuntu Default Pageが表示されればOK)。

 

mysqlのインストールと設定

本当はCentOSで使っているMariaDBをインストールしようと思ったのですが、パッケージのインストールがうまくいかず断念しました。
やむを得ずmysqlをインストールします。

インストールは

>sudo apt-get -y install mysql-server

で完了です。

設定を変更するためにいったんmysqlを止めておく。
>sudo systemctl stop mysql

データが保存されるディレクトリを/var/lib/mysqlから/data/mysqlに変更するために
/etc/mysql/mysql.conf.d/mysqld.cnf
の36行目を datadir = /var/lib/mysql から /data/mysql に変更する。

>cp -pR /var/lib/mysql /data/
を実行して作成済みのデータファイルをコピーしておく。
>mv /var/lib/mysql /var/lib/mysql.org
としてオリジナルを取っておく。(データディレクトリが移動できたのが確認できたら削除する。)

/etc/apparmor.d/local/usr.sbin.mysqld

/data/mysql r,
/data/mysql/** rwk,
を追加。

>sudo mysqld --initialize
で/data/mysqlの下にデータを作成する。

※ここで/data/mysqlにデータを利用できるかと思ったのですが、どうしても
>sudo systemctl start mysql
するとエラーになってしまいます。

仕方がないので、
>sudo cd /var/lib/
>sudo ln -s /data/mysql ./
として、
>sudo systemctl start mysql
としてmysqlを動かしました。
大変気持ちが悪い状態なのですが、とりあえず動いているのでこのまま行ってみます。
正しい解決方法があったらその時に直します。(しょせんテスト用のサーバですから(^-^)

あとは文字コードの設定です。
/etc/mysql/mysql.conf.d/mysqld.cnf
の39行目に
character-set-server = utf8
を追加する。

>sudo systemctl stop mysql
>sudo systemctl start mysql

で設定を読み込みます。(なぜか sudo systemctl restart mysql だと起動に失敗します。)

全体的に気持ち悪いところがいっぱいなのですが、このまま続けます。

>sudo mysql_secure_installation
を実行します。
対話形式でMySQLの設定を行います。(入力するのは太字のところだけです。)

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: no
Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : no

... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

※追記
rootのパスワードがデータディレクトリを変更し、新しいデータベースを作成したために変更になっています。
/var/log/mysql/error.log
の中に
[Note] A temporary password is generated for root@localhost: hogehoge
というように記載されています。

>mysql -u root -p
でパスワードを聞かれたら上のhogehogeの部分を入力します。

mysql>SET PASSWORD = PASSWORD('新しいパスワード');
を実行して、自分の好きなパスワードに変更しておきます。

 

PHP7.0のインストールと設定

インストールは

>sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-gettext

で完了です。

設定は

/etc/php/7.0/apache2/php.ini
の1584行目の;を外してアンコメントする。
同じく1591行目の;を外してアンコメントし、行末にUTF-8を追加する。

とりあえずこのくらいです。足りないもの(誤動作するもの)があったらまた考えます。

>sudo mv /data/www/html/index.html /data/www/html/index.html.orig
とした後で
>sudo vi /data/www/html/index.php


<?php
phpinfo();
?>

という内容のファイルを作ってブラウザからhttp://www.simple-server/を開いてみます。PHPに関する情報が表示されればOK。
index.phpはセキュリティの問題から削除しておきます。

 

phpMyAdmin

MySQLをWebブラウザで管理できるphpMyAdmin。

無くてもいいのですが、これをインストールするとMySQLとPHPの連携を行ってくれるのでインストールしておきます。

インストールは

>sudo apt-get install phpmyadmin
途中でhttpサーバは何を使うか切れれるのでapache2を選択して了解。
「phpmyadminを設定しています」の画面ではいいえを選択。

で完了です。

設定は
/etc/phpmyadmin/config.inc.php

78行目の $dbuser を 'root'
79行目の $dbpass を 'MySQLのrootのパスワード'
に変更する。

>systemctrl restart apache2
する。

ブラウザでhttp://www.simple-server.net/phpmyadminを開いてみる。
ユーザ名とパスワードに上記のrootとそのパスワードを入力する。

phpMyAdminの画面が開くが、下の方に「phpMyAdmin 環境保管領域が完全に設定されていないため、いくつかの拡張機能が無効になっています」というメッセージが表示される。
phpMyAdmin用のデータベースを作成するため、上の方の「インポート」タブを開く。
「ファイルを選択」ボタンをクリック。
/usr/share/phpmyadmin/sql/create_tables.sql
を選択して、「実行」をクリックする。

画面左上のログアウトのアイコンをクリックし、再度rootでログインすると先ほどのメッセージが消えている。
(画面左のツリーにphpmyadminが増えている。)

 

以上でLAMP環境の構築は完了です。
あとはWordpressのインストールです。

LINEで送る
Pocket

ランキングリンク

ランキングに参加しています。応援クリックお願いします。
にほんブログ村 その他生活ブログ 断捨離へ

-サーバ構築備忘録
-,