Linux | POPWEB https://blog.popweb.dev Developer, Blogger, Illustrator in Tokyo. Mon, 29 Jun 2020 22:15:21 +0000 ja hourly 1 https://wordpress.org/?v=6.7.6 https://storage.googleapis.com/gcs.pop-web.net/2021/01/favicon.ico Linux | POPWEB https://blog.popweb.dev 32 32 Nginxでphp.iniの更新やモジュールを追加した場合、systemctl restart php-fpmで反映 https://blog.popweb.dev/server/linux/nginx-php-ini-php-fpm/ https://blog.popweb.dev/server/linux/nginx-php-ini-php-fpm/#respond Mon, 20 Apr 2020 04:04:09 +0000 https://blog.pop-web.net/?p=1046 Nginxでphp-fpmサーバーを使っている場合、php.iniの編集やPHPのモジュールを追加の反映は以下のコマンドでphp-fpmを再起動する。 Apacheとは違ってWebサーバー(Nginx)をを再起動しても設 […]

The post Nginxでphp.iniの更新やモジュールを追加した場合、systemctl restart php-fpmで反映 first appeared on POPWEB.]]>
Nginxでphp-fpmサーバーを使っている場合、php.iniの編集やPHPのモジュールを追加の反映は以下のコマンドでphp-fpmを再起動する。

systemctl restart php-fpm

Apacheとは違ってWebサーバー(Nginx)をを再起動しても設定は反映されないので注意。

The post Nginxでphp.iniの更新やモジュールを追加した場合、systemctl restart php-fpmで反映 first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/nginx-php-ini-php-fpm/feed/ 0
さくらVPSとさくらのメールボックスを同じ独自ドメインにする方法 https://blog.popweb.dev/server/linux/vps-mailbox-domain/ https://blog.popweb.dev/server/linux/vps-mailbox-domain/#respond Tue, 14 Apr 2020 16:01:00 +0000 https://blog.pop-web.net/?p=1040 さくらのVPSで独自ドメインでWEBサーバーを運用している場合、メールアドレスのドメイン も同じドメインで使用したい場合があると思う。 でも、メールサーバーをたてるには、PostfixやDovecotの設定が必要で結構め […]

The post さくらVPSとさくらのメールボックスを同じ独自ドメインにする方法 first appeared on POPWEB.]]>
さくらのVPSで独自ドメインでWEBサーバーを運用している場合、メールアドレスのドメイン も同じドメインで使用したい場合があると思う。

でも、メールサーバーをたてるには、PostfixやDovecotの設定が必要で結構めんどい。

そこで「さくらのメールボックス」。

このサービスは月額換算約86円と安い。

この「さくらのメールボックス」を使ってメールアドレスのドメインもWEBサーバーと同じ独自ドメインにする。

やることは、ネームサーバの設定でAレコードにはさくらのVPSのIPアドレスを設定し、MXレコードにさくらのレンタルサーバの初期ドメインを設定すること。

  • Aレコード・・・さくらのVPSのIPアドレス
  • MXレコード・・・さくらのレンタルサーバの初期ドメイン

既存ソーンの削除

すでに、ネームサーバの設定をしている場合は、ネームサーバのゾーン情報を一度削除する必要がある。

会員メニュー → 契約情報 → ドメインメニューから該当ドメインの「ゾーン削除」をクリックして削除する。

再度、左メニューのドメインメニューの「ネームサーバ新規登録」をクリックしてドメインを登録する。

設定の反映には2時間ほどかかるようだ。

さくらのメールボックスの設定

さくらインターネットサーバコントロールパネルに行く。

左メニューのドメイン設定 → ドメイン/SSL設定 → 新しいドメインの追加をクリック。

「2. さくらインターネットで取得したドメインを使う」で、前述の「ネームサーバ新規登録」で登録した同じドメイン名を選択して「送信する」をクリック。

ネームサーバの編集

再度、会員メニュー → 契約情報 → ドメインメニューで該当のドメインの「ゾーン編集」をクリック。

エントリ名「@」のAレコードをさくらのVPSのIPアドレスに変更する。

エントリ名「@」のMXレコード「10 @」を「10 hogehoge.sakura.ne.jp.(レンタルサーバーの初期ドメイン)」に変更する。

