たくさんのソースコードファイルから最近更新されたファイルだけを抽出したいときがあると思います。
findコマンドで指定した日数以内に更新されたファイルだけを抜き出すことができます。
たとえば2日以内の場合は
1 |
find -regex ".*.class" -mtime -2 -ls |
この例では正規表現も使って.classファイルだけを対象にしています。
在宅プログラマーの備忘録として2005年に始めたブログです。
たくさんのソースコードファイルから最近更新されたファイルだけを抽出したいときがあると思います。
findコマンドで指定した日数以内に更新されたファイルだけを抜き出すことができます。
たとえば2日以内の場合は
1 |
find -regex ".*.class" -mtime -2 -ls |
この例では正規表現も使って.classファイルだけを対象にしています。
WordPressではlanguageディレクトリの中のファイルによって日本語の表記に変換されて表示されます。
具体的には.poファイルの中で英語と日本語のひもづけが行われています。
このファイルを編集するのですが、これだけでは反映されません。
WordPressでは.poファイルではなく、.poファイルがコンパイルされた.moファイルが読みこまれます。
.moファイルはバイナリになっていて直接編集できないのですが、
.poファイルを.moファイルに変換してくれる「Poedit」というソフトがあります。
Poeditの使い方は、まったく難しくないので割愛します。
新規
開く
保存
削除
テキストのみの場合と比べて見栄えがぐっとよくなりますよね。
使い方は、
まず
Font Awesomeの公式サイトから一式ダウンロードします。
ダウンロードしたらzipを解凍してサーバーにアップします。
あとは、ページでCSSをロードするだけ。
1 |
<link rel="stylesheet" href="アップした場所/font-awesome/css/font-awesome.min.css"/> |
(フォルダ名のバージョンは削除しています)
上の4つのアイコンは、以下のように記述すれば表示できます。
1 2 3 4 |
<i class="fa fa-plus"></i> 新規 <i class="fa fa-folder-open-o"></i> 開く <i class="fa fa-floppy-o"></i> 保存 <i class="fa fa-trash-o"></i> 削除 |
簡単ですよね。
とてもたくさんのアイコンが用意されていて、
こちらで探すことができます。
昔はSSL証明書は個人が気軽に導入できるような安いものはありませんでした。
今は千円くらいで取得できるものがあるので個人でも気軽に取得できますよね。
そしてとうとう、SSL証明書は無料で取得できる時代になったようです。
開発サーバー(CentOS6.5)で取得してみました。
(上記の公式サイトで環境ごとに導入方法の説明があります)
まず、EPELリポジトリの追加が必要だそうです。
1 |
yum install epel-release |
これはすでに追加済みでした。
次に、公式サイトからクライアントソフトを直接ダウンロードします。
1 |
wget https://dl.eff.org/certbot-auto |
ダウンロードしたファイルに実行権限をつけて実行します。
1 2 |
chmod +x certbot-auto ./certbot-auto |
ドメイン名とメールアドレスを聞かれるので答えます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
No names were found in your configuration files. Please enter in your domain name(s) (comma and/or space separated) (Enter 'c' to cancel): clouds.tokyo Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): *****@clouds.tokyo (規約に同意するか) (A)gree/(C)ancel A (メールを送ってよいか) (Y)es/(N)o Y IMPORTANT NOTES: - Unable to install the certificate - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/clouds.tokyo/fullchain.pem. Your cert will expire on ****-**-**. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you lose your account credentials, you can recover through e-mails sent to *****@clouds.tokyo. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. |
もうこれで証明書が取得できたようです。
認証メールが来ていたのでメール内のURLをクリックしておきます。
1 |
/etc/letsencrypt/live/clouds.tokyo |
を見ると、たしかに証明書ファイル等があります。
ではApacheの設定を編集して、取得した証明書に切り替えてみます。
1 2 3 |
SSLCertificateFile /etc/letsencrypt/live/clouds.tokyo/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/clouds.tokyo/privkey.pem SSLCACertificateFile /etc/letsencrypt/live/clouds.tokyo/fullchain.pem |
Apacheを再起動して、ブラウザでアクセスして証明書を確認すると、
1 |
認証局: Let's Encrypt |
おお、できてる!
こんなに簡単だとは思いませんでした。
有効期限が90日と短いようですが、定期的に
1 2 |
./certbot-auto renew service httpd restart |
をすればいいみたいですね。
cronに設定しておけば、もうSSL証明書更新作業に煩わされることはありません。たぶん。
まずはSDKをダウンロードします。
Releases · aws/aws-sdk-php · GitHub
ダウンロードしたaws.pharをサーバーにアップロードします。
PHPでインクルードして使う方法は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
require_once('aws.phar'); use Aws\S3\S3Client; use Aws\Common\Enum\Region; try { $client = S3Client::factory(array( 'key' => '(アクセスキーを入れる)' ,'secret' => '(シークレットアクセスキーを入れる)' ,'region' => Region::AP_NORTHEAST_1 //(適宜変更) )); // ファイル取得 $result = $client->getObject(array( 'Bucket' => '(バケットを入れる)' ,'Key' => '(パスを入れる)' )); // S3上にログを残す(必要なければ削除してください) $client->putObject(array( 'Bucket' => '(ログ用のバケットを入れる)' ,'Key' => 'logs/download_log/' . date('Ym') . '/' . $uid . '-' . $pid . '-' . date('YmdHis') ,'Body' => '' )); } catch(Exception $e) { exit('ファイルが見つかりません'); } $len = $result['ContentLength']; $result['Body']->rewind(); $data = $result['Body']->read($len); // output file header("Content-type: (ファイルタイプを指定)"); header("Content-Disposition: attachment; filename=$filename"); header("Content-Length: " . $len); echo $data; |