zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

AmazonLinuxにRoundCube1.2.4入れたメモ

MySQL

su -
yum install -y mysql56-server.x86_64 mysql56-devel.x86_64
service mysqld start
/usr/libexec/mysql56/mysql_secure_installation
---------
Enter current password for root (enter for none):そのままEnter
Change the root password? [Y/n]Y
NewPassword:ぱすわーど
Remove anonymous users? [Y/n]Y
Disallow root login remotely? [Y/n]Y
Remove test database and access to it? [Y/n]Y
Reload privilege tables now? [Y/n] Y
---------
chkconfig mysqld on
chkconfig --list mysqld

mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off

Apache2.4

su - 
yum install httpd24 httpd-devel24 mod24_ssl

service httpd configtest
service httpd start
ps aux | grep http
  • バーチャルホスト設定追記
cd /etc/httpd/conf.d
vi roundcube.conf
  • apache2.4は「Require all granted」してやらないと外部からのアクセスができない
<VirtualHost *:80>
     ServerName   roundcube.hogehoge.jp

     (省略)

  <Directory "/">
    Options FollowSymLinks Includes
    AllowOverride All

    Require all granted
  </Directory>

</VirtualHost>

PHP5.6

yum install php56 php56-mysqlnd php56-mbstring php56-devel php56-fpm

- ログディレクトリ作成
mkdir /var/log/php/
chmod 755 /var/log/php/

- error_logディレクトリの所有者をapacheに変更
chown apache:apache /var/log/php/

- 設定ファイル変更
cp -p /etc/php.ini /etc/php.ini.org
vi /etc/php.ini
- 以下を設定
date.timezone = Asia/Tokyo

# ログローテーション設定を追加
# 日次、24週(6ヶ月)保存、圧縮

echo '/var/log/php/*.log {
    daily
    rotate 24
    compress
    missingok
    notifempty
}' > /etc/logrotate.d/php

RoundCube インストール

# 手順書:https://github.com/roundcube/roundcubemail/wiki/Installation
# RHEL系はこちらのスクリプトが参考になる
# https://gist.github.com/rcubetrac/cc85589b837d58680a86e7b5cbb09a4f#file-centos_rhel_install-sh

# Get Roundcube!
cd /usr/local/src/
wget -O rndcb-1.2.4-complete.tar.gz https://github.com/roundcube/roundcubemail/releases/download/1.2.4/roundcubemail-1.2.4-complete.tar.gz
tar xvzf rndcb-1.2.4-complete.tar.gz

# 配置
mkdir /var/www/
mkdir .rndcb
mv /usr/local/src/roundcubemail-1.2.4 /var/www/html/roundcube 
chown root:root -R /var/www/html/roundcube 
chmod 777 -R /var/www/html/roundcube/temp/ 
chmod 777 -R /var/www/html/roundcube/logs/

# RoundCube インストール用に MySQL ユーザーとデータベースを作成する
mysql -A -uroot -p
mysql> CREATE DATABASE roundcubemail;
mysql> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcubemail@localhost IDENTIFIED BY 'ぱすわーど';
mysql> flush privileges;


# データベースを初期化
cd /var/www/html/roundcube 
mysql -p roundcubemail < SQL/mysql.initial.sql

WebUIからセットアップを続行します

http://ドメイン/installer/

【AWS】Route53にてワイルドカードドメインを使用したときの優先順位を確認

Route53のRecord Set

Name Type Value
*.hogehoge.com A ALIAS(ELBへのエイリアス
fuga.hogehoge.com A xxx.xxx.xxx.1

このとき、fuga.hogehoge.comはワイルドカードドメイン(ELBへのエイリアス)に食われないで設定値をちゃんと返すか不安だったので確認した。

テスト結果

nslookup hogehoge.com
→Address: ELBのIPが返る

nslookup fuga.hogehoge.com
→Address: xxx.xxx.xxx.1:設定されたIPが返る。ワイルドカードドメインには食われていない

nslookup aaa.hogehoge.com
→Address: ELBのIPが返る:ワイルドカードドメインが効いている

→他のネームサーバ同様、ワイルドカードドメインサブドメインに設定されていない「その他」が来たときのみキャッチする模様。

【AWS】EC2からのメール送信には、上限緩和申請とDNSの逆引きの登録申請が必要

【概要】

初期状態の EC2 インスタンスでは Eメールを送信する際に利用する SMTP ポート 25番の通信に制限が設けられています。
EC2からのメール送信には、上限緩和申請とDNSの逆引きの登録申請が必要。
サーバ構築当初はmailコマンドでメールが遅れていたのに、気が付くと送れなくなってた、みたいのはこれ。
緩和申請しないと、25番ポートが閉じられてメールが送れなくなる→メール送信しようとするとSMTPタイムアウトエラーとなる。
詳細は以下
EC2 インスタンスのポート 25 の抑制を解除する

【参考URL】

blog.ybbo.net
例によって上記まんまです。

【作業メモ】

※Root Account Required なので、IAMではなくルートアカウントでAWSにログインします
サービスの上限緩和を申請 »
から開始。

[ケースの作成]

  • 内容:サービス制限の増加
  • 制限タイプ:EC2 Email

→日本語対応画面が無いので表示されるリンクから英語の画面に遷移

  • Email Address*:ログインしていれば自動で記入されています。
  • Use Case Description*:Entry confirmation email of campaign site.など、ある程度正確な内容を書かないとハネられるようになってきました(前はテキトーでも通ってた……)
  • Elastic IP Address 1
  • Elastic IP Address 2

→メール送信元となるEC2につけている、 EIP(グローバルIP)を記入。事前に正引き設定(mail.hoge.comなど後述する逆引きと呼応できれば良い)がされていること。

  • Reverse DNS Record for EIP 1
  • Reverse DNS Record for EIP 2

→先ほどのEIPの逆引きレコードの指定(mail.hoge.comなど)

これでSubmitすれば完了です。

■翌日以下の様なメールが届いた

Your AWS Inquiry
====
We've reviewed and approved your request for the removal of the EC2 e-mail sending limitations on your Amazon Web Services account. There are no longer limitations on your account for any IPs and instances under your account. If you requested removal of e-mail sending limits on Amazon Elastic IPs, they've also been removed.
====

OK

WordPress(Nginx+php-fpm)でのマルチドメイン運用

複数ドメイン:hogehoge.jp fugafuga.jp hogefuga.com を一つのWordPressで運用する場合のメモ。

【サマリ】

Wordpressのマルチサイト機能を利用し、かつ
- サブディレクトリ型
- サブドメイン
- 複数ドメイン
のうち、複数ドメイン型を作成する。

【参考サイト】

www.templateking.jp
基本的には上記情報に従います。
上記との違いとして、主にnginxのconfの書き方について以下にメモしておきます

1)WordPressのインストール

普通に管理画面にアクセスできるところまで。
※ドキュメントルート直下にインストールしてください

2)wp-config.phpの編集

以下を追記します

/** マルチサイト機能 */
define('WP_ALLOW_MULTISITE', true);
3)ネットワークの設定

WP管理画面-[ダッシュボード]-[ツール]-[ネットワークの設置]-[WordPress サイトのネットワークの作成]で、「サブドメイン」を選択し、「インストール
→"サイトネットワーク作成機能を有効化するには、次の手順を実行します。"として、wp-configの修正ファイルおよびapache用の設定が表示されます。

4)ネットワークの有効化作業

上記画面の作業を実行します。

  • wp-config.phpへの追記
/srv/www/hogehoge/ にある wp-config.php ファイルの
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
という行の上に、次の内容を追加
==========
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'hogehoge.jp');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
==========

※この際、先に設定していた
> define('WP_ALLOW_MULTISITE', true);
は削除する。重複しないように。

  • nginxのconfへの追記

ドメイン型の場合は不要。
※nginxについてはhttps://wpdocs.osdn.jp/Nginx にサブディレクトリ型マルチサイト向けの記述がある。
/hogehoge/wp-admin/hoge.phpなどへのアクセスがあった場合に、/hogehoge/を消してアクセスしてるような。
今回はドメインベースなので以下はいらないですが、念のためメモしておきます。

  # Rewrite multisite '.../wp-.*' and '.../*.php'.
  if (!-e $request_filename) {
    rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
    rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last;
    rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
5)サイトネットワーク管理者での設定

「サイトネットワーク管理者」メニューが追加されていることを確認。
言語など初期設定をしておく

6)サイトの追加

サイトの新規追加で各ドメイン用のサイトを追加する。
※サイトのアドレスは後で変更するので適当に。

7)プラグインのインストール

マルチドメイン対応プラグインを追加します
WordPress MU Domain Mapping:インストール

8)プラグインの設定

プラグインが正常にインストールされると、「サイトネットワーク管理者」の「設定」メニューに「Domain Mapping」と「Domains」という項目が追加されます。初期画面で表示されるメッセージに従って作業を行います。

Please copy sunrise.php to /srv/www/hogehoge/wp-content/sunrise.php and ensure the SUNRISE definition is in /srv/www/hogehoge/wp-config.php
# →上記をコピーする
cp /srv/www/hogehoge/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php /srv/www/hogehoge/wp-content/sunrise.php


→再読み込みすると次は以下のメッセージ

Please uncomment the line define( 'SUNRISE', 'on' ); or add it to your /srv/www/hogehoge/wp-config.php

# wp-config.phpに以下を追記
-----
/** WordPress MU Domain Mapping */
define( 'SUNRISE', 'on' );
-----
9)ドメインマッピング

[サイト]-[すべてのサイト]でURLを選択するとid=xxとサイトIDが表示されるので、こちらをメモ、
[設定]-[Domains]で上記でメモしたSiteIDとドメインマッピングします。

10)リンクの設定

[サイトネットワーク管理]-[サイト]で各サイトを編集し、サイトアドレス (URL)をそれぞれの期待するドメインに変更して保存します。

11)各ドメインをnginxで受けるようにしておく

nginxのserver_nameにエイリアスを追加して流入できるようにしておくのを忘れずに

ex.

  server_name hogehoge.jp fugafuga.jp hogefuga.com;

以上。

HPのノートPC:dv2805(AMD Sempron)にWindows10を入れたら画面のちらつきが酷かったのでドライバ入れたら治ったメモ

HPのノートPC:dv2805にWindows10を入れたところ、edge(Win10の標準ブラウザ)のちらつきが酷くて(Chromeは全然大丈夫だった)、nvidiaの該当ドライバ入れたら治ったのでメモしときます。

Windows10への道のり

もともとはVistaマシンだったものを、Windows7で使っていた。
Windows10に上げて、HPのサイトから各種ドライバ

HPのプリンター、ラップトップ、デスクトップのソフトウェアおよびドライバのダウンロード | HP®カスタマーサポート

を入れてみたのだけど、edgeのちらつきが酷くてとても使えなかった。スタートメニューのチラつきもひどくて、いかにもドライバが足りていない感じ。
→グラフィックは NVIDIA® GeForce® 7150M + nForce 630M (チップセットに内蔵)

解決

nvidiaの該当ドライバを上から被せたところ、ちらつきはおさまった。
Windows7-32bit版はこちら
NVIDIA DRIVERS GeForce Release 179 for Notebooks
http://www.nvidia.co.jp/download/driverResults.aspx/9008/jp

2017年02月現在、Windows10への無償アップグレードがまだできてる

倉庫の奥からWindows7PCがゴロゴロ出てきて、Windows10へ無償Upgradeし損ねた……と凹んでいたら
www.ikt-s.com
上記のような記事が。え、そうなの、と思って試してみたら、2017年2月現在、まだアップグレードできる模様。
アップグレードする際にプロダクトキー入力欄がでるけど、下端にある”再インストール”を選べばそのまま通る。
※Windows10のクリーンインストールではなく、Windows7/8からアップグレードする必要があります。
→検証記事
www.ikt-s.com

ざっくりメモ

1.以下からMediaCreationToolをDLして実行
Windows 10 のダウンロード

2.[他のPC用にインストールメディアを作る]
で該当PC用のエディションを選択、USBメモリ等にインストールメディアを展開する

3.作成したインストールメディア入りUSBメモリを該当のWindows7/8のPCに挿してsetup.exeを実行、アップグレードを実施する

4.プロダクトキー入力欄にて、プロダクトキーはブランクのまま、下端の
「このPCにWindows10を再インストールしています」
を選択。
f:id:zuntan02:20170210130553p:plain

5.ライセンス認証状況を確認
Windows10にアップグレード後、インターネットに接続した状態で
[設定]→[更新とセキュリティ]→[ライセンス認証]で
Windows10のデジタルライセンスが付与されて認証済みとなっていることを確認。
f:id:zuntan02:20170313184145p:plain
以上。

mailコマンドで日本語件名(Subject)のメールを送りたい

【背景】

nkfで変換するのが良いとのことだったがうまくいかず。

【解決】

メールのSubjectをISO-2022-JPBase64エンコードすればよい
www.bungu-do.jp

例)「日本語です」→「=?ISO-2022-JP?B?GyRCRnxLXDhsJEckORsoQg==?=」

mail -s '=?ISO-2022-JP?B?GyRCRnxLXDhsJEckORsoQg==?=' hogehoge@fuga.jp <メール本文ファイルなど

おまけ

複数行あるファイル(デイリーで記録されるログ)を降順で

cat ranking.log | sort -r |  mail -s '=?ISO-2022-JP?B?GyRCRnxLXDhsJEckORsoQg==?=' hogehoge@fuga.jp