ちなみに、「レンタルサーバーの初期ドメイン」は、サーバコントロールパネル管理画面の左メニューの「お客さま情報」で確認できる。

注意点として、MXレコードの最後には「.」ピリオドが必要。

最後に、左の「データ送信」リンクをクリックする。

反映までには数時間から48時間かかる。

48時間を超えても反映が確認できない場合は再度設定を見直すか、さくらインターネットへ直接問い合わせをして確認をしてみる。

The post さくらVPSとさくらのメールボックスを同じ独自ドメインにする方法 first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/vps-mailbox-domain/feed/ 0
【さくらVPS】NginxをLet’s EncryptでSSL化させる https://blog.popweb.dev/server/linux/nginx-lets-encrypt-ssl/ https://blog.popweb.dev/server/linux/nginx-lets-encrypt-ssl/#respond Mon, 13 Apr 2020 18:24:00 +0000 https://blog.pop-web.net/?p=1044 さくらのVPSにてLet’s EncryptでSSL化させる手順を説明する。 目次 環境についてCertbotインストール証明書の設定Nginxの設定編集前編集後 環境について 環境については以下の通り。 さ […]

The post 【さくらVPS】NginxをLet’s EncryptでSSL化させる first appeared on POPWEB.]]>
さくらのVPSにてLet’s EncryptでSSL化させる手順を説明する。

環境について

環境については以下の通り。

  • さくらのVPS
  • CentOS 7
  • Nginx 1.17

Certbotインストール

適切な場所移動してgit cloneする。

cd /usr/local
git clone https://github.com/certbot/certbot

certbotに移動して確認

cd certbot/
./certbot-auto --version
certbot 1.4.0

証明書の設定

Nginxは一旦停止する。

systemctl stop nginx

また、80番、443番のポートは開けておく。

以下のコマンドで証明書の設定を実行する。

./certbot-auto certonly --standalone -d <SSL化したいドメイン> -m <連絡用のメールアドレス> --agree-tos -n

最後に、Congratulations!とでればOK。

Nginxの設定

Ngixnの設定ファイルを開いて編集する、。

vi /etc/nginx/conf.d/default.conf

以下の箇所を編集・変更する。

編集前

server {
    listen 80;
.....

編集後

server {
    listen 443 ssl;
    ssl_certificate     /etc/letsencrypt/live/<SSL化したいドメイン>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/SSL化したいドメイン>/privkey.pem;
.....

Nginxを再起動して確認

systemctl restart nginx

Nginxを再起動してブラウザでSSL化になっていることが確認できればOK。

The post 【さくらVPS】NginxをLet’s EncryptでSSL化させる first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/nginx-lets-encrypt-ssl/feed/ 0
SSHキーの作成手順(for Windows) https://blog.popweb.dev/server/linux/ssh-for-windows/ https://blog.popweb.dev/server/linux/ssh-for-windows/#respond Thu, 26 Mar 2020 11:35:00 +0000 https://blog.pop-web.net/?p=505 SSH公開鍵認証について 公開鍵認証は通常のパスワード認証よりも、安全にsshのログインができる認証方法 鍵は2つ必要(秘密鍵・公開鍵) 秘密鍵ファイルはローカルにおく(人に知られてはダメ) 公開鍵ファイルはサーバが側に […]

The post SSHキーの作成手順(for Windows) first appeared on POPWEB.]]>
SSH公開鍵認証について

公開鍵認証は通常のパスワード認証よりも、安全にsshのログインができる認証方法

  • 鍵は2つ必要(秘密鍵・公開鍵)
  • 秘密鍵ファイルはローカルにおく(人に知られてはダメ)
  • 公開鍵ファイルはサーバが側におく(人に知られても良い)
  • 秘密鍵を持っていないパソコンからはログイン接続できない

SourceTreeでSSH keysの生成

