Raspberry Pi Webサーバーの構築
最新版 nginx + PHP + MariaDB に
Webサーバーをバージョンアップ
最新版 nginx + PHP + MariaDB に
Webサーバーをバージョンアップ
Nginx の公式サイトでの、最新版(Stable version)は、
Stable version nginx-1.16.0
Raspbian Stretch の、デフォルトパッケージリポジトリを使用してインストールできる Nginx と PHP のバージョンは、
nginx の候補 1.10.3
PHP の候補 7.0
MariaDB の候補 10.1.38
PHP の候補 7.0
MariaDB の候補 10.1.38
以下、Nginx PHP の最新版をインストールして、 MariaDB で、Webサーバーのバージョンアップを行った記録。
スポンサー リンク
現行バージョン。
Raspbian : Stretch
Nginx : 1.6.2
PHP : 5.6.38
Mysql : 14.14
Nginx : 1.6.2
PHP : 5.6.38
Mysql : 14.14
最新バージョン。
Raspbian : Stretch Release date:2019-04-08
Nginx : Stable version 1.16.0
PHP : 7.3.6 - 2019.05.31
MariaDB : 10.1.38
Nginx : Stable version 1.16.0
PHP : 7.3.6 - 2019.05.31
MariaDB : 10.1.38
目 次
1. nginx のバージョン確認
2. nginx のインストール
3. PHP のインストール
4. nginx で PHP を利用できるように設定
5. サイトのルートディレクトリの作成
6. PHPの動作確認
7. MariaDB のインストール
8. WordPress用のデータベースを作成
2. nginx のインストール
3. PHP のインストール
4. nginx で PHP を利用できるように設定
5. サイトのルートディレクトリの作成
6. PHPの動作確認
7. MariaDB のインストール
8. WordPress用のデータベースを作成
スポンサー リンク
1. インストールできる nginx のバージョン確認
Raspbian stretch の、デフォルトパッケージリポジトリを使用してインストールできる、nginx のバージョンを確認する方法。
sudo apt-get update
sudo apt-cache policy nginx
sudo apt-cache policy nginx
Nginx の公式サイトで、最新版(Stable version)を確認する。
2. nginx のインストール
nginx ソースの公式リポジトリを追加した後、パッケージ・リストの更新を行ってから、debian用の stableの最新版nginx をインストールする。
1. nginx公式リポジトリの鍵を登録。
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
sudo apt-key add nginx_signing.key
2. nginx公式のリポジトリを登録。
sudo nano /etc/apt/sources.list
下記を追記。(注意:赤字は Raspbian のバージョン)
deb http://nginx.org/packages/debian/ stretch nginx
deb-src http://nginx.org/packages/debian/ stretch nginx
deb http://nginx.org/packages/debian/ stretch nginx
deb-src http://nginx.org/packages/debian/ stretch nginx
3. arm用のパッケージが配布されていないので、ソースからビルドしてパッケージを作る。
sudo apt-get update
sudo apt-get build-dep nginx
sudo apt-get source nginx
cd nginx-1.16.0 # バージョンに応じて
sudo dpkg-buildpackage -uc -b
cd
sudo dpkg -i nginx_1.16.0-1~stretch_armhf.deb
sudo apt-get build-dep nginx
sudo apt-get source nginx
cd nginx-1.16.0 # バージョンに応じて
sudo dpkg-buildpackage -uc -b
cd
sudo dpkg -i nginx_1.16.0-1~stretch_armhf.deb
nginx のバージョン確認。
nginx -v
nginx version: nginx/1.16.0
nginx version: nginx/1.16.0
nginxの起動と確認。
sudo systemctl restart nginx
sudo systemctl status nginx
sudo systemctl status nginx
3. PHP のインストール
Raspbian Stretch の、デフォルトパッケージリポジトリでは【PHP の候補 7.0】なので、開発元よりインストール。
su で root にして実行
# apt -y install apt-transport-https lsb-release ca-certificates
# curl -ssL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
# sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
# apt update
最小限 php7.3-fpm と php7.3-dev だけでよいか迷ったが、WordPressを移行するためのツールも考慮して、ほとんどをインストールした。
sudo apt-get install php7.3 php7.3-fpm php7.3-mysql php7.3-mbstring php7.3-xml php7.3-gd php7.3-curl
PHP のバージョン確認。
php -v
4. nginx で PHP を利用できるように設定
/etc/nginx/conf.d/default.conf を rename しバックアップ。
cd /etc/nginx/conf.d/
sudo cp default.conf default.conf.org
sudo cp default.conf default.conf.org
/etc/nginx/conf.d/default.conf の編集。
cd
sudo nano /etc/nginx/conf.d/default.conf
sudo nano /etc/nginx/conf.d/default.conf
/home/yaopi/arakan60 を root にした例。
## root の変更、index.php の追加 ##
location / {
root /home/yaopi/arakan60;
index index.html index.htm index.php;
}
## root と fastcgi_param の部分にルートディレクトリを設定 ##
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/yaopi/arakan60$fastcgi_script_name;
include fastcgi_params;
}
php-fpm.conf の編集。
sudo nano /etc/php/7.3/fpm/php-fpm.conf
# コメントを外して有効化
;daemonize = yes
↓
daemonize = yes
;daemonize = yes
↓
daemonize = yes
pool.d/www.conf の編集。
sudo nano /etc/php/7.3/fpm/pool.d/www.conf
# userをnginxに変更
user = www-data
↓
user = nginx
user = www-data
↓
user = nginx
# groupをnginxに変更
group = www-data
↓
group = nginx
group = www-data
↓
group = nginx
# パスを修正
listen = /run/php/php7.3-fpm.sock
↓
listen = /var/run/php/php7.3-fpm.sock
listen = /run/php/php7.3-fpm.sock
↓
listen = /var/run/php/php7.3-fpm.sock
# listen.ownerをnginxに変更
listen.owner = www-data
↓
listen.owner = nginx
listen.owner = www-data
↓
listen.owner = nginx
# listen.groupをnginxに変更
listen.group = www-data
↓
listen.group = nginx
listen.group = www-data
↓
listen.group = nginx
# listen.modeのコメントを外して、一部変更
;listen.mode = 0660
↓
listen.mode = 0666
340行目:request_terminate_timeout = 600
;listen.mode = 0660
↓
listen.mode = 0666
340行目:request_terminate_timeout = 600
etc/php/7.3/fpm/php.ini の編集。(各種サイズの編集が必要)
sudo nano /etc/php/7.3/fpm/php.ini
0385行目:max_execution_time = 600
0406行目:memory_limit = 512M
0693行目:post_max_size = 512M
0712行目:default_charset = "UTF-8"
0797行目:cgi.fix_pathinfo = 0
0836行目:file_uploads = On
0845行目:upload_max_filesize = 512M
0856行目:allow_url_fopen = On
0960行目:date.timezone = Asia/Tokyo
1657行目:mbstring.language = Japanese
0406行目:memory_limit = 512M
0693行目:post_max_size = 512M
0712行目:default_charset = "UTF-8"
0797行目:cgi.fix_pathinfo = 0
0836行目:file_uploads = On
0845行目:upload_max_filesize = 512M
0856行目:allow_url_fopen = On
0960行目:date.timezone = Asia/Tokyo
1657行目:mbstring.language = Japanese
※:upload_max_filesize ≦ post_max_size ≦ memory_limit。
nginx/nginx.conf の編集。
sudo nano /etc/nginx/nginx.conf
27行目:keepalive_timeout 600;
27行目:keepalive_timeout 600;
確認。(※:PHPの再起動を忘れないようにする。)
php-fpmのサービスを再起動
sudo systemctl restart php7.3-fpm.service
OS起動時に自動で起動するように設定
sudo systemctl enable php7.3-fpm.service
所有者がnginxになっているか確認
sudo chown -R nginx:nginx /var/run/php/php7.3-fpm.sock
Nginxの設定ファイルに問題が無いかチェック
sudo nginx -t
設定再読み
sudo nginx -s reload
Nginx再起動
sudo systemctl restart nginx
自動起動設定
sudo update-rc.d nginx defaults
sudo systemctl restart php7.3-fpm.service
OS起動時に自動で起動するように設定
sudo systemctl enable php7.3-fpm.service
所有者がnginxになっているか確認
sudo chown -R nginx:nginx /var/run/php/php7.3-fpm.sock
Nginxの設定ファイルに問題が無いかチェック
sudo nginx -t
設定再読み
sudo nginx -s reload
Nginx再起動
sudo systemctl restart nginx
自動起動設定
sudo update-rc.d nginx defaults
5. サイトのルートディレクトリの作成
サイトのルートディレクトリ /home/yaopi/arakan60 を作成。
mkdir /home/yaopi/arakan60
sudo chmod 707 /home/yaopi/arakan60
sudo chmod 707 /home/yaopi/arakan60
6. PHPの動作確認
ルートディレクトリに index.php を用意する。
sudo nano /home/yaopi/arakan60/index.php
テスト用 index.php の作成例。
<?php
phpinfo();
?>
7. MariaDB のインストール
ルート権限でインストール。
su
apt-get install mariadb-client mariadb-server
apt-get install mariadb-client mariadb-server
MariaDB Serverのバージョンを確認する。
dpkg -l | grep -i mariadb
MariaDB のインストール時点での、root アカウントのパスワード設定がなくなったので、【mysql_secure_installation】で設定。
mysql_secure_installationの実行。
su ルート権限で実行
# mysql_secure_installation
Enter current password for root (enter for none):
← enterで次へ
← enterで次へ
Change the root password? [Y/n] y
xxxxxxxx
xxxxxxxx
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Thanks for using MySQL
8. WordPress用のデータベースを作成
ルート権限で実行。
sudo su
mysql -u root
MariaDB [(none)]> use mysql
データベースの作成。
MariaDB [mysql]> create database dbname;
作成したデータベースに、ユーザー名とパスワードを設定。
MariaDB [mysql]> grant all on dbname.* to username@localhost identified by'password';
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exit
MariaDB [mysql]> exit
作成されたデータベースを確認する場合。
MariaDB [(none)]> use mysql
MariaDB [mysql]> show databases;
MariaDB [mysql]> show databases;
以上で、WordPressを導入 or 移行する環境が整った。
WordPressを新規に導入する場合:
「Luxeritas(ルクセリタス)」を導入する場合:
WordPress の引っ越しを行う場合:
以上。
(2019.05.12 & 2019.07.14)
(2019.05.12 & 2019.07.14)
スポンサー リンク