複数ファイルに.htaccessを設定する

<Files app_a.php>
AuthUserFile .htpasswd
AuthType Basic
AuthName "Web access"
Require valid-user
</Files>

<Files app_b.php>
AuthUserFile .htpasswd
AuthType Basic
AuthName "Web access"
Require valid-user
</Files>

htpasswd用パス作成ツール
http://phpspot.net/php/pghtpasswd%E7%94%A8%E3%83%91%E3%82%B9%E4%BD%9C%E6%88%90%E3%83%84%E3%83%BC%E3%83%AB.html

AWS S3を使おう

新しいバケットを作成します。

capital-technologyというバケットを作成します。

s3にファイルをアップロードします。

なるほど!バケットの下に保存されました。ディレクトリみたいなもん?

ストレージクラスは
1. スタンダード
2. 標準 IA
3. 1ゾーン IA
4. 低冗長化
から選択できる。

basic認証を実装する

switch(true){
	case !isset($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']):
	case $_SERVER['PHP_AUTH_USER'] !== 'admin':
	case $_SERVER['PHP_AUTH_PW'] !== 'test':
		header('WWW-Authenticate: Basic realm="Enter username and password."');
		header('Content-Type: text/plain; charset=utf-8');
		die('このページを見るにはログインが必要です');
}

header('Content-Type: text/html; charset=utf-8');

WWW-Authenticateヘッダ:Webブラウザに対して認証用ダイアログの表示をさせるための指示

ec2のtimezoneをJST-9に変更

バックアップを取りながら進めます。拡張子は皆さんに習って.org
sysconfig/clockは、ZONE=”Asia/Tokyo” UTC=falseにします。

$ date
Sat Jun 23 23:02:34 UTC 2018
$ strings /etc/localtime
TZif2
TZif2
UTC0

$ sudo cp /etc/localtime /etc/localtime.org
$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$ date
Sun Jun 24 08:04:10 JST 2018

$ sudo cp /etc/sysconfig/clock /etc/sysconfig/clock.org
$ sudo vi /etc/sysconfig/clock

OK♪

$ strings /etc/localtime
TZif2
TZif2
JST-9

ここから、crontabを編集
binはcyberduckで一応かくにんしておく。/usr/bin/php

00 02 * * 5 cd /var/local/device/ ; /usr/bin/php -q index.php

:wqで保存して、crondを再起動

$ sudo service crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

OK! ec2からhotmailへ毎週、週間スマホ売上ランキングが飛んでくるようになりました。
hotmailでは、spamは扱いですが、まあいいとしましょう!
シャーディー♪

ec2 でcrontabを確認

crond statusで動いているかをチェック

$ /etc/rc.d/init.d/crond status
crond (pid  2648) is running...

runningですね。

$ chkconfig --list crond
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off

2~5がonになっています。

実行権限をみる。

$ ls -la /etc/crontab
-rw-r--r-- 1 root root 457 Jan  6  2012 /etc/crontab

root? これでいいのか?わからない。先に進む。

cronの実行ログを確認

 sudo tail -f /var/log/cron
Jun 23 19:01:01 ip- run-parts(/etc/cron.hourly)[5578]: finished 0anacron
Jun 23 20:01:01 ip- CROND[5666]: (root) CMD (run-parts /etc/cron.hourly)
Jun 23 20:01:01 ip- run-parts(/etc/cron.hourly)[5666]: starting 0anacron
Jun 23 20:01:01 ip- run-parts(/etc/cron.hourly)[5675]: finished 0anacron
Jun 23 21:01:01 ip- CROND[5801]: (root) CMD (run-parts /etc/cron.hourly)
Jun 23 21:01:01 ip- run-parts(/etc/cron.hourly)[5801]: starting 0anacron
Jun 23 21:01:01 ip- run-parts(/etc/cron.hourly)[5810]: finished 0anacron
Jun 23 22:01:01 ip- CROND[5918]: (root) CMD (run-parts /etc/cron.hourly)
Jun 23 22:01:01 ip run-parts(/etc/cron.hourly)[5918]: starting 0anacron
Jun 23 22:01:01 ip- run-parts(/etc/cron.hourly)[5927]: finished 0anacron

なんだこれは? /etc/cron.hourlyが実行されているように見える。あれ、日付今日?とりあえず、timezone変更が必要だ。

とりあえず/var/localで作業するため、ec2-userの権限を変える。

$ sudo chown -R ec2-user:www /var/local
$ sudo chmod 2775 /var/local
$ find /var/local -type d -exec sudo chmod 2775 {} \;
$ find /var/local -type f -exec sudo chmod 0664 {} \;

crontabでスマホの売上ランキングをmailに送る

スマホの売上ランキング、いつ見たいか?
金曜日は特に見たくないので、月~木のうちのどれかでしょうか。
ということで、

$ crontab -e

localでバッチ処理します。

05     02      *       *       1   cd /home/hoge/local/device/ ; /usr/local/bin/php index.php

う~ん、月曜朝の楽しみが一つ増えました。
ヨシ、OK、この際、後学のため、売れてる機種の並行輸入もやっちゃいましょう♪

写真にgridを入れる

menuの View -> Show -> Grid

これこれ、やりたかったの。

うんうん、OK!
gridの種類を変えたいね。

preference -> Guide, Grid & Sliceですね。
dash, dotにしたり、色をcustomしたり、幅をpixel単位で開けられます。

次はワイヤーにgridを入れる。
なるほど、こういうことか。

1.ワイヤーからphotoshopへ落としていく作業
2.photoshopからコーディングへ落としていく作業
この2つがイマイチ見えん → まずはプロに頼んで成果物ベースで学ぶ。

スマホ売れ筋ランキングをAWSから毎週Gmailに送りたい

Web系の仕事をしていると、どの端末がどれ位売れているか、常に把握しておかないと、話にならない。ということで、、、

foreach($model_data as $value){
	$k = $i + 1;
	echo $k ."位 ".$value . " ". $name_data[$i] . " (".$date_data[$i].")<br>";
	$i++; 
}

まずは、mb_send_mailの実装からか。

凄く簡単だが、

$i = 0;
foreach($model_data as $value){
	$k = $i + 1;
	$body .= $k ."位 ".$value . " ". $name_data[$i] . " (".$date_data[$i].")\n";
	$i++; 
}

mb_language("Japanese");
mb_internal_encoding("utf-8");

$email = "hogehoge@gmail.com";
$subject = "週間スマホランキング";
$to = "hogehogehoge@hotmail.com";

mb_send_mail($to, $subject, $body, "From:".$email);

vagrantからは送れる。

ec2からmb_send_mailを使いたい。使えるか?というか、使えないと困る。
とりあえずテストか。