CentOS7でファイアーウォールを停止させる

CentOS7でファイアーウォールを停止させる方法。

CentOS7でWebサーバの構築をしていていったんファイアーウォールを停止させていた。
作業で再起動が必要になって再起動をしたらファイアーウォールが有効になったため外部PCからWebサーバへブラウザでアクセスできなくなってしまった。
作業時にファイアーウォールを止めたことを記録していなかったので時間をとられてしまった。

ここにファイアーウォールを停止させるコマンドを残しておく。
systemctl stop firewalld

CakePHPアプリにアクセスするとan internal server error occurredがブラウザに表示された

Windowsで動作していたCakePHPのアプリをLinuxに置いてブラウザからアクセスをしたらan internal server error occurredが表示された。

原因はプロジェクトのディレクトリに適当な権限を付与していなかったため。
以下のディレクトリに権限を付与したらWebページにアクセスすることが確認できた。

chmod 777 project_directory/logs
chmod 777 project_directory/tmp以下

エラーが発生していたときに出力されていたCakePHPのログ。

Error: [RuntimeException] Cache engine Cake/Cache/Engine/FileEngine is not properly configured.

ApacheのログにYou must enable the intl extension to use CakePHP.が出力されていた

ブラウザからWebアプリにアクセスをしようとしたらブラウザの画面になにも表示されなかった。
Apacheのログを見てみると以下のログが出力されていた。

PHP Fatal error:  You must enable the intl extension to use CakePHP.

intlモジュールをインストールしているかどうか確認する。

rpm -qa | grep php | grep intl
# 結果、なにも表示されなかった。

intlモジュールがインストールされていないのでインストールする。

yum install --enablerepo=remi,remi-php56 php-intl -v

rpm -qa | grep php | grep intl
# 結果
# php-intl-5.6.32-1.el7.remi.x86_64

インストールが終わったので再度ブラウザからアクセスすると結果が変わらない。
原因はApacheの再起動をしていなかったためだった。
Apacheの再起動後はログにメッセージが出なくなり解決した。

CentOS7でApacheが立ち上がらなかったときのメモ

CentOS7でApacheが立ち上がらなかったときのメモを残しておく。
原因はSELinuxが有効になっていたことによって権限がなかったためにApacheが起動できなかった。
Apacheのエラーログ

[core:notice] [pid 21109] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[core:emerg] [pid 21109] (13)Permission denied: AH00023: Couldn't create the rewrite-map mutex

対応として外部と接続したりもしないためSELinuxのモードを変更して対処した。

# SELinuxの状態を確認する
getenforce
# 結果
# Enforcing

# Permissiveモードに変更する
setenforce 0

# SELinuxの状態を確認する
getenforce
# 結果
# Permissive

# 詳しい情報がみたいのなら
sestatus

上記のコマンドだと一時的に変更した状態なのでLinuxを再起動すると元のEnforcingモードに戻ってしまう。
ずっと設定を保持させたい場合は/etc/selinux/configを修正する。

CentOS7で確認した。

lnコマンドによるシンボリックリンクの作成

Linuxでシンボリックリンクを作成するときにいつもどちらがリンク先のパスでどちらがシンボリックファイル名を指定すればよいのか忘れてしまう。
また、調べて使用しても逆にしてしまうことがあったので思い出せるように残しておく。

正解

# foo/barディレクトリにlinkというファイル名のシンボリックリンクファイルを作成する。
ln -s foo/bar link
# 結果
# link -> foo/bar

間違い

# 正解の逆を指定した場合。
ln -s link foo/bar
# 結果
# foo/barの中にlink -> linkができてしまう。

CentOS7で確認した。

WinMergeの設定のメモ

システム開発をしていると差分の比較を出したくなるときがある。
そんなときに使っているのがWinMerge。
WinMerge

パソコンを変えたときにいままで使用していた結果にならなくなってしまったので次回に備えて設定のメモを残しておく。

  • 差分の結果出力をツリー表示にしない。
    メニューの「表示」-「ツリー表示」のチェックを外す。
  • subversionの.svnフォルダを比較対象外にする。
    差分を比較するときにフィルタの「Exclude Source Control」を選択する。
  • サブフォルダ内も自動で差分を取りたい。
    差分を比較するときに「サブフォルダも含む」にチェックを入れる。

WinMerge 2.14で確認。

Windows7で英語キーボードをつかうためにレジストリエディタで設定した内容

WINDOWS7で英語キーボードを使おうとしたらそのままではだめだという事がわかった。
だめというのはアットマーク(@)を入力しようとするとダブルクォート(”)になったり、アンダースコア(_)を入力しようとするとイコール(=)になった。

ネットで調べると以下のサイトで実施していることで対応したら解決した。
Windows 7 のキーボードを英語キーボードに変更

手順

  • Windowsキー + Rを押下してファイル名を指定して実行ウインドを立ち上げる。
  • regeditと入力してOKを押下してレジストリエディタを起動する。
  • レジストリエディタでは以下の項目を修正する。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters\LayerDriver JPNを「kbd101.dll」にする。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters\OverrideKeyboardIdentifierを「PCAT_101KEY」にする。
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\i8042prt\Parameters\OverrideKeyboardSubtypeを「0」にする。
  • PCを再起動する。

Microsoftのサポートにも情報があった。
コンピューターに USB キーボードを接続したときに Windows で正しいキーボード レイアウトが使用されないことがある

MySQLでユーザを追加しようとしたらYour password does not satisfy the current policy requirementsメッセージが表示された

MySQLでユーザを追加しようとしたら「Your password does not satisfy the current policy requirements」メッセージが表示された。
訳すと「あなたのパスワードは現在の必要要件を満たさない」ということか。
既存のシステムで使っているパスワードを変更することはできなかったのでパスワードの必要要件や変更方法を探してみる。

現在のパスワードの必要要件はどうやって調べればよいのか?
validate-password-puginがあって、そこにはこう書かれている。

LOW policy tests password length only. Passwords must be at least 8 characters long.

MEDIUM policy adds the conditions that passwords must contain at least 1 numeric character, 1 lowercase character, 1 uppercase character, and 1 special (nonalphanumeric) character.

STRONG policy adds the condition that password substrings of length 4 or longer must not match words in the dictionary file, if one has been specified.

validate_password_policyにはLOW、MEDIUM、STRONGの設定がありLOWが一番やさしい、STRONGが一番きびしい要件になっている。デフォルト値はMEDIUM。

LOWは最低8文字あればパスワードとして許容される。
MEDIUMは数字、大文字英字、小文字英字、記号が最低でも1文字ずつ入っている。かつ、最低8文字以上。
例としては「1Coffee!」はOK。「1Water!」は7文字なのでNG。

LOWに変えてみる。
変えたあとの内容を確認するとLOWになっていることがわかる。

SET GLOBAL validate_password_policy=LOW;
SHOW VARIABLES LIKE 'validate_password%';
# +--------------------------------------+-------+
# | Variable_name                        | Value |
# +--------------------------------------+-------+
# | validate_password_policy             | LOW   |

LOWにしてからユーザを登録すると「a」が8つはユーザ登録ができて「a」が7つはユーザ登録できなかった。

MySQL5.7で確認。

CentOSでグループ、ユーザの追加、変更、削除をする

CentOSでグループ、ユーザの追加、変更、削除をする方法がわからなかったので残しておく。

CentOS7で確認

# グループIDが123のcafeグループを作成する。
groupadd -g 123 cafe

# hogeグループのグループIDを456に変更する。
groupmod -g 456 cafe

# hogeグループを削除する。
groupdel cafe

# グループが作成、変更、削除されたかを確認する。
cat /etc/group

# ユーザIDが123、グループがcafeのcoffeeユーザを作成する。
useradd -u 123 -g cafe coffee

# coffeeユーザのユーザIDを456に変更する。
usermod -u 456 coffee

# coffeeユーザを削除する。
userdel coffee

# ユーザが作成、変更、削除されたかを確認する。
cat /etc/passwd