さくらインターネットでVPSを初期設定

作成日: 2021/07/24 更新日: 2023/03/25 サイトの紹介と使い方

  1. 環境
  2. 初期設定
  3. 猫でもわかるVPSの要約と補足
      1. bash shell でプロンプト設定
      2. bash shell でAlias設定
    1. 第2回 「サーバーをさわってみよう!」
      1. OSを最新状態にアップデート
      2. 一般ユーザ  xxxxx の登録
      3. xxxxx ユーザでsudo コマンドを使用
      4. root ユーザでログインできないように設定
    2. 第3回 「Apacheをインストールしよう」
      1. Apache (アパッチ)のインストール(webサーバの設定)
      2. ファイアウォールの起動確認と有効化
      3. ブラウザで表示確認
      4. 設定の最終確認
      5. WebのホームとCENTOSのディレクトリの関係
      6. Webコンテンツを一般ユーザ xxxxx で使用
      7. 一般ユーザ xxxxx で表示確認
    3. 第4回 「phpとMariaDBをインストールしよう」
      1. PHPの最新バージョンを確認
      2. PHPをインストール
      3. PHPのインストールと表示の確認
      4. PHP.INIの編集
      5. MariaDBをインストール
    4. 第5回 「phpMyAdminを導入しよう」
      1. phpMyAdminのインストール
      2. phpMyAdminをどのデバイスからでも使えるようにする
      3. phpMyAdminのセキュリティ対策①
      4. phpMyAdminのセキュリティ対策②
      5. phpMyAdminのセキュリティ対策③
    5. 第6回 「無料SSL証明書 Let’s Encryptを導入しよう」
      1. SSLの設定
      2. 証明書の更新
    6. 第7回 「ファイアウォール”firewalld”について理解しよう」
      1. ファイアウォールの起動
      2. サービス名 プロトコルとポート番号
      3. ファイアウォールのコマンド例
    7. 第8回「WordPressサイトを公開しよう」
      1. WordPress用のDBを作成
      2. WordPressをインストール
      3. ワードプレスのログインの準備とログイン
    8. 不具合の対処
  4. 日本語対応
  5. お問合せ・御要望

環境

デバイス:
Windows10では、 tera term を使っています。
iPadでは、termiusを使っています。

  1. VIエディタの使い方

初期設定

自分のVPSが稼働中であることを確認します。
OSはCentOS7を選択しました。

猫でもわかるVPSの要約と補足

猫でもわかるVPS の説明だけでは、上手くいかなかった部分を補足しています。
PYTHONの環境設定が上手くいかずに、20回くらいOSを初期化しているので、猫でもわかるVPSの要約と補足の手順を記述することにしました。

bash shell でプロンプト設定

echo 'export PS1="\u \W > "' >> ~/.bashrc
  1. \u:現在のユーザ名です。
  2. \w:現在のディレクトリの最後の子ディレクトリ名です。
  3. これはユーザ毎に設定する必要があります。
  4. \は¥と同じです。(キーボードにより異なります。)

bash shell でAlias設定

echo "alias ls='ls -lak'" >> ~/.bash_profile
echo "alias wh='cd /var/www/html/'" >> ~/.bash_profile
echo "alias ai='cd /home/xxxxx/handwritten/'" >> ~/.bash_profile

第2回 「サーバーをさわってみよう!」

OSを最新状態にアップデート

ターミナルを立ち上げて root ユーザでログインします。
passwordは、OSをインストールした時に設定したものを使います。
$> yum update  (OSを最新状態にアップデート)

一般ユーザ  xxxxx の登録

$> adduser xxxxx    (xxxxxは任意のユーザ名)
$> passwd xxxxx     (passwordを確認のため2回入力)exit
$> exit
ターミナルが閉じます。
再度、ターミナルを立ち上げて xxxxx ユーザでログインします。
$> su -  (root ユーザに切り替えます。)

xxxxx ユーザでsudo コマンドを使用

$> cd /etc
$> cp sudoers sudoers_old(誤った内容でエディタで保存した時、元に戻すため)
$> vi sudoers(vi,vimエディタの使い方)
## Allow root to run any commands anywhere
root ALL=(ALL)   ALL(Allow rootなどのキーワードでファイルの位置を検索します。)
xxxxx  ALL=(ALL)   ALL(ここにこの行を追加します。)

