fc2ブログ
topimg.jpg


【問題解決】Linux上でChrome動かすとハングするんだが・・・・

●問題事象
ubuntsでChromeでタブを4〜5個くらい同時に開くと、
CPU使用率が100%になりOS全体がハングしてしまう。

●システム構成
VMwareの仮想マシン

OS:ubunts16.04
CPU:2コア4スレッド(4vCPU)
メモリ:2GB
SSD:30GB

●原因
仮想メモリ(物理メモリ+SWAP領域)の枯渇。
メモリ2GBの設定だと、Linux普通にインストールすると、SWAP領域(厳密にはSWAPファイル)が
1.5GBしか取られていない。つまり利用可能な仮想メモリ空間は3.5GB。
これを食いつぶしてしまったため、スワップすることもできず、
枯渇したアドレス空間を頑張ってCPU使って解放しようとしていた模様。


●調査過程
swapが多発。CPUのsysが80〜90%。

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 1288100 117684 5408 320932 123 0 426 12 3070 5057 24 23 53 0 0
12 0 1378380 69076 2612 346172 775 19130 12362 19484 5930 9174 31 46 22 1 0
5 1 1458028 95056 1996 284900 1378 17911 23188 18746 6885 10217 37 56 6 1 0
4 1 1459804 53040 1176 227504 2475 2313 50680 3255 7506 8752 35 60 4 1 0
6 0 1459804 61068 452 190400 1081 949 129885 1656 8775 7180 19 77 2 3 0
8 0 1459804 55020 240 175832 273 239 220570 570 8769 6959 7 89 0 4 0
14 1 1459696 75916 632 179484 652 1216 112210 1555 7322 6523 17 80 1 2 0
10 0 1459804 53188 1120 183680 638 885 200169 1174 9239 7167 7 88 1 4 0
4 2 1459804 53360 292 176952 137 126 235447 610 9990 7667 4 91 1 4 0
10 2 1459804 53292 268 150020 129 106 335422 359 9564 7958 1 93 2 5 0


kswapd0が1コアCPU張り付き。あとはChromeが暴走。

top - 02:15:36 up 1 day, 56 min, 1 user, load average: 9.01, 3.88, 2.61
Tasks: 358 total, 6 running, 272 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 79.4 sy, 0.0 ni, 2.0 id, 6.6 wa, 0.0 hi, 11.2 si, 0.0 st
KiB Mem : 2012860 total, 53392 free, 1807912 used, 151556 buff/cache
KiB Swap: 1459804 total, 0 free, 1459804 used. 5868 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
59 root 20 0 0 0 0 R 95.0 0.0 10:56.43 kswapd0
10474 user01 20 0 889912 91408 1388 S 54.8 4.5 0:18.18 chrome
10127 user01 20 0 683712 29380 1480 R 45.9 1.5 1:08.49 chrome
10091 user01 20 0 1174968 59436 400 R 31.9 3.0 1:16.28 chrome
10619 user01 20 0 838968 62780 36 R 25.9 3.1 1:04.07 chrome
2087 user01 20 0 3741572 52312 0 R 19.7 2.6 15:55.85 gnome-she+
10244 user01 20 0 1079464 113860 0 S 14.2 5.7 0:24.91 chrome


Swap領域が1459804 kB確保されているうち、SwapFreeが0KBと枯渇している。


MemTotal: 2012860 kB
MemFree: 54160 kB
MemAvailable: 8592 kB
Buffers: 288 kB
Cached: 103072 kB
SwapCached: 348 kB
Active: 496524 kB
Inactive: 500292 kB
Active(anon): 492796 kB
Inactive(anon): 493068 kB
Active(file): 3728 kB
Inactive(file): 7224 kB
Unevictable: 13596 kB
Mlocked: 13596 kB
SwapTotal: 1459804 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 906892 kB
Mapped: 29536 kB
Shmem: 78712 kB
KReclaimable: 48280 kB
Slab: 130092 kB
SReclaimable: 48280 kB
SUnreclaim: 81812 kB
KernelStack: 15328 kB
PageTables: 66304 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2466232 kB
Committed_AS: 8754448 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
Percpu: 40960 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 839552 kB
DirectMap2M: 1257472 kB
DirectMap1G: 0 kB


