Raspberry Pi に nginx-1.16 + PHP-7.3 + MariaDB-10.1 を導入

Raspberry Pi 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
 
nginx + Php7 + mariaDB = Web_Server
 
以下、Nginx  PHP の最新版をインストールして、 MariaDB で、Webサーバーのバージョンアップを行った記録。
 
 

 

スポンサー リンク

 

 
 
現行バージョン。
Raspbian : Stretch
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
 
 
 
 
 
スポンサー リンク
 
 
 
1. インストールできる nginx のバージョン確認
 
Raspbian stretch の、デフォルトパッケージリポジトリを使用してインストールできる、nginx のバージョンを確認する方法。
sudo apt-get update
sudo apt-cache policy nginx
 
インストールできる、nginx のバージョン
 
Nginx の公式サイトで、最新版(Stable version)を確認する。
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
 
 
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 
 
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
 
 
「nginx-1.16.0 」のソース入手結果。
「nginx-1.16.0 」のソース入手
 
「nginx-1.16.0 」のソースからビルドして、パッケージが完成した状況。
「nginx-1.16.0 」のパッケージ完成。
 
nginx のバージョン確認。
nginx -v
nginx version: nginx/1.16.0
 
nginxの起動と確認。
sudo systemctl restart nginx
sudo systemctl status nginx
 
ローカルアドレス 192.168.nn.nnn にアクセス。
OKなら Welcome to nginx が表示される。
Welcome to 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
 
/etc/nginx/conf.d/default.conf の編集。
cd
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
 
pool.d/www.conf の編集。

sudo nano /etc/php/7.3/fpm/pool.d/www.conf 

# userをnginxに変更
user = www-data

user = nginx
 
# groupをnginxに変更
group = www-data

group = nginx
 
# パスを修正
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.groupをnginxに変更
listen.group = www-data

listen.group = nginx
 
# listen.modeのコメントを外して、一部変更
;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
 
※:upload_max_filesize ≦ post_max_size ≦ memory_limit。
 
nginx/nginx.conf の編集。
sudo nano /etc/nginx/nginx.conf  
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
 
 
 
5. サイトのルートディレクトリの作成
 
サイトのルートディレクトリ /home/yaopi/arakan60 を作成。
mkdir /home/yaopi/arakan60
sudo chmod 707 /home/yaopi/arakan60
 
 
 
6. PHPの動作確認
 
ルートディレクトリに index.php を用意する。
sudo nano /home/yaopi/arakan60/index.php
 
テスト用 index.php の作成例。
<?php
phpinfo();
?>
 
PCのブラウザーで、ローカルアドレス 192.168.nn.nnn にアクセス。
PHPの内容が表示されるか確認。
PHPの内容が表示される
 
 
 
7. MariaDB のインストール
 
ルート権限でインストール。
su
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で次へ
Change the root password? [Y/n] y
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 [(none)]> use mysql
MariaDB [mysql]> show databases;
 
 
以上で、WordPressを導入 or 移行する環境が整った。
 
WordPressを新規に導入する場合:
 
「Luxeritas(ルクセリタス)」を導入する場合:
 
WordPress の引っ越しを行う場合:
 
 
以上。
(2019.05.12 & 2019.07.14)
 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください