Note to Self

自分用のメモ置き場

個人的環境構築メモ

随時更新予定

エディター

開発環境

データベース管理

ターミナルソフト

バージョン管理システム

コミュニケーション

開発支援

その他

PHPのmkdir() 関数でエラーが発生した原因と対応方法

PHPのmkdir() 関数でエラーが発生した原因と対応方法

PHPのmkdir() 関数を使ってディレクトリを作成しようとした所、以下のようなエラーが発生した

<?php

mkdir($directoryPath, 0777, true);

PHP Warning:  mkdir(): Permission denied in ~

?>


作成したいディレクトリの親ディレクトリに、PHP を実行している httpd の実行権限がなかったのが原因
権限を付与すると正常に動作した

MySQLで半角カタカナを全角に変換する

MySQLで半角カタカナを全角に変換する

便利な関数は無いため、ストアドファンクションを作成し対応

DROP FUNCTION IF EXISTS kanaToKANA;

DELIMITER //

CREATE FUNCTION kanaToKANA (data TEXT) RETURNS TEXT DETERMINISTIC
BEGIN
  DECLARE kana1_len, kana2_len INT;
  DECLARE kana1_h VARCHAR(62) DEFAULT 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンッャュョァィゥェォ ー。「」、・';
  DECLARE kana1_z VARCHAR(62) DEFAULT 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンッャュョァィゥェォ ー。「」、・';
  DECLARE kana2_h VARCHAR(52) DEFAULT 'ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ';
  DECLARE kana2_z VARCHAR(26) DEFAULT 'ガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ';

  SET kana1_len = CHAR_LENGTH(kana1_z);
  SET kana2_len = CHAR_LENGTH(kana2_z);

  WHILE kana2_len > 0 DO
    SET data = REPLACE(data, SUBSTRING(kana2_h, kana2_len * 2 - 1, 2), SUBSTRING(kana2_z, kana2_len, 1));
    SET kana2_len = kana2_len - 1;
  END WHILE;

  WHILE kana1_len > 0 DO
    SET data = REPLACE(data, SUBSTRING(kana1_h, kana1_len, 1), SUBSTRING(kana1_z, kana1_len, 1));
    SET kana1_len = kana1_len - 1;
  END WHILE;

  RETURN data;
END;
//
DELIMITER ;


-- 正しく変換できるか確認
SELECT hogeKanaName, kanaToKANA(hogeKanaName) FROM t_hoge;

-- 対象レコードを更新
UPDATE t_hoge SET hogeKanaName = kanaToKANA(hogeKanaName);

Linuxで30分以内に変更したファイルを削除する

Linuxで30分以内に変更したファイルを削除する

find を使ってファイルを特定する

find . -type f -mmin -30 -exec rm -f {} \;

※いきなり実行するのは危険なので、必ず対象ファイルを確認してから実行すること

Pythonバージョンアップによる yum の SyntaxErrorについて

以前、python3.6 をインストールした際、エイリアスを変更したことで、yumでエラーが発生した模様

修正前

[root@localhost ~]# ll /usr/bin/python*
lrwxrwxrwx. 1 root root    12 May 31 17:49 /usr/bin/python -> /bin/python3
lrwxrwxrwx. 1 root root     9 Apr 27 03:48 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root  7136 Nov  6  2016 /usr/bin/python2.7
lrwxrwxrwx. 1 root root    14 May 31 17:47 /usr/bin/python3 -> /bin/python3.6
-rwxr-xr-x. 2 root root 11312 Apr  7 23:35 /usr/bin/python3.6
lrwxrwxrwx. 1 root root    26 May 31 17:22 /usr/bin/python3.6-config -> /usr/bin/python3.6m-config
-rwxr-xr-x. 2 root root 11312 Apr  7 23:35 /usr/bin/python3.6m
-rwxr-xr-x. 1 root root   173 Apr  7 23:34 /usr/bin/python3.6m-config
-rwxr-xr-x. 1 root root  3415 Apr  7 23:32 /usr/bin/python3.6m-x86_64-config


リンクを貼り直して対応する

-- python のエイリアスを python3.6 から、python2.7に変更
unlink /bin/python
ln -s /bin/python2 /bin/python


修正後

[root@localhost ~]# ll /usr/bin/python*
lrwxrwxrwx. 1 root root    12 Jul 10 14:14 /usr/bin/python -> /bin/python2
lrwxrwxrwx. 1 root root     9 Apr 27 03:48 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root  7136 Nov  6  2016 /usr/bin/python2.7
lrwxrwxrwx. 1 root root    14 May 31 17:47 /usr/bin/python3 -> /bin/python3.6
-rwxr-xr-x. 2 root root 11312 Apr  7 23:35 /usr/bin/python3.6
lrwxrwxrwx. 1 root root    26 May 31 17:22 /usr/bin/python3.6-config -> /usr/bin/python3.6m-config
-rwxr-xr-x. 2 root root 11312 Apr  7 23:35 /usr/bin/python3.6m
-rwxr-xr-x. 1 root root   173 Apr  7 23:34 /usr/bin/python3.6m-config
-rwxr-xr-x. 1 root root  3415 Apr  7 23:32 /usr/bin/python3.6m-x86_64-config