●対策〜SWAP領域の拡張
現状のSWAPファイル確認

user01@user01-virtual-machine:~$ free
total used free shared buff/cache available
Mem: 2012860 569652 1158080 424 285128 1273280
Swap: 1459804 1205368 254436
user01@user01-virtual-machine:~$ swapon -s
ファイル名 タイプ サイズ 使用済み 優先順位
/swapfile file 1459804 1205192 -2


root@user01-virtual-machine:/# ls -lh /
合計 1.4G
drwxr-xr-x 2 root root 4.0K 10月 24 02:47 bin
drwxr-xr-x 3 root root 4.0K 10月 24 02:50 boot
(略)
-rw------- 1 root root 1.4G 10月 24 02:23 swapfile
(略)


追加SWAPファイルの作成とマウント

root@user01-virtual-machine:/# dd if=/dev/zero of=/swapfile_ext bs=1M count=4000
4000+0 レコード出力
4194304000 bytes (4.2 GB, 3.9 GiB) copied, 13.9483 s, 301 MB/s

root@user01-virtual-machine:/# ls -l
合計 5555920
drwxr-xr-x 2 root root 4.0K 10月 24 02:47 bin
drwxr-xr-x 3 root root 4.0K 10月 24 02:50 boot
(略)
-rw------- 1 root root 1.4G 10月 24 02:23 swapfile
-rw------- 1 root root 4.0G 10月 30 03:04 swapfile_ext
(略)


oot@user01-virtual-machine:/# chmod 600 swapfile_ext
root@user01-virtual-machine:/# mkswap swapfile_ext
スワップ空間バージョン 1 を設定します。サイズ = 3.9 GiB (4194299904 バイト)
ラベルはありません, UUID=528e2e94-28b9-4472-9060-6f3a40cbc6c0

root@user01-virtual-machine:/# swapon swapfile_ext


結果確認

root@user01-virtual-machine:/# free
total used free shared buff/cache available
Mem: 2012860 1624288 80408 35752 308164 179384
Swap: 5555800 1303840 4251960

root@user01-virtual-machine:/# swapon -s
ファイル名 タイプ サイズ 使用済み 優先順位
/swapfile file 1459804 1303840 -2
/swapfile_ext file 4095996 0 -3


拡張したSWAPファイルの自動マウント設定の追加
root@user01-virtual-machine:/# vi /etc/fstab
 ※下記のように、/swapfile_ext の行を追記
root@user01-virtual-machine:/# cat /etc/fstab
UUID=739e0959-4a53-452a-8fef-dbed1e7e9ce9 / ext4 errors=remount-ro 0 1
/swapfile none swap sw 0 0
/swapfile_ext none swap sw 0 0



上記対策実施後は、Chromeのタブ10個以上開いてもハングしなくなった。
物理メモリは多く積まれるようになっても、SWAP領域の確保は重要!
スポンサーサイト



  1. 2019/10/30(水) 04:04:47|
  2. Linux/Unix
  3. | トラックバック:0
  4. | コメント:0

MariaDBのDBファイル格納パスを変更すると起動に失敗する

●問題
MariaDBが起動できない。
以下のようにDBファイル格納パスを変更すると、systemctl start mariadb コマンドの実行に失敗する。
[root@localhost]# vi /etc/my.cnf.d/server.cnf
(修正後)
[mysqld]
datadir=/data/mysql        #手動で追加

 
ログには、起動コマンド実行時、以下のようなエラーがでている。
/data/mysqlにテストファイルを作ることができない的なエラーが出ている。
[root@localhost]# tail -f /var/log/mariadb/mariadb.log
160904 17:13:15 mysqld_safe Starting mysqld daemon with databases from /data/mysql
160904 17:13:15 [Note] /usr/libexec/mysqld (mysqld 5.5.50-MariaDB) starting as process 14657 ...
160904 17:13:15 [Warning] Can't create test file /data/mysql/ip-172-31-18-50.lower-test
160904 17:13:15 InnoDB: The InnoDB memory heap is disabled
160904 17:13:15 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160904 17:13:15 InnoDB: Compressed tables use zlib 1.2.7
160904 17:13:15 InnoDB: Using Linux native AIO
160904 17:13:15 InnoDB: Initializing buffer pool, size = 128.0M
160904 17:13:15 InnoDB: Completed initialization of buffer pool
160904 17:13:15  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
160904 17:13:16 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended

 
しかし、権限で特におかしいところはない。
[root@localhost]# ls -l /data
total 8232
drwxrwxrwx. 5 mysql  mysql     4096 Sep  4 18:46 mysql

 
●原因
結果として、原因はSELinuxだった。
あまり綺麗な切り分けはできていないが、以下の対策を実施したところ、
正常に起動することができた。

 
●対策
SELinuxの無効化。
[root@localhost]# setenforce 0
[root@localhost]# vi /etc/selinux/config
(修正前)
SELINUX=enforcing
(修正後)
SELINUX=disabled

 
●参考
Debian系Linuxでdatadirを変更したらmysqlが起動しない
http://qiita.com/twainy@github/items/ce6364d786f55cbdd080
  1. 2016/09/05(月) 08:54:37|
  2. Linux/Unix
  3. | トラックバック:0
  4. | コメント:0

