作成日: 2021/07/24 更新日: 2023/03/25 サイトの紹介と使い方
環境
デバイス:
Windows10では、 tera term を使っています。
iPadでは、termiusを使っています。
初期設定
自分のVPSが稼働中であることを確認します。
OSはCentOS7を選択しました。
猫でもわかるVPSの要約と補足
猫でもわかるVPS の説明だけでは、上手くいかなかった部分を補足しています。
PYTHONの環境設定が上手くいかずに、20回くらいOSを初期化しているので、猫でもわかるVPSの要約と補足の手順を記述することにしました。
bash shell でプロンプト設定
echo 'export PS1="\u \W > "' >> ~/.bashrc
- \u:現在のユーザ名です。
- \w:現在のディレクトリの最後の子ディレクトリ名です。
- これはユーザ毎に設定する必要があります。
- \は¥と同じです。(キーボードにより異なります。)
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
<
IfModule
mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /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