アクセスログ

2015/03/05 14:42:09
もう3月やんんんん!!!!



消費税増税に備えて、ねこに小判のアップデートとかそろそろ着手しなきゃ。


てことで、今までThe Webalizerを重宝してましたが、デイリー情報が欲しくなったので自作してみました。

基本的に、アクセスログを集計する際には
/var/log/httpd/access_log-yyyymmdd

のファイルを使いますが、phpとかで集計しようとするとアクセス権がござらん!

なので最初に
chown -R apache:apache httpd

として、アクセスできるようにしましょう。


これで90%完成です。



あとは分解して、DBに入れておしゃれにするだけです。

簡単ですね^^






で、出来上がったものがこちら!






まずは年間




次に月間



グラフをクリックするとデイリー詳細に飛ぶようにしてます。

詳細には、

アクセスファイルTOP50、アクセスドメインTOP50、リファラーTOP50を表示してて、



こんな感じになります。

通常のページでは月間の詳細も表示しています。


グラフはhighchartsを使ってみました。

先程の月間からのクリックイベントの入れ方は、
series: {
 cursor: 'pointer',
  point: {
   events: {
    click: function () {
     var loc = "hoge.html";
     window.open(loc, "new");
    }
   }
  }
 }


こんな感じです。

デイリー詳細を別ウィンドウで見たかったので、window.openしてます。



ほんとはjava scriptの中にデータをカンマで作るのが嫌で、他のを使っていたんですが、

そっちはデザイン部分がかなりいけてないので、結局highchartsになりました。






そんなこんなでデイリーも取れて満足してます!

ソースは出しませんが、どうしてもって言うならzipにしてもいいんだからねっ!




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

CentOS7始めました Vol.3

2014/12/02 11:34:35
アベノミクスの恩恵受けすぎワロタwww

Noranekoです^ω^




アプリは絶不調ですが、投資の方が絶好調☆彡


Studio neko投資方法は、






『宵越しの銭はいらねぇ、利益を倍プッシュだ!』












...


......


ふえぇぇ...ジェントルドンナ...




ということで、前回から時間が空きましたが、今回はMTAについて語りましょう。


MTA(Message Transfer Agent)つまりメールサーバですね。



結論から申し上げると、




ぐーぐる






を使うのが楽です!

スペルミスとか、その辺のブログサイト見て間違った値を設定したりと

毎回思うけど、これは結構大変な作業ですね。

なので未来の自分の為に、今回は手順書も作成しました。



んで、CentOS7なんですが、標準MTAがPostfixになっています。

自分もだいぶ前からPostfixに慣れ親しんでいたので良いと思います。


設定の際にIPとか調べようとしたんですが、まさかifconfigまでないとか...
ifconfig
↓
ip a

netstat
↓
ss


短くなることは良いことです!


Postfixが標準になってるなら、Dovecotも入れとけよと思うんですが入ってませんね。

Dovecotのロゴはアウトドアグッズの会社っぽくて良いですね。

こんなん




SASL認証とかで必要な物とかも一緒にインスコしておきましょう!
// dovecotインストール
# yum install dovecot
// SASLインストール
# yum install cyrus-sasl
# yum install cyrus-sasl-md5
# yum install cyrus-sasl-plain

cyrus-sasl-md5がなくて認証がはじかれてました。

どなたかのブログに書いてあって助かりました。


後重要なのはポートの解放
// SMTP 
# firewall-cmd --add-service=smtp --permanent
// Submission
# firewall-cmd --add-port=587 --permanent
// POP3S 
# firewall-cmd --add-service=pop3s --permanent
// 再起動
# systemctl restart firewalld


serviceの名前があるやつとないやつがあって、Submissionはなかったので、

上記のようにポートを指定して開けます。



あとはまってたのが、






SELinux








つかこれ、みんな切ってるでしょ?


インスコした後に最初にこれ切ってるでしょ?



httpdとかDBに関してはこいつは特に悪さしてなかったので放置してたんですが、

Postfixでとうとう悪さをしてきたので、切りました!!
# setenforce 0
# vi /etc/sysconfig/selinux
SELINUX=permissive
# reboot

こんな感じで無効に。




最後にメールの送受信ができなかった時は、
# tail /var/log/maillog 


とにらめっこしながら、原因を追究するしかありません。。。。

SASLのエラーでは、

warning sasl authentication failure internal error ***

SELinuxでのエラーは、

fatal open /etc/postfix/main.cf permission denied

と出てました。


ほんとオラクルのエラーみたいにわかりやすくていいですね!

F*CK :)




P.S.

前回からのCentOS7についての記事ですが、

最小構成インストール時の初期設定の値を表記してます。




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