SourceTreeを起動する

  • [ツール] で、[SSH キーの作成またはインポート] を選択する。
  • [PuTTY キー ジェネレーター] ダイアログで、[Generate] をクリック
  • マウスポインタを空白領域で適当に動かして、SSH キーの生成する。
  • [Key passphrase] と [Confirm passphrase] は空のまま
  • [Save public key] (公開鍵)と[Save private key](秘密鍵) をクリックして、それぞれ保存する 。
  • 公開鍵には、ファイルに “.pub” ファイル拡張子をつける。
  • 保存先は慣例的に「C:¥Users¥{ユーザー名}¥.ssh」へ

SSHエージェントに登録

  • タスクトレイに「Pageant」というものがあるので、それをダブルクリック。
  • Pageant Key Listが開かれるので、【Add Key】を選択。
  • 作成した秘密鍵「〇〇.ppk」を選択。
  • キーの詳細が表示されたら【Close】で閉じる。

Gitホスティングサービスに公開鍵の登録

作成した公開鍵をGitHubなどのホスティングサービスに登録する。

SourceTreeでpullやpushができるか確認する。

The post SSHキーの作成手順(for Windows) first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/ssh-for-windows/feed/ 0
プログラムがどのポート番号を使っているか確認のLinuxコマンド https://blog.popweb.dev/server/linux/port/ https://blog.popweb.dev/server/linux/port/#respond Sat, 21 Mar 2020 17:58:00 +0000 https://blog.pop-web.net/?p=841 Docker等を使っていて以下のようなエラーが出る場合がある。 そんな場合、以下のコマンドでLISTENしているポートを確認できる。

The post プログラムがどのポート番号を使っているか確認のLinuxコマンド first appeared on POPWEB.]]>
Docker等を使っていて以下のようなエラーが出る場合がある。

ERROR: for web Cannot start service web: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use

そんな場合、以下のコマンドでLISTENしているポートを確認できる。

lsof -i -n -P | grep "LISTEN"
The post プログラムがどのポート番号を使っているか確認のLinuxコマンド first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/port/feed/ 0
npm insallすると”Error: pngquant failed to build, make sure that libpng-dev is installed” https://blog.popweb.dev/server/linux/npm-insall-error-pngquant-failed-to-build/ https://blog.popweb.dev/server/linux/npm-insall-error-pngquant-failed-to-build/#respond Wed, 18 Mar 2020 05:02:00 +0000 https://blog.pop-web.net/?p=789 DockerでLaravel開発環境を構築時にLaravel Mixを使おうと、npm installした時に以下エラー発生。 以下のパッケージをインストールすると解決。 Dockerfileに追記して再度buildすれ […]

The post npm insallすると”Error: pngquant failed to build, make sure that libpng-dev is installed” first appeared on POPWEB.]]>
DockerでLaravel開発環境を構築時にLaravel Mixを使おうと、npm installした時に以下エラー発生。

Error: pngquant failed to build, make sure that libpng-dev is installed

以下のパッケージをインストールすると解決。

yum install -y bash gcc make libpng-devel

Dockerfileに追記して再度buildすればよい。

または、docker execかなんかでコンテナのシェルに接続して上記のコマンドを直接打ち込んでインストールするか。

The post npm insallすると”Error: pngquant failed to build, make sure that libpng-dev is installed” first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/npm-insall-error-pngquant-failed-to-build/feed/ 0
プロキシサーバとリバースプロキシの違い https://blog.popweb.dev/server/linux/proxy-reverse-proxy/ https://blog.popweb.dev/server/linux/proxy-reverse-proxy/#respond Tue, 03 Mar 2020 06:53:00 +0000 https://blog.pop-web.net/?p=737 プロキシ(Proxy)は「代理」という意味。 目次 プロキシサーバとはリバースプロキシサーバとは プロキシサーバとは プロキシサーバは、基本的に社内ネットワークの境界に設置される。 そのため、社内ネットワーク内のクライア […]

The post プロキシサーバとリバースプロキシの違い first appeared on POPWEB.]]>
プロキシ(Proxy)は「代理」という意味。

プロキシサーバとは

プロキシサーバは、基本的に社内ネットワークの境界に設置される。

そのため、社内ネットワーク内のクライアントからインターネットへアクセスする際は、必ずプロキシサーバを経由することになる。

リバースプロキシサーバとは

リバースプロキシサーバは、基本的にDMZに設置される。

