【PHP】気軽に使える正規表現チェッカー
【ヒストリー】プログラムができないのにプログラマーになった人生
私自身、プログラムの理解が遅く、うまく作ることができない時期が長かったので、そのときの思い出と、出来るようになったきっかけをブログに書き留めたいと思います。
専門学校でプログラムを学び、プログラムの世界に飛び込んでいったのですが、何を学んでも理解ができなくて、嫌になった時期がありました。
先輩に頼るしかなかった時期
先輩に「どこがわからないの?」と聞かれるのですが、何をどう説明したらいいのかわからない。。。わからなさすぎて「いや・・・・すいません。」の言葉しかでませんでした。
このときの技量は、サンプルを少し改良する程度のことはできるものの、サンプルを応用したり、自分で考えて作ることができませんでした。
期限に間に合わせるために必死になる
納期に間に合わせるために、先輩に迷惑かけながらもやっていくのですが、できない自分に対してのストレスを感じてました。
なんのためにこの仕事をやろうと思ったのかな・・・もっとまじめに勉強してしていれば・・・などマイナス思考なことしか思い浮かばず、どん底まで落ち込みました。
なんでだろう・・・なんでできないの・・・
あるとき、その時勤めていた会社の社長から、きつい一言を言われました。(今だとパワハラw
「君ね。問題外だから、このままだと辞めてもらうことになるよ」
もうね。「ハハ・・・」って感じでしたよ・・・
ダメかなと思ったときに・・・
とあるゲームを作ることになったときに、どうしてもうまく組めなくて悩んでました。
いつも帰り道に、一から仕組みを見直し、どうやったらうまく動かせるのか、頭の中で想像していたその時。
たくさんの花が一斉に咲くように、悩みが解消していく考えができるようになりました。
(ランチの帰りに、ひらめいた記憶がいまだに覚えてる。。。)
徐々にプログラムが理解できるようになった
それ以降は、他のプログラムでも組めるようになり、今の自分があるわけですが、あのひらめきがなければ、プログラマーという道は諦めてたかと思います。
苦しもがきながらも、続けきったからこそ、ひらめいた出来事だったのかもしれません。
【PHP】JpCarbonで祝日判定
前にCarbonを使った日付処理を公開しました。
仕事で祝日を判定する処理が必要なり調べたところ、Composerで「JpCarbon」という祝日を判定できる記事を見つけました。
祝日を判定し祝日であれば、何の祝日なのか表示する
require 'home/○○○/bin/vendor/autoload.php'; use Carbon\Carbon; use JpCarbon\JpCarbon; $dt = new Carbon('2018-12-23'); $st = JpCarbon::createFromDate($dt->year, $dt->month, $dt->day)->holiday; echo $st;
祝日でなければ結果は何も表示されません。
【CentOS7】firewallでポート制御しよう
Apacheサーバーをロードバランサーを使って負荷分散をした際に「memcached」利用することになりました。
memcachedはセキュリティの関係上、IP制限を設定しないといけないためその設定方法をメモ。
ポートの許可
firewall-cmd --add-service=http --zone=public --permanent firewall-cmd --add-service=https --zone=public --permanent firewall-cmd --add-service=mysql --zone=public --permanent
特定のIPだけを許可
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="許可するIPアドレス" port protocol="tcp" port="11211" accept"
↑「11211」はmemcachedのポートです。
設定完了後、下記の反映コマンドを実行することでポート制限が有効になります。
firewallの設定を反映
firewall-cmd --reload
firewallの設定を確認
firewall-cmd --list-all-zones
firewallの起動/停止/確認
service firewalld start service firewalld stop service firewalld status
Apache2.4でのWebアクセス制御
とある事情で国内のみのアクセス制限することになり、下記のサイトからIPリストを取得
早速「.htaccess」で設定したら、サイトが落ちかけました。。。
「.htaccess」はアクセスがあるたびに設定内容を読み込むため、国内のIPリストを4000行書くと、サーバーが応答不能になるほど重くなります。
CentOS7標準の「firewall」で設定しようと思いましたが、検索エンジンを回避方法がわからず。。。
※ユーザーエージェントで回避するみたいですが、設定がよくわからなひ(汗
vhost.conf
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot /example ServerName example.com <Directory "/example"> Options FollowSymLinks AllowOverride All Include /etc/httpd/conf.d/iplist </Directory> </VirtualHost>
バーチャルホストの設定を「/etc/httpd/conf.d/vhost.conf」に書いています。
「example」というフォルダが対象(サンプルなので各自の設定に書き換えてください。
4000行もipを書くため別ファイルに分けました。
iplist
SetEnvIf User-Agent "Googlebot" bok SetEnvIf User-Agent "Slurp" bok SetEnvIf User-Agent "msnbot" bok SetEnvIf User-Agent "bingbot" bok <RequireAny> Require all denied Require env bok Require ip 1.0.16.0/20 Require ip 1.0.64.0/18 Require ip 1.1.64.0/18 # #続きのipをここに記載 # </RequireAny>
設定エラーがでないか「configtest」で確認
service httpd configtest
Syntax OK
と表示されれば問題ないので、Apacheを再起動させます。
service httpd restart
サイトが落とせないのであれば、下記のコマンドで反映できます。
service httpd graceful