CentOS7始めました Vol.2

2014/10/06 15:48:18
台風一過でお日様きたあああああああ!

こんな日は家で構築したサーバに、ソフトインスコ作業に限りますね。


そんなわけで前回の続きになります。

インストールが終了し、再起動をすると



この画面になります。

そしたら、

$ su -⏎
Password 


パスワードと出たら前回入力したパスワードを打ち込んでrootになります!

パスワードとか忘れがちなので、自分の誕生日の数字4桁がオススメ☆

次はなんとなくアップデートしましょう!

# yum -y update⏎


-yを付けることによって画面を監視してなくても、

イエスマンでどんどん作業が捗るという魔法の呪文です。


■ MySQLをインスコしよう!

なんとCentOS7ではMySQLがなくなっています!

MySQLの代わりにMariaDBになったらしいです。

今のところ完全な互換性があり、

コマンドも使えるのでとりあえずは一安心です。

# yum -y install mariadb mariadb-server⏎


現在、5.5.37辺りがインスコされます。

それで今回のCentOS7ですが、

以前までのヴァージョンでは

# /etc/init.d/*** restart
# service *** start
# chkconfig


とサービス起動とかしてきましたが、

今回から、

// サービスの状態
# systemctl status ***
// サービス再起動
# systemctl restart ***
// サービス設定再読み込み
# systemctl reload ***
// サービス自動起動登録
# systemctl enable ***


という風にsystemctlでなんかしろって言われますね。

なので、

# systemctl start mariadb⏎
# systemctl enable mariadb⏎


として起動させます。

そしたらあとは、以前のMySQL設定と一緒です

// 初期化
# mysql_secure_installation
// とりあえず入ってみる
# mysql -u root -p


ここまできたらokです。

あと、自分はDBのデータをコマンドで見たり、

webでツールで見たりするのは作業効率が非常に悪いと思っており、

常にツールを使ってデータを見ています。

今回のこのMariaDBもMySQLWorkbenchで繋げることができたので、

ご紹介しておきます。

http://www-jp.mysql.com/products/workbench/

上のリンクからダウンロードできます。

最新のMySQLWorkbench 6.2で確認しました。

話がちょっと飛びますが、このツールを使う際に3306を開けるのでなく、

SSHでトンネリングして使います。



起動したら、こういう画面になります。

この画像ではすでに4つの接続先が登録されています。

接続先を登録するには左上の『+』を押します。



このウィンドウが表示されるので、

[Connection Method] [Standard TCP/IP over SSH]に変更

[SSH Hostname] SSHの接続先(IPとポート番号等)

[SSH Username] SSHのユーザ

[SSH Key File] 秘密鍵がある場合は参照します

[Username] MriaDBに繋ぐMariaDBユーザ

入力後、右下の『Test Connection』を押して接続できるか確認しましょう。

無事接続できたらDBについては終わりにしましょう。


■ phpをインスコしよう!

世界にはいろんな言語がありますが、自分の好きな言語でおk

ただ、フレームワーク系の言語やオブジェクト指向言語を

webで使うのはオススメできません。

テキストボックス一個追加するだけなのに

3、4個のファイルを変更するとかちょっとね…

asp.netの話になるんですがasp.netのポストバックの考えは好きですね。




ってフレームワーク系やん!!!!



言語じゃなくて考え方です><

自分は仕事でいろんなサイトを作ってきましたが、

仕様変更しつつ運用するというのがweb開発では重要なので、

1ページ1ファイル(表示と処理)という考えに行きついています。

この辺の話は長くなりそうだし、相容れないプログラマの聖域なので

自分の好きな言語で好きな書き方で作ればいいんですよ。


ということで、phpをインスコしましょう。

# yum -y install php php-gd php-mbstring php-mysql


最低限これだけあればおkですね。

ヴァージョンは5.4.16です。

そんで依存関係で勝手にhttpdもインスコされています。

ひどい話です。



が、久々にhttpdでもええかなって。

ということでhttpdを使いましょう!

多分すでに動いていると思いますが、

# systemctl start httpd⏎
# systemctl enable httpd⏎


と設定しましょう。

ちなみにヴァージョンは2.4.6でした。

で鯖のurlを叩きましょう。







ほら、見えない!!







多分ですが見えないはずです。

だってポート空いてないから。

なのでiptableしましょう。



……

…………



command not found




そうなのです。

CentOS7はここも違うのです。

// 現在の状態をみます
# firewall-cmd --list-services⏎
// ポート追加します
# firewall-cmd --add-service=http --permanent⏎

という風にfirewall-cmdしましょう。

--permanentというのを付けないと再起動した時に、