root ユーザでログインできないように設定

$> cd /etc/ssh
$> cp sshd_config sshd_config.old
$> vi sshd_config(vi,vimエディタの使い方)
#PermitRootLogin yes⇒noにします。(PermitRootLoginキーワードでファイルの位置を検索します。#PermitRootLoginの#を削除してコメントアウトを解除します。)
PermitRootLogin no(この行の状態にします。)
$> systemctl restart sshd.service(sshd_configの設定変更の反映)
$> reboot
root ユーザでログインできないことを確認します。

第3回 「Apacheをインストールしよう」

Apache (アパッチ)のインストール(webサーバの設定)

自分がroot ユーザであることを確認します。
$> yum install httpd
$> systemctl start httpd

ファイアウォールの起動確認と有効化

$> systemctl status firewalld
$> systemctl start firewalld.service
$> systemctl enable firewalld
$> firewall-cmd –add-service=http –zone=public –permanent
$> firewall-cmd –add-service=https –zone=public –permanent
$> systemctl restart firewalld

ブラウザで表示確認

xxx.xxx.xxx.xxx:自分のVPSのIPアドレス
google cromeなどのブラウザのアドレスバーにxxx.xxx.xxx.xxxを入力してENTERします。
Testing 123 が表示されればOKです。

設定の最終確認

$> systemctl enable httpd
$> systemctl list-unit-files -t service
リストの中に httpd.service enabled があればOK

WebのホームとCENTOSのディレクトリの関係

Webのホーム(ドメイン直下)とCENTOSの /var/www/html/ ディレクトリが一致します。
そして、/var/www/html/ ディレクトリの階層下がWebの階層と一致していきます。
WordPress などを使うと明示的に一致しているのか分からなくなりますが、困ることはほとんどありません。
また、html/ ディレクトリにある index.htmlか index.php がデフォルトでドメイン直下の表示コンテンツになります。
index.htmlと index.phpの2つが存在するときは、index.htmlが優先されます。

Webコンテンツを一般ユーザ xxxxx で使用

(CENTOSの簡単な仕組み)
また、Webコンテンツをroot ユーザで扱うケースはほとんどないので、html/ ディレクトリを一般ユーザ xxxxx が使用できるように設定します。
$> cd /var/www
$> chown apache:aidendo html  (ディレクトリhtmlの所有者をapacheにグループをaidendoに設定)
$> chmod 775 html
$> reboot

一般ユーザ xxxxx で表示確認

ターミナルを開いて一般ユーザ xxxxx でログインします。
ディレクトリhtmlにindex.htmlを作成します。
$> cd /var/www/html
$> echo ‘Hello World!’ >> index.html
xxx.xxx.xxx.xxx:自分のVPSのIPアドレス
google cromeなどのブラウザのアドレスバーにxxx.xxx.xxx.xxxを入力してENTERします。
Hello World!が表示されればOKです。

第4回 「phpとMariaDBをインストールしよう」

PHPの最新バージョンを確認

Google検索などでPHPの最新バージョンを確認しましょう。
インストールするバージョンは最新バージョンとは限りませんが、確認は有益だと思われます。
筆者は、今のところPHPをワードプレスでしか使わないので、バージョンはワードプレスの要求だけに従いますが、そうでない方はバージョンを適時選択してください。

PHPをインストール

今回はバージョン7.4をインストールします。
下記2行のコマンドの赤文字の部分を注意してください。
su – コマンドなどで root ユーザに切り替えてください。

$> rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$> yum install –enablerepo=remi,remi-php74 php php-devel php-mbstring php-mysqlnd php-pdo php-gd
$> systemctl restart httpd

PHPのインストールと表示の確認

ディレクトリhtmlにindex.phpを作成
$> cd /var/www/html
$> echo ‘<?PHP phpinfo(); ?>’ >> index.php
$> rm index.html
xxx.xxx.xxx.xxx:自分のVPSのIPアドレス
google cromeなどのブラウザのアドレスバーにxxx.xxx.xxx.xxxを入力してENTERします。
PHPのバージョン情報が表示されればOKです。