DMZとは何かというと、インターネット(外部)と内部ネットワークの中間に作られる領域のこと。「非武装地帯(DeMilitarized Zone)」とも呼ばれる。

リバースプロキシサーバは、プロキシサーバとは逆で、インターネットからサーバ側の内部ネットワークへアクセスする際に経由させるサーバーのこと。

The post プロキシサーバとリバースプロキシの違い first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/proxy-reverse-proxy/feed/ 0
デーモンとは(UNIX系OS/Linux, MacOSX) https://blog.popweb.dev/server/linux/daemon/ https://blog.popweb.dev/server/linux/daemon/#respond Thu, 27 Feb 2020 15:42:54 +0000 https://blog.pop-web.net/?p=714 Linuxなどを界隈でよく聞くデーモンとは? デーモンとは、UNIX系のOS(Linux, MacOSX)における常駐プログラム。 主にバックグラウンドで動作している。 利用者が直接操作することはできない。 末尾に「d」 […]

The post デーモンとは(UNIX系OS/Linux, MacOSX) first appeared on POPWEB.]]>
Linuxなどを界隈でよく聞くデーモンとは?

デーモンとは、UNIX系のOS(Linux, MacOSX)における常駐プログラム。

主にバックグラウンドで動作している。

利用者が直接操作することはできない。

末尾に「d」が付くものはだいたいデーモンで、httpd、sshd、firewalldなどなどがある。

The post デーモンとは(UNIX系OS/Linux, MacOSX) first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/daemon/feed/ 0
【さくらVPS】CentOS7+Nginx+PHP7+MariaDBの環境構築 https://blog.popweb.dev/server/linux/nginx-php-mariadb/ https://blog.popweb.dev/server/linux/nginx-php-mariadb/#respond Fri, 03 Jan 2020 16:32:42 +0000 https://blog.pop-web.net/?p=634 さくらVPSでCentOS7+Nginx+PHP7+MariaDBの構築手順を説明する。 Nginxのインストールと設定については、以前の記事を参照。 ・【さくらVPS】Nginxのインストール手順 ・【さくらVPS】N […]

The post 【さくらVPS】CentOS7+Nginx+PHP7+MariaDBの環境構築 first appeared on POPWEB.]]>
さくらVPSでCentOS7+Nginx+PHP7+MariaDBの構築手順を説明する。

Nginxのインストールと設定については、以前の記事を参照。

【さくらVPS】Nginxのインストール手順

【さくらVPS】Nginxバーチャルホストの設定

PHP5系の削除

もしデフォルトでPHP5系の古いバージョンのPHPがインストールされている場合は、削除する。

以下のコマンドですでにPHPがインストールされていないか確認する。

sudo yum list installed | grep php

何も表示されなければ、PHPはインストールされていない。

もし、PHPがインストールされていれば、以下のコマンドで削除する。

sudo yum remove php*

remiレポジトリの追加

最新のPHPモジュールを取得するために、Redhat enterprise linux 7用のremiレポジトリをインストールする。

sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

最後に、『完了しました!』が表示されればOK。

追加されたレポジトリファイルは「/etc/yum.repos.d/」に置かれるので、PHP関連のファイルがあるか確認しておく。

ls /etc/yum.repos.d/
CentOS-Base.repo       epel.repo          remi-php70.repo
CentOS-CR.repo         nginx.repo         remi-php71.repo
CentOS-Debuginfo.repo  remi-glpi91.repo   remi-php72.repo
CentOS-Media.repo      remi-glpi92.repo   remi-php73.repo
CentOS-Sources.repo    remi-glpi93.repo   remi-php74.repo
CentOS-Vault.repo      remi-glpi94.repo   remi-safe.repo
CentOS-fasttrack.repo  remi-modular.repo  remi.repo
epel-testing.repo      remi-php54.repo

PHP74パッケージのインストール

以下のコマンドでPHP7.4と必要なパッケージらをインストールする。

sudo yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql

PHPがインストールされたか、バージョンの確認

以下のphpコマンドで、PHPバージョンを確認する。

php -v
PHP 7.4.1 (cli) (built: Dec 17 2019 16:35:58) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

上記のようになれば、PHP7.4がインストールされたこととなる。

php.iniの基本設定