せっかく空けたポートが閉じていたので多分必要です。


これでもう一度鯖のURLを叩いて確認しましょう。

多分見えるはずです!

あとはapachのconfとかユーザとか整理するだけですね。


最後にEPELリポジトリの追加を

# yum install epel-release⏎


これはちょっと便利ですね。


長くなりましたが、CentOS7はちょこちょこ変わってます。

いろんなブログを見て、比較して構築することをオススメだょ!




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

CentOS7始めました Vol.1

2014/10/05 22:43:05
台風きてるぅうううう!

こんな日は家で日曜大工という名の、サーバ構築に限りますね。


ねこさんのおうちも移転計画があるので、

久々にCentOSしたYO!


ついこの前まではSSLの問題やべーよとか言われてたのに

最近のBashの脆弱性はもっとやべーとか言われてますね。

そんなこともありカーネルのヴァージョンも3系になったとのことで、

CentOS7をチョイスしてみました。


現在、各VPSでの標準OSは未だCentOS6系ですが、

カスタムOSとしてCentOS7が提供され始められています。


てことで、viのコピペコマンドをネットで確認しないとわからない私と一緒に

CentOS7をインスコしてみましょう!


まずCentOS7のISOを入れてしばらく待つとこんな画面に遭遇します。



初期だと真ん中の『Test this media & install CentOS 7』なので、

テストの必要性がない人は一番上を選択しましょう。


そしてまたしばらくすると



この画面になります。自分の好きな言語を選んで下さい。

自分はSpanishとかでもよかったのですが、

あえて皆様に合わせて、



『日本語』を選択しました。

そしたら右下の『続行』を押しましょう。

『インストールの概要』に遷移します。



ここで環境によって三角アイコンが付くところがバラバラになると思います。

三角アイコンが消えるように、



適当に設定しておいてね(はーと)



CnentOS7の最小限のインストールはSSHとかは動いてるんですが、

ネットワークが繋がっていません。

なので、この中の『ネットワークとホスト名』を設定しておきましょう。




ハードウェアアドレスが『ひ・み・つ』になってますが、

MACアドレスが表示されます。


この画像の右上の赤丸で囲んだところを右にスライドさせて、

オンにしましょう。





……


………


スライドって……


タッチパネルとかでインスコしてるわけじゃないのに、

そのインターフェイスはどうなのかね………

と言う疑問を抱きつつオンにすると、



このように自動でIPが振られます。

確認したら、左上の完了を押して戻ります。

そして画像をキャプチャし忘れてますが、

『インストールの概要』で三角アイコンがなくなってると、

右下の『インストールの開始』ボタンがアクティブになります。


気持ちの準備が整ったら厳かに押しましょう。




こんな感じでインストールが始まります。

また三角アイコンが出てるので、

『rootパスワード』を決めます。



パスワードを『password』にすると下に



入力されたパスワードは弱すぎます



とか出ます。

余計なお世話ですね。

左上の完了を2回押します。

次に『ユーザーの作成』をしましょう。



『このユーザーを管理者にする』にチェックをします。

全ての作業をrootでやる男気が高い方は、ユーザーなんて作らなくても大丈夫です!

サーバなんてハックするかされるかそんな殺伐な雰囲気が良いと思います。

男ならroot一本で勝負したいですね。

そうすればパーミッションとかもいちいち考えなくておkです!

メリットしか見当たりません☆


そうこうしていると



こんな画面になります。

右下の再起動を押して、インスコ完了です!

ほんと昔はアナコンダさんがどーのこーので怒られたりしてたのに、

ねこでも簡単にインスコできますね。




次回はここからソフト入れたりしていきます。



☆近日公開予定☆




~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web

nginx1.2の設定

2012/05/30 07:40:33
おはようございます!Noranekoだぜぇ。

最近、web業界でnginxなる物が一部で流行ってるようですね。
業務ではIIS、apacheと使ってきましたが、ここにきていろんな人からこのnginxの話をされました。

てことで情弱な私も使ってみたお^ω^


yumさんでnginx1.2をインスコ。


通常のインスコだと設定ファイルは、

/etc/nginx/
/etc/nginx/conf.d


の中にあり、

/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf


この2つがメインファイルとなります。


今回はヴァーチャルホストとベーシック認証についてもやっちゃいましょう。

※ヴァーチャルホストとは、日本語で直訳すると仮想上のホストと言うことです。現在歌舞伎町のホストクラブでは人間を雇わず、CGが女性客の相手をしてくれます。CGなので自分の好みの男性を作ることができ、AIも搭載されてるので会話も可能です。