DHCP環境でIP変わったらWordpressにアクセスできなくなった

 
●問題
Wordpressの環境構築後にサーバのOS再起動したら、
OS再起動に伴い、DHCPの都合でサーバのIPアドレスが変わったが、
変更後のIPでブラウザからWordpressにアクセスできなくなった。
 
●原因
旧アドレスが
http://192.168.160.112/wordpress/
新アドレスが
http://192.168.160.113/wordpress/
とすると、
メインの画面は新アドレス192.168.160.113でアクセスできるが、
それ以外のcssやら画像やら他ページへのリンクやら、
あらゆるコンテンツが旧アドレス192.168.160.112のままになっていたため。
これらのコンテンツも実際のIPは192.168.160.113なので、当然アクセスできない。
Wordpressは相対パスで情報持ってくれないらしい。困った。
 
●対策1
調べてみると、Wordpressの結構あるあるなトラブルなようで、
下記「参考」サイトにある
「アドレス変更したらWordPressが壊れた」がわかりやすかった。
 
MySQLにログインして、下記の2行の値を、新IPで更新すれば良いとのこと。
まだ、コンテンツを作っていない場合は、これで済む模様。
 
・ログイン
[root@localhost]# mysql -u root -p
 
・状態確認
MariaDB [wordpress]>  select * from wp_options where option_name = 'siteurl';
+-----------+-------------+----------------------------------+----------+
| option_id | option_name | option_value                     | autoload |
+-----------+-------------+----------------------------------+----------+
|         1 | siteurl     | http://192.168.160.112/wordpress     | yes    |
+-----------+-------------+----------------------------------+----------+
MariaDB [wordpress]>  select * from wp_options where option_name = 'home';
+-----------+-------------+----------------------------------+----------+
| option_id | option_name | option_value                     | autoload |
+-----------+-------------+----------------------------------+----------+
|         2 | home        | http://192.168.160.112/wordpress     | yes  |
+-----------+-------------+----------------------------------+----------+
 
・更新
MariaDB [wordpress]> update wp_options set option_value = 'http://192.168.160.113/wordpress' where option_name = 'siteurl';
MariaDB [wordpress]> update wp_options set option_value = 'http://192.168.160.113/wordpress' where option_name = 'home';
 
●対策2
ついでに、IPアドレスも固定化しとく。
 
・IPアドレス確認
[root@localhost]# ifconfig -a
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 192.168.160.113  netmask 255.255.255.0  broadcast 192.168.160.255
・ゲートウェイIP確認
[root@localhost]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.160.2   0.0.0.0         UG    100    0        0 eno16777728
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.160.0   0.0.0.0         255.255.255.0   U     100    0        0 eno16777728
・NIC設定ファイル修正
[root@localhost]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
(修正前)
BOOTPROTO="dhcp"
(修正後)
BOOTPROTO="static"
IPADDR="192.168.160.113" #←追加
NETMASK="255.255.255.0" #←追加
GATEWAY="192.168.160.2" #←追加
・NIC再起動
[root@localhost]# /etc/sysconfig/network-scripts/ifdown ifcfg-eno16777728
[root@localhost]# /etc/sysconfig/network-scripts/ifup ifcfg-eno16777728
 
なお、DNSサーバは自動でゲートウェイのIPになっていた。
[root@localhost]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.160.2
 