「/etc/php.ini」ファイルを編集して基本設定を行う。

sudo vi /etc/php.ini

HTTPヘッダーのバージョン非表示

セキュリティ的にバージョンは非公開の方がいいので非表示にしておく。

expose_php = On
↓
expose_php = Off

アップロードサイズの変更

デフォルト設定ではアップロードできるファイルサイズが小さいので変更しておく。

post_max_size = 8M
↓
post_max_size = 20M
upload_max_filesize = 2M
↓
upload_max_filesize = 20M

タイムゾーンの設定

タイムゾーンは、”Asia/Tokyo”に設定しておく。アプリケーションで時間を扱う場合これを設定しておかないと挙動がおかしくなってしまいます。

;date.timezone =
↓
date.timezone = "Asia/Tokyo"

マルチバイト対応

日本語を利用する場合、マルチバイト対応の設定が必要になる。

mbstringの言語デフォルト値を定義するmbstring.languageを設定。

;mbstring.language = Japanese
↓
mbstring.language = Japanese

内部文字エンコーディングの設定をUTF-8へ設定する。

;mbstring.internal_encoding =
↓
mbstring.internal_encoding = UTF-8

HTTP通信時のinput文字コードもUTF-8に指定。

;mbstring.http_input =
↓
mbstring.http_input = UTF-8

HTTP 出力文字コードを指定するmbstring.http_outputは、自動変換を不可にするのでpassを指定する。

;mbstring.http_output =
↓
mbstring.http_output = pass

HTTP入力変換を有効化する。

;mbstring.encoding_translation = Off
↓
mbstring.encoding_translation = On

文字コードの自動検出の優先順位の設定するmbstring.detect_orderを編集する。autoにしておくとUTF-8がデフォルトで選択されるためautoにしておく。

;mbstring.detect_order = auto
↓
mbstring.detect_order = auto

変換不可の文字列がある場合、代わりの文字を表示させないようにmbstring.substitute_characterを有効にする。

;mbstring.substitute_character = none
↓
mbstring.substitute_character = none

これで、php.iniファイルの設定は以上。

php-fpmのインストール

php-fpm(FastCGI Process Manager)は、phpスクリプトをCGIで動かすためのパッケージ。

ちなみに、phpはモジュール版とCGI版があり、Apacheではモジュール版が使用される。Webサーバーのプロセス内でPHPを実行するやり方。

一方、CGI版は、Webサーバとは別プロセセスで実行させるやり方。Nginxではモジュール版がないので、CGI版を使っていくこととなる。

php-fpmパッケージは、remiレポジトリにあるため以下のコマンでインスールできる。

sudo yum -y install --enablerepo=remi,remi-php74 php-fpm

最後に、「完了しました!」が表示されればOK。

インストールされたかの確認は、以下のコマンドを入力。

sudo yum list installed | grep php-fpm
php-fpm.x86_64 7.4.1-1.el7.remi @remi-php74

上記のような表示になればOK。

php-fpm設定ファイルの変更

php-fpm設定ファイルを変更していく。

まずはバックアップをとる。

sudo cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org

www.confファイルの編集

以下のコマンドでwww.confを編集していく。

sudo vi /etc/php-fpm.d/www.conf

まずは、nginxのシステムユーザをwwwに変更する。

; RPM: apache user chosen to provide access to the same directories as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
↓
; RPM: apache user chosen to provide access to the same directories as httpd
user = www
; RPM: Keep a group allowed to write in log dir.
group = www

編集が終わったら保存しておく。

php-fpmの起動

php-fpmを起動する。

sudo systemctl start php-fpm

起動されているかの確認。

sudo systemctl status php-fpm

「Active: active (running)」になっていればOK。

php-fpm自動起動設定

サーバ再起動時にも、php-fpmが自動的に起動するように設定する。

sudo systemctl enable php-fpm

自動起動が設定されていることを確認。

sudo systemctl is-enabled php-fpm
enabled

上記のように「enabled」と表示されればOK。

Nginxの設定変更

次は、nginxでphp-fpmへスクリプトのファイルが動作するにようにNginx側の設定を変更する。

default.confを編集する。

sudo vi /etc/nginx/conf.d/default.conf