てことで簡潔に言うとconf.dの中に、***.confと言うファイルを置くと読んでくれるので、default.confはさわらずに、ドメイン名+.confというファイルを置いて管理するのが良いと思います。

例えばwilddaro.comteheperoo.comと言うドメインを持っていて、それぞれのヴァーチャルホストをnginx上に持つとする場合、conf.dの中で、
cp default.conf wilddaro.com.conf


とdefault.confをコピーしてファイルを置きましょう。

ここまでで90%終了です!

やったねタエちゃん!ヴァーチャルホストが増えるよ!


では、wilddaro.com.confの編集を行いましょう~。
ついでにphpの設定も行っておきましょう

server {
    listen       80 default_server;
    server_name  wilddaro.com;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /wilddaro.com/html;
        index  index.html index.php;
    }

    location /himitsu/ {
        alias /wilddaro.com/html/himitsu/;
        index index.html index.php;
        auth_basic "wilddaro?";
        auth_basic_user_file /wilddaro.com/html/himitsu/.htpasswd;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ ^/himitsu/(.*\.php)$ {
         fastcgi_pass  127.0.0.1:9000;
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME /wilddaro.com/html/himitsu/$1;
         include       fastcgi_params;
         auth_basic    "wilddaro?";
         auth_basic_user_file /wilddaro.com/html/himitsu/.htpasswd;
    }

    location ~ \.php$ {
        root           /wilddaro.com/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }
}


鉄人自らご説明致します。
wilddaro.comのパスを/wilddaro.com/html/をドキュメントルートにした時の設定です。お好みで、パスをお好みで、/boot/sbin/tmp等のワイルドなところに設置しても構いません^ω^

2行目
default_serverを付ける事により、逆引きした時のホストとして表示できます。つまり、任意のconfファイルにdefault_serverを付けることにより、IPでのアクセスとドメインでのアクセスを切り分けることができます。

3行目
ヴァーチャルホストのドメイン名をここに記述します。

8~11行目
location /とすることで、wilddaro.comのドキュメントルートのパスとindexファイルの設定を行っています。

13~18行目
http://wilddaro.com/himitsu/以下にベーシック認証をかけています。
ここの13行目なのですが、/で閉じないと、himitsu.htmlというファイルがあった場合に、アクセスした際にベーシック認証が発生してしまいます。16行目のauth_basicはメッセージ、17行目のauth_basic_user_fileがユーザ・パスワードファイルです。

37~44行目と46~52行目はphpの設定ですが、ここで結構はまりました。
まず13~18行目でベーシック認証をかけたつもりでも、
http://wilddaro.com/himitsu/***.php
を叩くとベーシック認証がかかってない状態になっています。

う~ん、locationの中でphpのロジックをネストさせて書いてる人もいたりしますね。
自分はちょっと分けて書きたかったので、こういう風にしてます。
あと注意点としては、先に46行目を書くと37行目のロジックが通らなくなってしまいます。

これはちょっと困った問題で、例えば/abc/def/ghi/というディレクトリがあってghi/にベーシック認証をかけて、さらにdef/にも認証をかけたい場合、
先にghiのロジックを書き、次にdefのロジックを書かないと、先にマッチした方のみ処理が行われるみたいです。

自分の書き方がまずいのかもしれませんが、オレ流としての設定なので、他のもっとすっきりした書き方や有名な人の設定パクッた方がいいお^ω^

42、43行目でhttp://wilddaro.com/himitsu/以下のphpにアクセスがあった時にベーシック認証をかけるようにしています。また、37行目を性器正規表現にして、40行目に$1としてファイル名を渡しています。

57~59行目
.htpasswdファイルが見られちゃうと恥ずかしいので、コメントを取っちゃいます!
ワイルドに行きたい人は、ここはコメントはずさないで大丈夫です。

とまぁこんな感じでファイルを設定して、nginxをrestartして、ドメインを叩いて確認してみて下さい。てかwebサーバ設定しても、Aレコードちゃんと登録しなきゃ見れませんので、先に登録してからnginxの設定した方がよろしいでございます。

あと余談ですが、nginxでphp-fpmを使う際は5.3以上なのですが、
設定した後にサイトを見てて、エラー吐きまくりのページがありました。
ereg系とかを使ってると出まくります。

詳細はこちらにのっております。
http://php.net/manual/ja/migration53.deprecated.php


pregにしたったわ!






参考になった人は是非、いいねボタンを押して下さいね^ω^


















そんなもんついてねーけどな!







~こんなアプリ出してます~

authored by Noraneko | Comment(0) | Web
1 2 3 
BLOG内検索
<< 2018/07 >>
Sun Mon Tue Wed Thu Fri Sat
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
<< 過去ログ >>