PHP.INIの編集

$> php -i | grep php.ini  (php.iniの格納ディレクトリを調べます。)
$> cd /etc   (php.iniの格納ディレクトリへ移動します。)
$> vi php.ini(vi,vimエディタの使い方)
下記の2行を変更して、サイズの大きなファイルのアップロードの制限を緩くします。画像ファイルなど。
その他、必要に応じて設定を変更していきます。
post_max_size = 256M
upload_max_filesize = 256M
$> systemctl restart httpd

MariaDBをインストール

$> yum install mariadb-server
$> systemctl enable mariadb
$> systemctl start mariadb
$> mysql_secure_installation
いくつか問い合わせがきますが、
1個目は<enter>
2個目はyでパスワードを設定してください。
残りはすべてyでよさそうです。
$> mysql -u root -p  (mariadbの動作確認をします。)
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit

第5回 「phpMyAdminを導入しよう」

phpMyAdminのインストール

PHPのバージョンを第4回でインストールしたPHPと同じにします。
次のコマンドの赤文字の部分です。
$> php -v  (PHPバージョンを確認します。)
$> yum install –enablerepo=remi,remi-php74 phpMyAdmin

phpMyAdminをどのデバイスからでも使えるようにする

$> cd /etc/httpd/conf.d/
$> cp phpMyAdmin.conf phpMyAdmin.conf.old
$> vi phpMyAdmin.conf  (vi,vimエディタの使い方)
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
Require local

<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
#Require local
Require all granted
$> systemctl restart httpd
xxx.xxx.xxx.xxx:自分のVPSのIPアドレス
google cromeなどのブラウザのアドレスバーにxxx.xxx.xxx.xxx/phpMyAdmin を入力してENTERします。
phpMyAdminのログイン画面が表示されればOK
画像追加201

phpMyAdminのセキュリティ対策①

$> cd /etc/httpd/conf.d/
$> vi phpMyAdmin.conf  (vi,vimエディタの使い方)
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

#Alias /phpMyAdmin /usr/share/phpMyAdmin
#Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /phpMyAdmin????? /usr/share/phpMyAdmin
?????はパスワードみたいなもの
$> systemctl restart httpd
xxx.xxx.xxx.xxx:自分のVPSのIPアドレス
google cromeなどのブラウザのアドレスバーにxxx.xxx.xxx.xxx/phpMyAdmin????? を入力してENTERします。
phpMyAdminのログイン画面が表示されればOK

phpMyAdminのセキュリティ対策②

$> yum install mod_ssl   (SSLにより通信内容を暗号化)
$> systemctl restart httpd
xxx.xxx.xxx.xxx:自分のVPSのIPアドレス
google cromeなどのブラウザのアドレスバーにxxx.xxx.xxx.xxx/phpMyAdmin????? を入力してENTERします。
phpMyAdminのログイン画面が表示されればOK

phpMyAdminのセキュリティ対策③

こまめにphpMyAdminをバージョンアップ
$> yum check-update –enablerepo=remi
$> yum info –enablerepo=remi phpMyAdmin
$> yum update –enablerepo=remi phpMyAdmin

第6回 「無料SSL証明書 Let’s Encryptを導入しよう」

SSLの設定

$> vi /etc/httpd/conf/httpd.conf  (vi,vimエディタの使い方)
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin root@aidendo-pilot.com
DocumentRoot /var/www/html
ServerName aidendo-pilot.com
</VirtualHost>
上記をファイルに追記します。
$> systemctl restart httpd
$> httpd -M
リストの中にssl_module (shared)があればOK
$> firewall-cmd –list-all
services: dhcpv6-client http https ssh⇒httpsがあればOK
$> yum install certbot python2-certbot-apache
$> certbot –apache -d <example.com>
<example.com>は自分のドメイン名
任意のメールアドレスの入力が求められます。
$> systemctl restart httpd0
xxx.xxx.xxx.xxx:自分のVPSのIPアドレスか自分のドメイン名
google cromeなどのブラウザのアドレスバーにhttps://xxx.xxx.xxx.xxx を入力してENTERします。
画面が表示されればOK
画像202,203の追加