locationディレクティブへ、index.phpを追加する。

location / {
  index index.html index.htm;
}
↓ 
location / {
  index index.php index.html index.htm;
}

また、locationディレクティブの下へ、以下のPHP用の設定内容を追記する。

location ~ \.php$ {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  include fastcgi_params;
}

設定ファイルを保存して、以下のコマンドを入力して設定ファイルに間違いがないかチェックする。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

上記のように「syntax is ok」と「test is successful」を表示がでればOK。

Nginxの再起動

Nginxの設定を変更したのでこれを反映させるため、Nginxを再起動する。

sudo systemctl restart nginx

テスト用のPHPファイルを作成

PHPが実行されているか、バーチャルホストのドキュメントルートへphpファイルを配置する。

sudo vi /home/www/yusuke.com/index.php

フィアルの内容は以下。

<?php
    phpinfo();
?>

ブラウザで動作確認

ブラウザを起動して、yusuke.comを表示する。

この動作確認では、DNS設定の必要で、ドメイン名(blog.pop-web.net)からIPが引けるようにしておく。ドメインをお名前ドットコム等のサービスで取得している場合は、ネームサーバ設定変更で、さくらのVPSのネームサーバを指定しておけば良い。

以下のようにphpinfoの表示がされればOK。

MariaDBバージョン5系の削除

MariaDBをインストールしていく。

バージョンは10系をいれていくので、すでにデフォルトでMariaDBがインストールされていないか確認。

sudo yum list maria*
インストール済みパッケージ
mariadb-libs.x86_64                          1:5.5.64-1.el7

上記のような表示が出た場合、MariaDBの5.5がインストールされていることとなる。

10系をインストールするので、このMariaDB5.5は削除する。

sudo yum remove mariadb-libs

以下のコマンドで削除されたかの確認。

sudo yum list installed | grep mariadb-libs

なにも表示されなければ削除されたことが確認できる。

MariaDBレポジトリの作成

現状のレポジトリを確認する。

ls -a /etc/yum.repos.d/
.                      epel-testing.repo  remi-php70.repo
..                     epel.repo          remi-php71.repo
CentOS-Base.repo       nginx.repo         remi-php72.repo
CentOS-CR.repo         remi-glpi91.repo   remi-php73.repo
CentOS-Debuginfo.repo  remi-glpi92.repo   remi-php74.repo
CentOS-Media.repo      remi-glpi93.repo   remi-safe.repo
CentOS-Sources.repo    remi-glpi94.repo   remi.repo
CentOS-Vault.repo      remi-modular.repo
CentOS-fasttrack.repo  remi-php54.repo

ここへ、MariaDBレポジトリを追加する。

レポジトリファイルの内容は、MariaDB公式サイトの作成画面を参考にする。

まず、MariaDB公式サイトのDownloads画面へいく。

環境に合わせて、以下のように選択していく。

「CentOS」→「CentOS 7 (x86_64)」→「10.4 [Stable]」

選択が終わると、自動でレポジトリファイルの内容が生成されるので、これをコピーしておく。

![スクリーンショット 2020-01-04 15.51.05](/Users/koga/Dropbox/md/投稿済み/img/スクリーンショット 2020-01-04 15.51.05.png)

次に、コピー先であるレポジトリファイルを作成する。

sudo vi /etc/yum.repos.d/mariadb.repo

先ほど、コピーした内容を貼り付ける。

※また、レポジトリを有効化するため最終行に「enable=1」を追記する。

# MariaDB 10.4 CentOS repository list - created 2020-01-04 06:50 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enable=1

これでファイルを保存すれば、レポジトリの追加完了。

yumコマンドでMariaDBをインストールする。

sudo yum -y install MariaDB-devel MariaDB-client MariaDB-server

最後に、「完了しました!」が表示されればOK。

インストールされたか、以下のコマンドで確認。

sudo yum list installed | grep MariaDB
MariaDB-client.x86_64                10.4.11-1.el7.centos            @mariadb
MariaDB-common.x86_64                10.4.11-1.el7.centos            @mariadb
MariaDB-compat.x86_64                10.4.11-1.el7.centos            @mariadb
MariaDB-devel.x86_64                 10.4.11-1.el7.centos            @mariadb
MariaDB-server.x86_64                10.4.11-1.el7.centos            @mariadb