Wordpress、amazonのEC2とかで運用するときは、ホスト名変更に注意した方がいいね。
 
 
●参考
アドレス変更したらWordPressが壊れた
https://www.agilegroup.co.jp/technote/wordpress-site-change.html
【CentOS6】インストール後のNICの有効化
http://192168111.blog71.fc2.com/blog-entry-66.html
VMWareWorkstationの仮想ネットワークアダプタ
http://192168111.blog71.fc2.com/blog-entry-15.html
  1. 2016/09/05(月) 01:49:26|
  2. Linux/Unix
  3. | トラックバック:0
  4. | コメント:0

CentOS7.2にWordPress4.6をインストール

CentOS7.2にWordPress4.6をインストールしたので、その覚書。
 
 
●環境
・CentOS 7.2 (全部込み込みインストール) on VMwareWorkstation
 
●必要物
・パッケージ
・Apache HTTP Server
・httpd 2.4
・PHP
・php 5.4
・MariaDB
・mariadb 5.5
・mariadb-server 5.5
・mariadb-libs 5.5
・PHP関連モジュール
・phpMyAdmin 4.4 →MySQLへの操作を行うためのWeb画面インターフェース(オプション)
・php-mysql 5.4 →PHPとMySQLとの連携モジュール
・php-mbstring 5.4 →日本語等のマルチバイト文字対応のためのモジュール
・mod_php →PHPとApacheとの連携モジュール(php 5.4に含まれている模様)
・ワードプレス本体
・WordPress 4.6 日本語版
 
※PHP 5.6以上、MySQL 5.6以上または MariaDB バージョン 10.0 以上が推奨環境である。
 PHP 5.2.4 以上、かつ MySQL 5.0 以上であれば WordPress は動作するが、サポートは終了している。
 以下の手順では、CentOSのyum標準リポジトリではPHP 5.4、mariaDB 5.5が最新版のため、サポート外ではあるが、
 これを利用した手順にしている。PHP 5.6、MySQL 5.6のインストール方法については、「参考」サイト参照。
 
 
●手順概要
1. 必要物のインストール
1.1 パッケージインストール
1.2 ワードプレス本体インストール
2. Apacheのセットアップ
2.1 httpd設定ファイル修正
2.2 httpdサービス再起動
3. Linuxセキュリティ関係の設定変更
3.1 Firewallの穴あけ
3.2 SE Linuxの無効化
4. DBのセットアップ
4.1 MariaDB設定ファイル修正
4.2 MariaDBサービス起動
4.3 MySQL Secure Installation実行
4.4 MariaDB内でのデータベース作成、ユーザ作成
5. Wordpressのセットアップ
5.1 PHPとDBの接続設定
5.2 Wordpressのインストール
6.(おまけ)各サービスのOS起動時自動起動設定
6.1 httpd自動起動
6.2 mariadb自動起動
7.(おまけ)phpMyAdminのアクセス確認
7.1 アクセス確認
 
●手順詳細
1. 必要物のインストール
1.1 パッケージインストール
・リポジトリの追加
オプションのphpMyAdminをインストールするため、epelリポジトリを追加。
[root@localhost]# yum -y install epel-release
通常時は見ないように、無効化しておく。
[root@localhost ~]# vi /etc/yum.repos.d/epel.repo
(修正前)
[epel]
enabled=1
(修正後)
[epel]
enabled=0
 