証明書の更新

証明書は3か月ごとに更新が必要です。
$> certbot renew
または
$> certbot renew –force-renew

第7回 「ファイアウォール”firewalld”について理解しよう」

ファイアウォールの起動

$> systemctl start firewalld
$> firewall-cmd –state
running の場合は起動中です。

サービス名 プロトコルとポート番号

設定は必要ありません。
http TCP 80
https TCP 443
pop3(メール受信) TCP 110
pop3s(暗号化通信によるメール受信) TCP 995
imap (メール受信などの操作) TCP 143
smtp(メール送信) TCP 25
smtps(暗号化通信によるメール送信) TCP 587
ssh、sftp TCP 22

ファイアウォールのコマンド例

設定は必要ありません。
$> firewall-cmd –state
$> firewall-cmd –list-all
$> systemctl start firewalld
$> systemctl stop firewalld
$> systemctl restart firewalld
$> firewall-cmd –permanent –zone=public –add-service=pop3
$> firewall-cmd –reload
$> firewall-cmd –list-all
$> firewall-cmd –get-services
$> firewall-cmd –zone=public –remove-service=pop3
$> firewall-cmd –add-port=10000/tcp –zone=public –permanent
$> firewall-cmd –remove-port=10000/tcp –zone=public –permanent
$> firewall-cmd –reload

第8回「WordPressサイトを公開しよう」

WordPress用のDBを作成

$> mysql -u root -p
MariaDB [(none)]> create database wordpressdb collate utf8mb4_general_ci;
MariaDB [(none)]> exit

WordPressをインストール

$> cd /var/www/html
$> wget https://ja.wordpress.org/wordpress-4.9-ja.tar.gz
$> tar xvzf wordpress-4.9-ja.tar.gz
$> rm wordpress-4.9-ja.tar.gz
$> rm index.php
$> ls -l  (不必要なファイルがあれば rm コマンドで削除します。)
$> mv wordpress/* .
$> rmdir wordpress
$> chown -R apache:xxxxx *  (xxxxxは一般ユーザ名)
$> chmod -R g+w *
xxx.xxx.xxx.xxx:自分のVPSのIPアドレスか自分のドメイン名
google cromeなどのブラウザのアドレスバーにhttps://xxx.xxx.xxx.xxx を入力してENTERします。

ワードプレスのログインの準備とログイン

画像204,205,206,207,208,209

データベース名: wordpressdb
ユーザー名: root
パスワード: MariaDBのrootユーザーのパスワード
それ以外の項目はそのままです。

不具合の対処

以下のケースは筆者が遭遇したケースだけです。

・[Wordpress]更新に失敗しました。返答が正しいJSONレスポンスではありません。
[環境]
wordpress 5.7.2         「ダッシュボード」⇒「更新」
CentOS7 7.9.2009      $> cat /etc/redhat-release
apache 2.4.6              $> httpd -v
PHP 7.4.21               $> php -v
MariaDB mysql Ver 15.1 Distrib 5.5.68-MariaDB  $> mysql -u root -p(status)
テーマ cocoon
[原因] ダッシュボードで「設定」⇒「パーマリンク設定」を変更した時
[対処]
・$> vi /etc/httpd/conf.modules.d/00-base.conf
mod_rewiteがコメントアウトされていないか確認します。
・$> vi /etc/httpd/conf/httpd.conf
<Directory /var/www/html>内のAllowOverrideをnone→Allに変更します。
・$> vi /var/www/html/.htaccess
このファイルが空になっている可能性があるので、次の内容を書き込みます。

# BEGIN WordPress<IfModulemod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress

・$> service httpd restart  (Apacheを再起動します。)
・$> service httpd status  (Apacheの状態を確認します。)

日本語対応

rootユーザ>処理
> yum -y install ibus-kkc vlgothic-*
> localectl set-locale LANG=ja_JP.UTF-8
> source /etc/locale.conf
結果
> echo $LANG
ja_JP.UTF-8

お問合せ・御要望

お問合せ
Verified by MonsterInsights
タイトルとURLをコピーしました