上記のように、バージョン10.4が確認できればOK。

MariaDBの起動

MariaDBを以下のコマンドで起動する。

sudo systemctl start mariadb

起動したら、以下のコマンで正常起動しているか確認。

sudo systemctl status mariadb

Active: active (running)と表示されればOK。

MariaDBの自動起動設定

サーバーの再起動時もMariaDBが起動するように設定する

sudo systemctl enable mariadb

自動起動が設定されていることを確認。

sudo systemctl is-enabled mariadb
enabled

enabledが表示されればOK。

mysql_secure_installationの設定

MariaDBのセキュリティ設定をmysql_secure_installationで行う。

このmysql_secure_installationは何をしてくれるかというと、DB管理者のパスワード設定やサンプルDBの削除などしてくれる

MariaDBをインストール時には実行した方が良い。

以下のコマンドを実行。

sudo mysql_secure_installation

実行するとまず、『Enter current password for root (enter for none):』となるが、これはrootのパスワードが設定されている場合、そのパスワードを入力する。

今回はまだ設定していないので、enterキーを押下して進める。

現パスワードを確認する場合には以下のコマンドで確認できる

cat /var/log/mysqld.log | grep 'temporary password'

その後も[Y/n]で設定を聞かれるので、yを入力してEnterを押下。

「New password:」と出たら、新しいパスワードを入力する。

その後も、また[Y/n]で設定を聞かれるので、yを入力してEnterを押下。

最後に、『Thanks for using MariaDB!』と表示されれば設定は終了。

MariaDBの基本設定

文字コードをUTF-8として設定するため、設定ファイルのserver.cnfを編集する。

まずは、バックアップとる。

sudo cp -p /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.org

server.cnfを開いて編集する。

sudo vi /etc/my.cnf.d/server.cnf

[server]ディレクティブに「character-set-server=utf8」を追記する。

[server]
↓
[server]
character-set-server=utf8 

設定を反映させるためMariaDBを再起動。

sudo systemctl restart mariadb

MariaDBへの接続確認

MariaDBへ接続して確認をする。

以下の、コマンドで接続する。

sudo mysql -uroot -p[パスワード]

接続完了すると、以下のようなプロンプトが表示される。

MariaDB [(none)]>

作成されているデータベースを確認するため、以下のSQL文を入力

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.002 sec)

テスト用のDBを作成

以下のSQL文で、テスト用のDBを作成する。

MariaDB [(none)]> create database test;
Query OK, 1 row affected (0.001 sec)

作成したDBへ接続。

MariaDB [(none)]> use test;
Database changed

作成したテスト用のDBの文字コードを確認し、UTF-8になっていることを以下のSQL文で確認する。

MariaDB [test]> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.001 sec)

UTF-8になっていることが確認できたので、テスト用で作成したDBは削除しておく。

MariaDB [test]> drop database test;
Query OK, 0 rows affected (0.003 sec)

削除したDBがなくなったことを以下のSQL文で確認する。

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.000 sec)

MariaDB接続を終わる場合は、以下のコマンドで終了する。

MariaDB [(none)]> quit
Bye

最後に

以上で、CentOS7 + Nginx + PHP7 + MariaDB10の環境が構築が完了。

これでようやく、PHPによるアプリケーションの実装を始めることができるようになった。

The post 【さくらVPS】CentOS7+Nginx+PHP7+MariaDBの環境構築 first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/nginx-php-mariadb/feed/ 0
【さくらVPS】Nginxバーチャルホストの設定 https://blog.popweb.dev/server/linux/nginx-virtualhost/ https://blog.popweb.dev/server/linux/nginx-virtualhost/#respond Fri, 03 Jan 2020 04:09:33 +0000 https://blog.pop-web.net/?p=629 前回の【さくらVPS】Nginxのインストール手順からの続きで バーチャルホスト設定を行なっていく。 目次 Nginxを動作させるシステムユーザーを作成コンテンツディレクトリ作成nginx.confファイルの変更システム […]

The post 【さくらVPS】Nginxバーチャルホストの設定 first appeared on POPWEB.]]>
前回の【さくらVPS】Nginxのインストール手順からの続きで