・Apache,PHP,MariaDB,PHP関連モジュールのインストール
mariadb5.5、mariadb-server5.5をインストールすると、依存性の関係でmariadb-libsもインストールされる。
phpMyAdminのインストールのインストール時に、依存性の関係でphp-mysql、php-mbstringもインストールされる。
[root@localhost]# yum install httpd
パッケージ httpd-2.4.6-40.el7.centos.4.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install php
パッケージ php-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost yum.repos.d]# yum install mariadb mariadb-server
パッケージ mariadb-5.5.50-1.el7_2.x86_64 はインストール済みか最新バージョンです
パッケージ mariadb-server-5.5.50-1.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost yum.repos.d]# yum install mariadb-lib
パッケージ mariadb-libs-5.5.50-1.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install phpMyAdmin  --enablerepo=epel
Running transaction
 インストール中          : php-mbstring-5.4.16-36.3.el7_2.x86_64localhost        1/9
 インストール中          : php-php-gettext-1.0.11-12.el7.noarchlocalhost         2/9
 インストール中          : php-bcmath-5.4.16-36.3.el7_2.x86_64localhost          3/9
 インストール中          : libtidy-0.99.0-31.20091203.el7.x86_64localhost        4/9
 インストール中          : php-tidy-5.4.16-4.el7.x86_64localhost                 5/9
 インストール中          : php-tcpdf-6.2.11-1.el7.noarchlocalhost                6/9
 インストール中          : php-tcpdf-dejavu-sans-fonts-6.2.11-1.el7.noarch       7/9
 インストール中          : php-mysql-5.4.16-36.3.el7_2.x86_64localhost           8/9
 インストール中          : phpMyAdmin-4.4.15.7-1.el7.noarchlocalhost             9/9
(略)
[root@localhost]# yum install php-mysql
パッケージ php-mysql-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install php-mbstring
パッケージ php-mbstring-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
[root@localhost]# yum install mod_php
パッケージ php-5.4.16-36.3.el7_2.x86_64 はインストール済みか最新バージョンです
 
1.2 ワードプレス本体インストール
・ダウンロード&解凍
[root@localhost]# wget https://ja.wordpress.org/latest-ja.tar.gz
[root@localhost]# tar xvzf latest-ja.tar.gz
・解凍後資材を、自分で決めたWeb資材公開用ディレクトリへ移動
[root@localhost]# mkdir /data/web
[root@localhost]# mv wordpress /data/web
・apache用に所有者・所有グループ変更
[root@localhost]# chown -R apache.apache /data/web
  ・MySQL用のファイル格納場所作成、所有者・所有グループ変更
[root@localhost]# mkdir /data/mysql
[root@localhost]# chown -R mysql.mysql /data/mysql
 
 
2. Apacheのセットアップ
2.1 httpd設定ファイル修正
・/etc/httpd/conf/httpd.confを以下のように修正
[root@localhost]#vi /etc/httpd/conf/httpd.conf
(修正前)
Listen 80
DocumentRoot "/var/www/html"
<Directory "/var/www">
   AllowOverride None
   # Allow open access:
   Require all granted
</Directory>
(修正後)
Listen 80 ←お好みのポート番号
DocumentRoot "/data/web"
<Directory "/data/web">
   AllowOverride All ←Wordpressのパーマリンク設定において、.htaccessによるapache設定へのアクセス許可が必要。
   # Allow open access:
   Require all granted
</Directory>
 
