WPサイト引っ越し(2018/11/20)|Ewig Leere(Lab)の記事を参考にCentOS8の環境を作ってみたのでメモ。
1. インストール
- インストール言語
- 日本語
- 日本語 (日本)
- インストール設定
- 地域設定
- 時刻と日付
- デフォルトがアメリカ大陸/ニューヨーク タイムゾーン」になっているので「アジア/東京 タイムゾーン」に変更
- 時刻と日付
- ソフトウェア
- ソフトウェアの選択
- 最小限のインストール
- 標準
- 開発ツール
- ネットワークサーバー
- 最小限のインストール
- ソフトウェアの選択
- システム
- インストール先
- 既存パーティションを全削除してパーティションを自動作成
/home
: 自動作成された容量から100GB削減/
: homeの分を増量
- 既存パーティションを全削除してパーティションを自動作成
- ネットワークとホスト名
- トグルを「オン」にして使用する状態に
- 「設定」
- 「全般」タブ
- この接続が利用可能になったときに自動的に接続する
- 「IPv6 設定」
- 方式: 無視する
- 「全般」タブ
- インストール先
- 「インストール開始」
- 地域設定
- rootパスワード設定
- ユーザ追加
インストール完了後、再起動。
以下、sshで接続して設定作業。
2. バージョン確認
# cat /etc/redhat-release
CentOS Linux release 8.1.1905 (Core)
3. アップデート
# dnf update
CentOS-8 - AppStream 1.0 MB/s | 6.4 MB 00:06
## 略
完了しました!
# dnf upgrade
メタデータの期限切れの最終確認: 0:19:29 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!
OK。
4. SELINUX
鎮まり給え。
# getenforce
Enforcing
# vi /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled #変更
一度再起動し、再度状態確認。
# getenforce
Disabled
鎮まりました。
5. Firewall
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enpXXX
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
初期状態を確認。httpとhttpsを追加。
# firewall-cmd --add-port=80/tcp --permanent
success
# firewall-cmd --add-port=443/tcp --permanent
success
続いてリロード。
# firewall-cmd --reload
success
再度確認。
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enpXXX
sources:
services: cockpit dhcpv6-client ssh
ports: 80/tcp 443/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
OK。
6. chrony
CentOS8ではntpからchronyに変更になりました。CentOS7では別途インストールしていましたが、今回はインストールせずに設定だけ。
# vi /etc/chrony.conf
#pool 2.centos.pool.ntp.org iburst
pool ntp.jst.mfeed.ad.jp iburst #変更
# chronyc sources
506 Cannot talk to daemon
あれ、起きていない?
# systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor pr
Active: inactive (dead)
Docs: man:chronyd(8)
man:chrony.conf(5)
...skipping...
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor pr
Active: inactive (dead)
Docs: man:chronyd(8)
man:chrony.conf(5)
眠っているので起こします。目覚めよchronyのパウアー。
# systemctl start chronyd
# systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor pr
Active: active (running) since WWW YYYY-mm-dd hh:ii:ss JST; 1s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 5991 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=ex
Process: 5987 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUC
Main PID: 5989 (chronyd)
Tasks: 1 (limit: 26213)
Memory: 1.8M
CGroup: /system.slice/chronyd.service
mq5989 /usr/sbin/chronyd
ついでに起動時に自動起動するように変更しておきましょう。
# systemctl enable chronyd
Created symlink /etc/systemd/system/multi-user.target.wants/chronyd.service →
usr/lib/systemd/system/chronyd.service.
# chronyc sources
210 Number of sources = 3
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- ntp2.jst.mfeed.ad.jp 2 6 17 4 -2711us[-2711us] +/- 65ms
^- ntp3.jst.mfeed.ad.jp 2 6 17 3 -12us[ -12us] +/- 78ms
^* ntp1.jst.mfeed.ad.jp 2 6 17 4 -9601ns[+1430us] +/- 50ms
これで確認もOK。
7. リポジトリ追加
続いてepel
とremi
を追加します。
# dnf -y install epel-release
## 略
完了しました!
# dnf -y update
## 略
完了しました!
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-8.rpm
http://rpms.famillecollet.com/enterprise/remi-release-8.rpm を取得中
## 略
Verifying... ################################# [100%]
準備しています... ################################# [100%]
更新中 / インストール中...
1:remi-release-8.1-1.el8.remi ################################# [100%]
# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
OK。
# vi /etc/yum.repos.d/remi.repo
[remi]
enabled=1
リポジトリ有効化。
ちなみに
# ls /etc/yum.repos.d/
CentOS-AppStream.repo CentOS-Extras.repo CentOS-Sources.repo epel-modular.repo epel.repo
CentOS-Base.repo CentOS-HA.repo CentOS-Vault.repo epel-playground.repo remi-modular.repo
CentOS-CR.repo CentOS-Media.repo CentOS-centosplus.repo epel-testing-modular.repo remi-safe.repo
CentOS-Debuginfo.repo CentOS-PowerTools.repo CentOS-fasttrack.repo epel-testing.repo remi.repo
PHPをインストールしたいのでremi-php74.repo
があってほしいのですが、見当たらず。検索しても特にヒットしないのでスルー(結果として、予想通りPHPのところで手戻り発生)。
8. Apache
# dnf -y install httpd-devel
## 略
完了しました!
# dnf -y install mod_ssl
## 略
完了しました!
# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
# systemctl start httpd
起動・自動起動もOK。
# mv -i /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/autoindex.conf.org
# mv -i /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/userdir.conf.org
# mv -i /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org
いらない設定を読み込まないように。
# systemctl restart httpd
#
OK。
9. PHP (remiリポジトリ指定だと7.2が入るので注意)
# dnf info php74 --enablerepo=remi,remi-php74
エラー: 不明な repo : 'remi-php74'
一応確認コマンドはあるのですが、上述の通りremi-php74
は存在しないので……うーん。
# dnf info php74 --enablerepo=remi
メタデータの期限切れの最終確認: 0:00:13 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
利用可能なパッケージ
名前 : php74
バージョン : 1.0
リリース : 1.el8.remi
Arch : x86_64
サイズ : 6.6 k
ソース : php74-1.0-1.el8.remi.src.rpm
リポジトリー : remi
概要 : Package that installs PHP 7.4
ライセンス : GPLv2+
説明 : This is the main package for php74 Software Collection,
: that install PHP 7.4 language.
名前 : php74
バージョン : 1.0
リリース : 1.el8.remi
Arch : x86_64
サイズ : 6.6 k
ソース : php74-1.0-1.el8.remi.src.rpm
リポジトリー : remi-safe
概要 : Package that installs PHP 7.4
ライセンス : GPLv2+
説明 : This is the main package for php74 Software Collection,
: that install PHP 7.4 language.
remi
リポジトリのみにすると通る。行けるか?
# dnf -y install php php-devel php-pdo php-mysqlnd php-mbstring php-gd php-pear php-pecl-apc-devel zlib-devel php-xml php-mcrypt
メタデータの期限切れの最終確認: 0:01:58 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
一致した引数がありません: php-mcrypt
エラー: 一致するものが見つかりません: php-mcrypt
あら、php-mcrypt
見付からず。仕方ないので削って再度実行。
# dnf -y install php php-devel php-pdo php-mysqlnd php-mbstring php-gd php-pear php-pecl-apc-devel zlib-devel php-xml
## 略
完了しました!
できました。
# php -v
PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
げ、デフォルトの7.2が入ってしまいました……。
# dnf remove php
## 略
完了しました!
# dnf module reset php
## 略
依存関係が解決しました。
=========================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=========================================================================================================================
モジュールの再設定:
php
トランザクションの概要
=========================================================================================================================
これでよろしいですか? \[y/N\]: y
完了しました!
とりあえずアンインストールとリセットを試します。
# php -v
PHP 7.2.11 (cli) (built: Oct 9 2018 15:09:36) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
あるぇ~?
# dnf module install -y php:remi-7.4
メタデータの期限切れの最終確認: 0:09:37 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
エラー:
問題 1: package php-devel-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 requires php-cli(x86-64) = 7.2.11-2.module_el8.1.0+209+03b9a8ff, but none of the providers can be installed
- cannot install both php-cli-7.4.3-1.el8.remi.x86_64 and php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
- problem with installed package php-devel-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
- cannot install the best candidate for the job
- package php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 is excluded
- package php-devel-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 is excluded
- package php-devel-7.3.5-3.module_el8.1.0+252+0d4e049c.x86_64 is excluded
- package php-devel-7.2.27-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.2.27-1.el8.remi.x86_64
- package php-devel-7.2.28-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.2.28-1.el8.remi.x86_64
- package php-devel-7.3.14-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.3.14-1.el8.remi.x86_64
- package php-devel-7.3.15-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.3.15-1.el8.remi.x86_64
- nothing provides libedit-devel(x86-64) needed by php-devel-7.4.2-1.el8.remi.x86_64
- nothing provides libedit-devel(x86-64) needed by php-devel-7.4.3-1.el8.remi.x86_64
問題 2: problem with installed package php-pecl-apcu-devel-5.1.12-2.module_el8.1.0+209+03b9a8ff.x86_64
- package php-pecl-apcu-devel-5.1.17-5.el8.remi.7.4.x86_64 requires php-devel(x86-64), but none of the providers can be installed
- package php-pecl-apcu-devel-5.1.18-1.el8.remi.7.4.x86_64 requires php-devel(x86-64), but none of the providers can be installed
- package php-devel-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 requires php-cli(x86-64) = 7.2.11-2.module_el8.1.0+209+03b9a8ff, but none of the providers can be installed
- package php-pecl-apcu-devel-5.1.12-2.module_el8.1.0+209+03b9a8ff.x86_64 requires php-pecl-apcu(x86-64) = 5.1.12-2.module_el8.1.0+209+03b9a8ff, but none of the providers can be installed
- package php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 requires php-common(x86-64) = 7.2.11-2.module_el8.1.0+209+03b9a8ff, but none of the providers can be installed
- package php-pecl-apcu-5.1.12-2.module_el8.1.0+209+03b9a8ff.x86_64 requires php(api) = 20170718-64, but none of the providers can be installed
- package php-pecl-apcu-5.1.12-2.module_el8.1.0+209+03b9a8ff.x86_64 requires php(zend-abi) = 20170718-64, but none of the providers can be installed
- cannot install both php-common-7.4.3-1.el8.remi.x86_64 and php-common-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64
- cannot install the best candidate for the job
- package php-cli-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 is excluded
- package php-common-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 is excluded
- package php-devel-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 is excluded
- package php-devel-7.3.5-3.module_el8.1.0+252+0d4e049c.x86_64 is excluded
- package php-pecl-apcu-5.1.12-2.module_el8.1.0+209+03b9a8ff.x86_64 is excluded
- package php-pecl-apcu-devel-5.1.12-2.module_el8.1.0+209+03b9a8ff.x86_64 is excluded
- package php-pecl-apcu-devel-5.1.17-1.module_el8.1.0+252+0d4e049c.x86_64 is excluded
- package php-common-7.2.27-1.el8.remi.x86_64 is excluded
- package php-common-7.2.28-1.el8.remi.x86_64 is excluded
- package php-devel-7.2.27-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.2.27-1.el8.remi.x86_64
- package php-devel-7.2.28-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.2.28-1.el8.remi.x86_64
- package php-devel-7.3.14-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.3.14-1.el8.remi.x86_64
- package php-devel-7.3.15-1.el8.remi.x86_64 is excluded
- nothing provides libedit-devel(x86-64) needed by php-devel-7.3.15-1.el8.remi.x86_64
- nothing provides libedit-devel(x86-64) needed by php-devel-7.4.2-1.el8.remi.x86_64
- nothing provides libedit-devel(x86-64) needed by php-devel-7.4.3-1.el8.remi.x86_64
- package php-pecl-apcu-devel-5.1.17-1.el8.remi.7.2.x86_64 is excluded
- package php-pecl-apcu-devel-5.1.17-2.el8.remi.7.3.x86_64 is excluded
- package php-pecl-apcu-devel-5.1.18-1.el8.remi.7.2.x86_64 is excluded
- package php-pecl-apcu-devel-5.1.18-1.el8.remi.7.3.x86_64 is excluded
(競合するパッケージを置き換えるには、コマンドラインに '--allowerasing' を追加してみてください または、'--skip-broken' を 追加して、インストール不可のパッケージをスキップしてください または、'--nobest' を追加して、最適候補のパッケージのみを使 用しないでください)
まぁ、そうなるな。
# dnf module install -y php:remi-7.4 --allowerasing
## 略
アップグレード済み:
php-cli-7.4.3-1.el8.remi.x86_64 php-common-7.4.3-1.el8.remi.x86_64 php-gd-7.4.3-1.el8.remi.x86_64
php-mbstring-7.4.3-1.el8.remi.x86_64 php-mysqlnd-7.4.3-1.el8.remi.x86_64 php-pdo-7.4.3-1.el8.remi.x86_64
php-pecl-apcu-5.1.18-1.el8.remi.7.4.x86_64 php-process-7.4.3-1.el8.remi.x86_64 php-xml-7.4.3-1.el8.remi.x86_64
インストール済み:
php-fpm-7.4.3-1.el8.remi.x86_64 php-json-7.4.3-1.el8.remi.x86_64
nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch oniguruma-6.8.2-1.el8.x86_64
削除しました:
php-devel-7.2.11-2.module_el8.1.0+209+03b9a8ff.x86_64 php-pecl-apcu-devel-5.1.12-2.module_el8.1.0+209+03b9a8ff.x86_64
完了しました!
置き換わったっぽいですね。
# php -v
PHP 7.4.3 (cli) (built: Feb 18 2020 11:53:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
OK。
エラーログ設定
# mkdir /var/log/php
# chown apache /var/log/php
# chmod 755 /var/log/php
ディレクトリを作成、権限設定。
# vi /etc/php.ini
;expose_php = On
expose_php = Off
;date.timezone =
date.timezone = 'Asia/Tokyo'
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting = E_ALL & ~E_DEPRECATED
;error_log = syslog
error_log = "/var/log/php/php_errors.log"
設定変更。
# systemctl restart httpd
#
OK。
10. MySQL
# dnf info mysql
メタデータの期限切れの最終確認: 0:27:25 時間前の YYYY年mm月dd日 hh時ii分ss秒 に実施しました。
利用可能なパッケージ
名前 : mysql
バージョン : 8.0.17
MySQLのバージョン確認。そのまま行けそうなので行ってみます。
# dnf install @mysql:8.0
## 略
完了しました!
# mysql --version
mysql Ver 8.0.17 for Linux on x86_64 (Source distribution)
OKです。
# systemctl enable mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
# systemctl start mysqld
起動・自動起動もOK。
# mysql_secure_installation
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Please set the password for root here.
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
MySQLの初期設定。パスワードも設定。
# vi /etc/my.cnf
[mysqld]
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow_query.log
long_query_time=1.0
log_timestamps=SYSTEM
skip-character-set-client-handshake
設定変更。
# systemctl restart mysqld
#
OK。
11. Webmin
# dnf -y install perl-Net-SSLeay
CentOS-8 - AppStream 8.0 kB/s | 4.3 kB 00:00
CentOS-8 - Base 7.0 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 2.9 kB/s | 1.5 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64 8.0 kB/s | 5.1 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 28 kB/s | 10 kB 00:00
Remi's Modular repository for Enterprise Linux 8 - x86_64 3.0 kB/s | 3.5 kB 00:01
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64 1.4 kB/s | 3.0 kB 00:02
Remi's test RPM repository for Enterprise Linux 8 - x86_64 2.8 kB/s | 3.0 kB 00:01
パッケージ perl-Net-SSLeay-1.88-1.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
あら、入っているのね。
# dnf -y install http://download.webmin.com/download/yum/webmin-1.941-1.noarch.rpm
## 略
完了しました!
# vi /etc/webmin/miniserv.conf
## 末尾に追加
allow=127.0.0.1 XXX.XXX.XXX.XXX/24
設定変更。
# /etc/rc.d/init.d/webmin restart
Stopping Webmin server in /usr/libexec/webmin
Starting Webmin server in /usr/libexec/webmin
Failed to bind to port 10000 : Address already in use
Could not listen on any ports
なん……だと……。
仕方ないのでポート変更。
# vi /etc/webmin/miniserv.conf
port=11000
## 略
listen=11000
# /etc/rc.d/init.d/webmin restart
Stopping Webmin server in /usr/libexec/webmin
Starting Webmin server in /usr/libexec/webmin
#
OK。
# firewall-cmd --add-port=11000/tcp --permanent
success
# firewall-cmd --reload
success
Firewallを開けて、接続テスト。
OK。
- 「Dashboard」タブ
- Webmin
- Webmin configurations
- Language and Locale
- Webmin configurations
- Webmin
Japanese(JA_JP.UTF-8)
を選択。
- 「ダッシュボード」タブ
- Webmin
- Webmin設定
- Webmin テーマ
- ナビゲーションメニューオプション
- Color pallete
- ナビゲーションメニューオプション
- Webmin テーマ
- Webmin設定
- Webmin
Midnight Blue
を選択。
12. postfix
# less /etc/postfix/main.cf
/etc/postfix/main.cf: そのようなファイルやディレクトリはありません
最小限構成だと存在しない。パス。
13. vsftpd
# dnf -y install vsftpd
## 略
完了しました!
OK。
# vi /etc/vsftpd/vsftpd.conf
## 匿名ユーザ無効化
anonymous_enable=NO #デフォルトのまま
## タイムアウト時間変更
#idle_session_timeout=600
idle_session_timeout=600
#data_connection_timeout=120
data_connection_timeout=60
## ASCIIモード有効
#ascii_upload_enable=YES
ascii_upload_enable=YES
#ascii_download_enable=YES
ascii_download_enable=YES
## ホームディレクトリより上へのアクセス制限
#chroot_local_user=YES
chroot_local_user=YES
#chroot_list_enable=YES
chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
chroot_list_file=/etc/vsftpd/chroot_list
## IPv4有効
#listen=NO
listen=YES
## IPv6無効化
#listen_ipv6=YES
listen_ipv6=NO
## アクセスユーザ制御
userlist_deny=NO
## ユーザごとの設定ファイルを指定
user_config_dir=/etc/vsftpd/user_conf
## ローカル時間有効
use_localtime=YES
## パッシブモード有効
pasv_promiscuous=YES
pasv_min_port=50000
pasv_max_port=50030
## .htaccessをFTPソフトから見られるようにする
force_dot_files=YES
設定変更。
# firewall-cmd --add-service=ftp --permanent
success
# firewall-cmd --reload
success
ポートを開ける。
# vi /etc/vsftpd/chroot_list
## 空ファイル作成
## root以外参照できないように権限変更
# ls -al /etc/vsftpd/chroot_list
-rw-r--r-- 1 root root 0 2月 22 16:48 /etc/vsftpd/chroot_list
# chmod 600 /etc/vsftpd/chroot_list
# ls -al /etc/vsftpd/chroot_list
-rw------- 1 root root 0 2月 22 16:48 /etc/vsftpd/chroot_list
FTPユーザ作成・ルートディレクトリ指定
# useradd dummyuser
# passwd dummyuser
ユーザー dummyuser のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
# vi /etc/vsftpd/user_list
## 末尾に追加したユーザを追記
dummyuser
# mkdir /etc/vsftpd/user_conf
# vi /etc/vsftpd/user_conf/dummyuser
## 以下の1行を記述
local_root=/var/www/dummy/
設定変更。
# systemctl start vsftpd.service
# systemctl enable vsftpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
起動・自動起動OK。
仮想サイト
とりあえずサーバ名がない場合に代理で応答する仮想サイトを作る(参考: Apacheで存在しない仮想サイトを指定すると意図しないサイトが表示される|Ewig Leere(Lab))。
ディレクトリ作成
# mkdir /var/www/dummy
# mkdir /var/www/dummy/web
仮想サイト作成
以降、Webminから設定。
- 仮想ホストの作成
- アドレス: 全てのアドレス
- ポート: 80
- ドキュメントのルート:
/var/www/dummy/web
- サーバ名:
dummy.example.com
- 仮想サーバの追加: 選択したファイル:
/etc/httpd/conf.d/1.conf
- ディレクティブのコピー元: どこにもない
#Options None ##コメントアウト
## 以下を追加
AllowOverride All
Options FollowSymLinks
ディレクティブの編集を実施。.htaccess
用。
# systemctl restart httpd
#
OK。
仮想サイトにアクセスできることを確認。
さらに、FTPソフトでログインできること、ルートディレクトリから上に遡れないことを確認。OKです。
ひとまずここまで。
参考
基本
- WPサイト引っ越し(2018/11/20)|Ewig Leere(Lab)
- サーバー構築の基本 CentOS Linux 8のインストール後に設定する12の項目 – レムシステム エンジニアブログ
- CentOS8で遊んでみる – Qiita
- CentOS 8 と CentOS 7 の違い、yum やミドルウェアにも要注意 – サーバー構築と設定 ~初心者にも分かりやすく解説~
- CentOSでサーバーの時刻がずれる場合の修正方法 – サーバー構築と設定 ~初心者にも分かりやすく解説~
- CentOS8 (Minimum) インストールしてとんでもなかったこと一覧 – NorthPage
- CentOS8はどれぐらい変わったか(パッケージ編) – NorthPage
- 【新旧対応】Linuxでの自動起動の設定方法を解説
Apache
- Apacheで存在しない仮想サイトを指定すると意図しないサイトが表示される|Ewig Leere(Lab)
- Apacheで存在しない仮想サイトを指定すると意図しないサイトが表示される(SSL版) – Ewig Leere(Lab2)
PHP
MySQL
vsftpd
- vsftpdに対して 500 OOPS のエラーが出たので対処しようとして、結果的にルートディレクトリから遡れないように設定した話 – Ewig Leere(Lab2)
- `.htaccess`等のドット始まりのファイルがFTPソフト上で見られない – Ewig Leere(Lab2)
Cockpit
ヘッドレスCMSのCockpitではない。