バーチャルホスト設定を行なっていく。

Nginxを動作させるシステムユーザーを作成

Nginxを動作させるシステムユーザを新たに作成する。

デフォルトではNiginxユーザとなっているがセキュリティ上、新たにシステムユーザを作成することとする。

wwwというユーザー名で作成する。

シェルとして「/sbin/nologin」を指定しログイン権限を制限。

sudo useradd -s /sbin/nologin www

パスワードを設定

sudo passwd www

コンテンツディレクトリ作成

バーチャルホストを設定していくので、URLに応じた各コンテンツを格納するドキュメントルートとなるディレクトリを作成する。

「/home/www/」の下にドキュメントルートを作成し、ファイル名はドメイン名とする。

今回は「blog.pop-web.net」というディレクトリ名で作成する。

sudo mkdir /home/www/blog.pop-web.net

作成したドキュメントルートの中に、テスト用のHTMLファイルを作成しておく。

sudo vi /home/www/blog.pop-web.net/index.html
test

作成したディレクトリは、所有者がrootユーザになっているので、

「www」ユーザへパーミッションの変更をする。

sudo chown -R www:www /home/www

nginx.confファイルの変更

Nginxの全般的な設定ファイルは、「nginx.conf」で行う。ちなみに、サイト毎の設定などは、「default.conf」で行う。

「nginx.conf」のバックアップをしておく。

sudo cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org

「nginx.conf」を編集していく。

sudo vi /etc/nginx/nginx.conf

システムユーザーを変更

システムユーザをwwwへ変更。

user nginx;
↓
user www;

バージョンの非表示

バージョンを非表示するため「server_tokesn off;」を追加

http {
    include /etc/nginx/mime.types;
↓
http {
    server_tokens off;
    include /etc/nginx/mime.types;

gzip圧縮の有効

表示速度が早くするため、サイズを圧縮する機能であるgzipを有効化する。

#gzip on;
↓
gzip on;

長いホスト名の対応

長いバーチャルホスト名の場合、エラーになる場合があるのでサイズを大きめに設置する。

gzip on;の下へ追記。

server_names_hash_bucket_size 128;

上記の設定が終わったら上書き保存。

確認用コマンドで「nginx.conf」に間違いがないかチェック。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

上記のように、「syntax is ok」「test is successful」と表示されればOK。

default.confファイルの変更

default.confファイルにバーチャルホスト設定を編集していく。

以下のコマンドでdefault.confファイルを開く。

sudo vi /etc/nginx/conf.d/default.conf

最終行に以下の内容を追記する。

server {
    listen 80;
    server_name blog.pop-web.net www.blog.pop-web.net;
    access_log /var/log/nginx/blog.pop-web.net-access.log main;
    error_log /var/log/nginx/blog.pop-web.net-error.log;
    root /home/www/blog.pop-web.net;
    location / {
        index index.html index.htm;
    }
}

各設定項目の説明は以下のよう。

項目説明
listenバーチャルホストが待ち受けるポートの指定
server_nameバーチャルホスト名の設定。www有りとwww無しの両方でアクセスできるようにしておく。
access_logアクセスログの出力先の指定
error_logエラーログの出力先の指定
rootドキュメントルートの指定
locationURIのパス単位の設定

追記したら、確認用コマンドで「default.conf」に間違いがないかチェック。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

上記のようにsuccessfulがでればOK。

Nginx再起動

設定内容を反映させるため、Nginxを再起動する。

sudo systemctl restart nginx

ブラウザで確認

ブラウザで「blog.pop-web.net」を入力して表示確認する。

作成したテスト用のHTMLファイルの内容が表示されればOK。

※この動作確認では、DNS設定の必要で、ドメイン名(blog.pop-web.net)からIPが引けるようにしておく。ドメインをお名前ドットコム等のサービスで取得している場合は、ネームサーバ設定変更で、さくらのVPSのネームサーバを指定しておけば良い。

The post 【さくらVPS】Nginxバーチャルホストの設定 first appeared on POPWEB.]]>
https://blog.popweb.dev/server/linux/nginx-virtualhost/feed/ 0