2.2 httpdサービス再起動
・サービス起動
[root@localhost]# systemctl start httpd
・サービス状態確認
[root@localhost]# systemctl status httpd
● httpd.service - The Apache HTTP Server
  Loaded: loaded (/etc/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Active: active (running) since 日 2016-09-04 13:30:51 JST; 4h 36min ago
    Docs: man:httpd(8)
          man:apachectl(8)
Main PID: 51398 (httpd)
  Status: "Total requests: 207; Current requests/sec: 0; Current traffic:   0 B/sec"
  CGroup: /system.slice/httpd.service
          tq51398 /usr/sbin/httpd -DFOREGROUND
          tq51400 /usr/libexec/nss_pcache 1966088 off /etc/httpd/alias
          tq51401 /usr/sbin/httpd -DFOREGROUND
          tq51403 /usr/sbin/httpd -DFOREGROUND
          tq51404 /usr/sbin/httpd -DFOREGROUND
          tq51405 /usr/sbin/httpd -DFOREGROUND
          tq51406 /usr/sbin/httpd -DFOREGROUND
          tq51592 /usr/sbin/httpd -DFOREGROUND
 
 
3. Linuxセキュリティ関係の設定変更
3.1 Firewallの穴あけ
・RHEL7からは、iptablesではなく、firewalldというサービスが稼働している。
   デフォルトではOSインストール後から稼働している。
[root@localhost]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
  Active: active (running) since 日 2016-09-04 06:42:03 JST; 7h ago
  Main PID: 1219 (firewalld)
  CGroup: /system.slice/firewalld.service
  mq1219 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
   
・CUIからの設定は大変なので、GUIで設定する。
 以下のコマンドを実行し、GUIの設定画面を起動。
[root@localhost]# firewall-config
 
・GUI上で、以下のような操作を行う。
一時的なアクセス許可
設定>実行時>public>http のチェックボックスにチェックを入れる
永続的なアクセス許可  
設定>永続>public>http のチェックボックスにチェックを入れる
   
3.2 SE Linuxの無効化
・外部からのアクセスが失敗
 http://IPアドレス/wordpress にWebブラウザからアクセスしても、アクセス禁止のメッセージが表示され、
 コンテンツが表示されない。シスログを確認すると、SELinux関連のエラーメッセージでていた。 
[root@localhost]# tail /var/log/messages
Sep  4 13:37:36 localhost python: SELinux is preventing /usr/sbin/httpd from getattr access on the file /data/web/wordpress/index.php
 
 ということで、SELinuxを無効化する。
 本当は適切にポリシー設定すべきだが、面倒なので、とりあえず無効化して先に進める。
 
・状態確認
[root@localhost]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
  Max kernel policy version:      28
 
・一時的な無効化
[root@localhost]# setenforce 0
 
・永続的な無効化
[root@localhost]# vi /etc/selinux/config
(修正前)
SELINUX=enforcing
(修正後)
SELINUX=disabled
 
・状態確認
[root@localhost]# sestatus
SELinux status:                 enabled ←OS再起動後にdisableになる
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive ←一時的な無効化により、解除されている
Mode from config file:          disabled
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
 
4. DBのセットアップ
4.1 MariaDB設定ファイル修正
/etc/my.cnf.d/server.cnfを以下のように修正する。
なお、/usr/share/mysql配下に設定ファイルのテンプレートがあるため、それをコピーする手順としている。
[root@localhost]# cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf
[root@localhost]# vi /etc/my.cnf.d/server.cnf
(修正前)
[client]
[mysqld]
[mysqldump]
[mysql]
[myisamchk]
[mysqlhotcopy]
(修正後)
[client]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
default-character-set = utf8    #手動で追加
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K
server-id       = 1
character-set-server = utf8   #手動で追加
datadir=/data/mysql        #手動で追加
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
 
4.2 MariaDBサービス起動
・サービス起動
[root@localhost]# systemctl start mariadb
・サービス状態確認
[root@localhost]# systemctl status mariadb
● mariadb.service - MariaDB database server
  Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
  Active: active (running) since 日 2016-09-04 14:38:26 JST; 1s ago
 Process: 57244 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
 Process: 57089 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 57243 (mysqld_safe)
  CGroup: /system.slice/mariadb.service
          tq57243 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
          mq57399 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mari...
念のため、指定したパスに、データベースファイルが作成されているかも確認。
[root@localhost]# ls -l /data/mysql/
合計 36892
-rw-rw----. 1 mysql mysql    16384  9月  4 15:32 aria_log.00000001
-rw-rw----. 1 mysql mysql       52  9月  4 15:32 aria_log_control
-rw-rw----. 1 mysql mysql  5242880  9月  4 15:32 ib_logfile0
-rw-rw----. 1 mysql mysql  5242880  9月  4 15:32 ib_logfile1
-rw-rw----. 1 mysql mysql 18874368  9月  4 15:32 ibdata1
drwx------. 2 mysql mysql     4096  9月  4 15:32 mysql
drwx------. 2 mysql mysql     4096  9月  4 15:32 performance_schema
drwx------. 2 mysql mysql        6  9月  4 15:32 test
 
4.3 MySQL Secure Installation実行
・mysql_secure_installationスクリプト実行
[root@localhost]#  mysql_secure_installation
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
Set root password? [Y/n] y
... Success!
 
Remove anonymous users? [Y/n] y
... Success!
 
Disallow root login remotely? [Y/n] y
... Success!
 
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
 
Reload privilege tables now? [Y/n] y
... Success!
 
Cleaning up...
 
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
 
Thanks for using MariaDB!
 
4.4 MariaDB内でのデータベース作成、ユーザ作成
・MariaDBへrootユーザでログイン
[root@localhost]# mysql -u root -p
・wordpressデータベースの作成
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
+--------------------+
・wpユーザの作成
MariaDB [wordpress]> use mysql
Database changed
MariaDB [mysql]> SELECT user, host FROM user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
| root | localhost |
+------+-----------+
MariaDB [mysql]> create user wp@localhost IDENTIFIED BY "password";  ←パスワードは適切な値に設定
MariaDB [mysql]> SELECT user, host FROM user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
| root | localhost |
| wp   | localhost |
+------+-----------+
・wpユーザへの権限付与
MariaDB [(none)]> show grants for wp@localhost;
+-----------------------------------------------------------------------------------------------------------+
| Grants for wp@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wp'@'localhost' IDENTIFIED BY PASSWORD '*2478C0C06DEE42FD161\809890AIUSH27ELfaA1A2' |
+-----------------------------------------------------------------------------------------------------------+
MariaDB [(none)]> grant all privileges on wordpress.* to wp@localhost;
MariaDB [(none)]> show grants for wp@localhost;
+-----------------------------------------------------------------------------------------------------------+
| Grants for wp@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wp'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wp'@'localhost'                                                 |
+-----------------------------------------------------------------------------------------------------------+
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit
Bye
 
 
5. Wordpressのセットアップ
5.1 PHPとDBの接続設定
・ブラウザから、以下のURLへアクセス
http://IPアドレス/wordpress
WordPress へようこそ画面(http://IPアドレス/wordpress/wp-admin/setup-config.php)にリダイレクトされる
・「さあ、始めましょう」ボタンを押下
・データベース接続のために必要な以下の情報を入力
データベース名 wordpress
ユーザ名 wp
パスワード password
データベースのホスト名 localhost
テーブル接頭辞 wp_
・「インストール実行」ボタンの押下
/data/web/wordpress/wp-config.phpファイルにDB接続情報が記載される
 
5.2 Wordpressのインストール
・「Wordpressの有名な5分間インストールプロセス」画面に、必要情報を入力
サイトのタイトル テスト環境Wordpress
ユーザー名 wpuser
パスワード *********
メールアドレス root@localhost.localdomain
・「Wordpressをインストール」ボタンを押下
 
以上で、Wordpressのセットアップ完了。
 
 
6.(おまけ)各サービスのOS起動時自動起動設定
6.1 httpd自動起動
  [root@localhost]#  systemctl list-unit-files |grep httpd
httpd.service                               disabled
[root@localhost]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /etc/systemd/system/httpd.service.
[root@localhost]#  systemctl list-unit-files |grep httpd
httpd.service                               enabled
 
6.2 mariadb自動起動
[root@localhost]#  systemctl list-unit-files |grep mariadb
mariadb.service                             disabled
[root@localhost]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@localhost]#  systemctl list-unit-files |grep mariadb
mariadb.service                             enabled
 
7.(おまけ)phpMyAdminのアクセス確認
7.1 アクセス確認
・サーバ内のWebブラウザから、以下のURLにアクセスし、phpMyAdmin画面が表示されるかを確認する。
http://localhost/phpMyAdmin
※デフォルトでは、ローカルホストからのアクセスからしか許可されていない。
●参考
MySQL 5.7 を CentOS 7 に yum インストールする手順
http://weblabo.oscasierra.net/installing-mysql57-centos7-yum/
CentOS 7 に PHP 5.6 を yum でインストールする手順
http://weblabo.oscasierra.net/centos7-php56-install/
パーマリンクの使い方
https://wpdocs.osdn.jp/%E3%83%91%E3%83%BC%E3%83%9E%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
CentOS7 firewalldの設定
http://www.unix-power.net/centos7/firewalld.html
5.4.2. SELinux の無効化
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Enabling_and_Disabling_SELinux-Disabling_SELinux.html
CentOSにWordPressをインストールする
http://qiita.com/speg03/items/516c5c0ca727b47c3d23
CentOS 7 : MariaDB インストール、及び初期設定
http://server.etutsplus.com/centos-7-mariadb-install-and-mysql-secure-installation/
CentOS 7 EPEL リポジトリ追加
http://server.etutsplus.com/centos-7-epel-repository-install/
  1. 2016/09/04(日) 18:30:50|
  2. Linux/Unix
  3. | トラックバック:0
  4. | コメント:0

VMware-Toolsのサービス起動が失敗している件

カーネルアップデートしたら、VMware-toolsのサービス起動が失敗していた。
 
●事象詳細と対処
・状態確認
[root@localhost ~]# systemctl status vmware-tools
● vmware-tools.service - SYSV: Manages the services needed to run VMware software
  Loaded: loaded (/etc/rc.d/init.d/vmware-tools)
  Active: failed (Result: exit-code) since 日 2016-09-04 06:42:04 JST; 2min 7s ago
    Docs: man:systemd-sysv-generator(8)
 Process: 1214 ExecStart=/etc/rc.d/init.d/vmware-tools start (code=exited, status=1/FAILURE)
 
9月 04 06:42:35 localhost.localdomain systemd[1]: Starting SYSV: Manages the services needed to run VMware software...
9月 04 06:42:03 localhost.localdomain vmware-tools[1214]: Checking acpi hot plug[  OK  ]
9月 04 06:42:03 localhost.localdomain vmware-tools[1214]: Starting VMware Tools services in the virtual machine:
9月 04 06:42:03 localhost.localdomain vmware-tools[1214]: Switching to guest configuration:[  OK  ]
9月 04 06:42:03 localhost.localdomain vmware-tools[1214]: Guest filesystem driver:[失敗]
9月 04 06:42:04 localhost.localdomain vmware-tools[1214]: Mounting HGFS shares:[失敗]
9月 04 06:42:04 localhost.localdomain systemd[1]: vmware-tools.service: control process exited, code=exited status=1
9月 04 06:42:04 localhost.localdomain systemd[1]: Failed to start SYSV: Manages the services needed to run VMware software.
9月 04 06:42:04 localhost.localdomain systemd[1]: Unit vmware-tools.service entered failed state.
9月 04 06:42:04 localhost.localdomain systemd[1]: vmware-tools.service failed.
 
・対策
参考サイトによると、上記のエラーは
VMware-toolsがカーネルのファイルライブラリに依存関係を持っているが故に発生していた模様。
対策として、vmware-config-tools.plを実行し、再構成すれば良いと書いてある。
[root@localhost ~]# /usr/bin/vmware-config-tools.pl
Initializing...
Making sure services for VMware Tools are stopped.
 
Stopping Thinprint services in the virtual machine:
  Stopping Virtual Printing daemon:                                   done
Stopping vmware-tools (via systemctl):                     [  OK  ]
 
The module vmci has already been installed on this system by another installer
(略)
 
 
・再状態確認
[root@localhost ~]# systemctl status vmware-tools
● vmware-tools.service - SYSV: Manages the services needed to run VMware software
  Loaded: loaded (/etc/rc.d/init.d/vmware-tools)
  Active: active (exited) since 日 2016-09-04 06:49:16 JST; 1s ago
    Docs: man:systemd-sysv-generator(8)
 Process: 18778 ExecStop=/etc/rc.d/init.d/vmware-tools stop (code=exited, status=0/SUCCESS)
 Process: 19033 ExecStart=/etc/rc.d/init.d/vmware-tools start (code=exited, status=0/SUCCESS)
9月 04 06:49:15 localhost.localdomain systemd[1]: Starting SYSV: Manages the services needed to run VMware software...
9月 04 06:49:16 localhost.localdomain vmware-tools[19033]: Checking acpi hot plug[  OK  ]
9月 04 06:49:16 localhost.localdomain vmware-tools[19033]: Starting VMware Tools services in the virtual machine:
9月 04 06:49:16 localhost.localdomain vmware-tools[19033]: Switching to guest configuration:[  OK  ]
9月 04 06:49:16 localhost.localdomain vmware-tools[19033]: Guest filesystem driver:[  OK  ]
9月 04 06:49:16 localhost.localdomain vmware-tools[19033]: Mounting HGFS shares:[失敗]
9月 04 06:49:16 localhost.localdomain systemd[1]: Started SYSV: Manages the services needed to run VMware software.
 
なお、Mounting HGFS shares:[失敗]が発生しているが、これはホストOSとゲストOSのファイル共有機能を有効にすれば解決するらしい。
今は、同機能を意図的に無効にしているので、無視することとする。
 
 
●参考
VMware Tools fail to start after a Linux guest operating system kernel upgrade (2050592)
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2050592
  1. 2016/09/04(日) 07:28:35|
  2. Linux/Unix
  3. | トラックバック:0
  4. | コメント:0
次のページ