Node.jsをインストールしてFeedparserを使ってみて

2018.02.01

Logging


Node.jsをインストールしてFeedparserを使ってみて
サーバ上でjsを動かす利点はよく分かるのですが、いまのサーバで
jsをガリガリと書いて動かすことはないだろうという事で、コマンドラインから
叩いて動かすぐらいで十分じゃねという結論に至りました。
http-serverというのをインストールするとサーバから表示することも可能なんだってさ。
但しApacheと共存させるにはちょっとした細工が必要です。
ちなみにyum install nodejsでNode.jsはインストールできます。
あとはnpmを使用してnpm install -g http-serverでインストールし http-serverとかすると
http上でNode.jsが動いたりします(コードの記述が必要)。
今回、Feedparserを使用するのに参考させてもらったサイトの
リンクを貼っときます。
ほぼコピペで動きました(._.)
http://phiary.me/node-js-feedparser-rss-json/

タグ

B075R3WRXM, Feedparser, g http-server, http-server, node.js, npm install, yum install nodejs, コード, コピペ, コマンドライン, サーバ, サーバ上, 但しApache, 利点, 細工, 結論, 記述, 超入門,

アマゾンウェブサービスってどうなの?

2018.01.17

Logging


アマゾンウェブサービスってどうなのか?
お安いのかお高いのかというのが自分が一番気になる所です。
試しに一度使ってみようかなと思ったことが
何度かありますが、どうも踏み切れないですよね。
セキュリティ対策などは結構簡単に対策を
取ることが出来るみたいなので便利だなと思う反面、
あまりにも機能が多いのでどれを使用すればよいのか、
迷います。おそらく最初はAmazon EC2を使用して
サーバ構築を行い、その後静的アドレスとドメインを結びつける事により
サーバ稼働するのだろうけれど、設定等を行うのが
正直なところ難儀だなと感じます。
サーバとの通信回線が早いので
応答速度はかなり改善するのではないかなと、
メモリは2Gぐらいが妥当かなとか・・・。
上記の設定などは自分でまぁ出来ます、SSLの設定も出来ますが
問題はお値段なんです、あまりにも月の値段が高ければ
やなんですよね。あとメールサーバーも構築しないと駄目なので
そこのところも難儀です。
ひとつのドメインではなく全てのドメインを引っ越すつもり。
これ以上、サーバ代を増やしたくないので出来れば
ひとつのサーバに集約化したいわけです。
そういう事を考えると安定して動いているXサーバで良いかなと
思ってしまうのですね。
「あぁどうしよう」orz

タグ

, Amazon EC2, Amazon Web Services, Xサーバ, アマゾンウェブサービス, サーバ, サーバ代, サーバ構築, セキュリティ対策, ドメイン, ネットワーク, ひとつ, メールサーバー, メモリ, 何度か, 応答速度, 改訂版, 設定, 通信回線,

laravelをインストールするまで。

2017.10.20

Logging


laraveをインストールするまで、普通の環境ならそれ程、時間もかからないでしょう。下記のURLを参照すればちょこっとした時間でインストール出来るのですが php-cgi環境がしっかりと理解できない場合、うまくインストールされない事があります。
https://laravel.com/
例えばphp-cgiの環境は一通り整っているのに、php -v とバージョンを確認すると以前のバージョンが表示される場合、モジュール版のphpを削除したのにもかかわらず以前のバージョンが実は残っているのです。
その為、サーバ上はうまくそれぞれのPHPのバージョンが動いているのに、コンポーザーでコマンドラインからlaravelをインストールを行うと以前のバージョンが悪さをしてうまくインストールされない場合があります。
対処法として、コマンドラインで動いているPHPを探し出し削除を行い、シンボリックリンクか何かで、ソースからインストールしたPHPにリンクを張ってあげましょう。
そうすることにより、うまくインストールされます。
それでもインストールが出来ない場合は、GitHubより最新版のlaravelをダウンロードすることにより動作することが可能ですが、試してはないです。
https://github.com/laravel/laravel?(PHP7なら動きそう)
ちなみにインストールをコンポーザーから行うとPHPのバージョンを確認して、それに対応したバージョンを自動的に インストールすることが可能です。

何故・・・laravelをインストールすることになったかというと
会社でお試し使用することがキッカケです。その為、会社で環境構築を行い、じぶんでも同じように環境構築したという事です。
PHPフレームワーク、実は殆ど使用したことがなく、どんな機能があるのかなど 本当に未知数なですね・・・。でもコレをゴリゴリと使用することが可能になれば、かなり開発が早くなりそうな予感がします。

タグ

-v, com, https, larave, Laravel, php, php-cgi, url, インストール, コマンド, コンポーザー, サーバ, シンボリック, ソース, それぞれ, バージョン, モジュール, ライン, リンク, 下記, , 以前, 削除, 参照, 場合, 対処法, 時間, 普通, , 理解, 環境, 確認, 表示,

文字の置き換えはコマンドラインから

2017.09.19

Logging


文字の置き換えは「sed」というコマンドを使うことで
文字の置き換えは可能ですが、文字の置き換えを行なった後、
ファイルの保存もしくは上書き保存を行わないと意味が無いので
注意が必要になります。
例えばリナックス系のサーバで文字を置きたい場合、このような感じに
記述すると文字の置き換えが可能となります。

sed -i -e "s/utf8mb4/utf8/g" mysql.sql

結構、大きめサイズのテキスト形式のファイルも難なく
置き換えが可能です、ちなみにWindowsでも同じようにコマンドから
文字の置き換えすることは可能ですが少々面倒なので、リナックスでの
置き換えを自分は推奨します。
ちなみに文字コードがUTF8ではない場合は
文字コードをiconvでUTF8に置き換え後、文字列の置き換えを
すれば良いのでとても楽です。


ちなみにこちらの動画は悪い例↑
?

タグ

-i, 4, 8, e-, iconv, mb, MYSQL, quot, sed, SQL, UTF-, Windows, コード, こちら, こと, コマンド, サーバ, サイズ, テキスト, ファイル, ライン, リナックス, 上書き, , 保存, 動画, 可能, 場合, 大きめ, 形式, , 必要, 意味, 推奨, 文字, 文字列, 注意, 自分, 記述, 面倒,

シンボリックリンクとXサーバ

2017.07.05

Logging

ln -s /var/www/html/hoge.png hoge.png
#unlink hoge.png

シンボリックリンク、リナックス版のショートカットとして
理解しています。正確には違うけれども・・・。
これを使うことにより、同じサーバ間の情報を引っ張ってくる事が
可能になります。1年か2年前に教えてもらったのだけど
使用しないので忘れていた(いままで使用することが無かったので
存在すら記憶から抜けかけていた)。
これを使うだけで表示されるサーバもありますが
サーバの設定によりけりですね(Xサーバ上記の設定だけでOK)。
ちなみに所有者権限を変更してあげないと表示されないサーバも
ありますので注意が必要です。
こんな感じに変更。

chown -h hoge:hoge hoge.png

あと、パーミッションとかの注意も必要です。
 

タグ

AM, B072K1NH76, chown, h hoge, hoge hoge.png, hoge.png hoge.png, unlink hoge.png, Xサーバ, Xサーバ上記, サーバ, ショートカット, シンボリックリンク, パーミッション, よりけり, リナックス版, 所有者権限, 新しいLinux, 注意, 設定,

Twitterみたいなマストドンが流行っているのは知っているけれど。

2017.04.18

Logging


Twitterみたいなマストドンが流行っているのは知っているけれど。
IT関係者だけのもので終わりそうな気がする。
マストドンはGithubで公開されていてVPSで構築しているサーバなら
入れ込むことが可能です。
じぶんも少しだけ興味があるのですけど
それほどユーザーが集まりそうにないので、サーバに負荷になることは
無いと思います。しかし人が集まらないとあまり意味がない、
サーバ維持管理費ぐらいを回収できるぐらいは、人を呼び込みたいです。
そうしないと意味がないので様子見にします。
もしかしたら、釣りマップあたりをマストドンで構築し直すかもしれません。
https://github.com/tootsuite/mastodon

CentOS7でmastodonを建てる

http://qiita.com/motiakoron/items/1e5b0679f7283bfee70b

さくらのVPSで自分の Mastodon サーバを最速でつくる方法

http://qiita.com/hekki/items/c3f42c31632105389c79

タグ

centOS7, github, IT関係者, mastodon, Twitter, VPS, サーバ, サーバ維持管理費, さくら, じぶん, マストドン, ユーザー, , 少し, 意味, 方法, 最速, 様子見, , 興味, 負荷, 釣りマップあたり,

この頃、フリー写真素材がクオリティーが高い!!

2017.03.23

Logging


この頃、フリー写真素材がクオリティーが高い!!
ぱくたそさんのサイトがかなりクオリティーが高いですね。
これ全部、無料で使用できるだから、ほんと有り難いことです、
広告収入と寄付で運営されていると思うのですが
元が取れるのだろうかとちょっと心配になってしまいます。
この頃、サーバの移管などもしたらしく
表示速度も改善されています、自分のサイトみたいな
アクセス数ではないのは、分かっているものの、、、
どれ位の収益を得ているのかはわからないですが、おそらく
月に50万?100万の間の収益だと思います。
個人で50万?100万あれば何とかなりますが
これが複数人で運営されているとなると話は別話になります。
ちなみにグーグルさんの広告なのか
婚活中の広告が表示されました・・・・orz
っで、こちらがぱくたそさんのサイトリンクになります。
https://www.pakutaso.com/

タグ

かなりクオリティー, グーグル, クオリティー, サーバ, サイト, サイトリンク, サヨナラ, どれ位, フリー写真素材, 収益, 婚活, 寄付, 広告収入, 有り難いこと, 移管, 表示速度, 複数人, 間違いだらけ,

通称オレオレ認証の警告でハマる解決策。

2017.03.11

Logging

https://jp.globalsign.com/ 『SSL導入のことなら↑』
会社で必要になりオレオレ認証SSLを導入!!
通称オレオレ認証の警告でハマる解決策です。ググると簡単にコピペでローカルSSLの環境を作れると
思っていのですが、少しだけ甘かった。巷でググるとオレオレ認証のことが山のように出てくるのだけど、その記述では警告が出てしまいます。なぜ、警告が出てしまうか。
それはsha-1にしか、対応していないからです。なので警告表示が出ます。いまは各ブラウザ、sha-2=>sha256にしか対応していないオレオレ認証出来ません。
ということで?
下記の記述で大体のローカルサーバでSSL認証が可能になります。

openssl genrsa 2048 > oreore-server.key
openssl req -new -sha256 -key oreore-server.key > oreore-server.csr
Common Name (eg, YOUR name) []: oreore.com ←ここだけ合わせる。あとの入力欄はエンターでOK
openssl x509 -in -sha256 oreore-server.csr -days 777777 -req -signkey oreore-server.key > oreore-server.crt
cp oreore-server.crt /var/www
cp oreore-server.key /var/www
/etc/httpd/conf/httpd.conf
下記の記述などを追加。
<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /var/www/oreore-server.crt
    SSLCertificateKeyFile /var/www/oreore-server.key
</VirtualHost>
systemctl restart httpd Apache再起動
一旦ブラウザを閉じオレオレ認証がうまく行ったか
確認を行う。
なお、ファイアウォールで見えない場合は443ポートを
開放するように!!
systemctl restart httpd Apache再起動
一旦ブラウザを閉じオレオレ認証がうまく行ったか確認を行う。
なお、ファイアウォールで見えない場合は443ポートを開放するように!!

※尚、出来上がったcrtファイルを個人分のパソコンにダウンロードして設定するように!!
設定方法はこちら
https://scratchpad.jp/ssl-self-certification/
追記:Chrome58以降、上記の方法ではうまく行かなくなりました。
https://qiita.com/ll_kuma_ll/items/13c962a6a74874af39c6

タグ

, 2, 2048, 256, com, csr, genrsa, globalsign, gt, https, jp, key, new, openssl, oreore-server, req, sha, SSL, いま, オレオレ, こと, コピペ, サーバ, それ, ブラウザ, ローカル, 下記, 会社, 可能, 大体, 対応, 導入, 少し, , , 必要, 環境, 簡単, 表示, 解決策, 記述, 認証, 警告, 通称,

アドビインストーラー(AdobeCreateCloud)のダウンロードでエラー207を吐く。

2017.03.10

Logging


アドビインストーラー(AdobeCreateCloud)のダウンロードでエラー207を吐く。
原因はサーバが応答していないよとか言う理由なのですが
どうも同じダウンロード率でストップするということは
何かしら原因があるに違いないと思っています。
今のところ原因不明なのです。
分かり次第、記事を追記しますので少々お待ち下さい。
出来れば今日中に謎をときたいです、セキュリティーの関係かなと
思ったのですが、それなら最初からダウンロードできないですよね。
「なので何かの原因があるに違いない!!」
自分の推測ではWindowsのDLLが問題かもなと・・・。
対処方法(サポセンに電話):
http://www.adobe.com/jp/applicationmanagerpatch/downloadwin.html
こちらに進み、ApplicationManager10.0_all.exeをダウンロードすると
自動的にインストール走ります。インストールが終わるとAdobeCreateCloudが
立ち上がりますっていう事です。うまくダウンロードできない場合は
こちらを試してみてください。
古いパソコンにインストールするなどするとこういう事が起きるのかも?
原因については分かりません。

タグ

AdobeCreateCloud, API, ApplicationManager10.0_all.exe, dll, Windowsプログラミング, アドビインストーラー, インストール, エラー207, サーバ, サポセン, セキュリティー, ダウンロード, ダウンロード率, ところ原因, 今日中, 原因, 古いパソコン, 対処方法, 少々, 推測, 日経BPパソコンベストムック, 理由,

ビックデータと機械学習仲良しこよし・・・か!!

2016.12.13

Logging


機械学習の精度を上げるには大量のデータを瞬時に捌ける
サーバが必要になるという事を気付いた・・・。
そういやそうだ。学習すればするほど過去のデータも
見直さないといけなくなる。
Gさんは良い商売しているなと機械学習やビックデータを処理する
環境を無料で与えているけど、よくよく見ると制限があり
それ以降は有料になっている。
有料だけど月々の費用はかなり安いところが
ほんと、凄いところです。
でっ!!
ビッククエリーのPHPバージョンの使い方ですけど
Gさんのライブラリを読み込んでSQLを発行して返却値を
もらうだけ・・・凄く簡単。
詳しくはこちら
まずはライブラリ読み込みしてオブジェクトをインスタンスする。

次にSQLを発行する。

最後に発行した情報の返却値を抽出する。

じゃ機械学習はどうしたら良いのか・・・。
勉強中です、GさんがAPI系版出しているだけど、お高いです?。
https://cloud.google.com/prediction/docs?hl=ja
そちらは比較的に優しい、優しいと言っても難しいですけど・・・。
Gさんがオープンソースで提供されているサービスに比べたら優しいという事です。
https://www.tensorflow.org/
機械学習をちょちょいと使えるようになればカッコイイですけどね。
自分には程遠い感じがします、千里の道も一歩からというけれど・・・
今のところ、簡単な機械学習ならっていう感じでニュートラルな機械学習は
難しいですね_(:3」∠)_。
http://qiita.com/tags/TensorFlow

タグ

API系版, Gさん, PHPバージョン, SQL, インスタンス, オブジェクト, サーバ, ビッククエリー, ビックデータ, ライブラリ, 使い方, 千里, 月々, 有料, 機械学習, 機械学習仲良しこよし, 瞬時, 程遠い感じ, 精度, 返却値,

クローラーするサービスの基礎。

2016.11.19

Logging

クローラーするサービスの基礎のソースを載せときます。殆どサイボウズ・ラボの人が書いたコードです。
このサンプルソースをそのまま貼り付けても一階層のリンクしか取得できません。
再帰処理の部分をコメントアウトしているからです。ちなみにコメントアウトを外してもメモリオーバーでおそらく
大体のサーバでエラーが出力されます。どうしたら良いのかといえば、DBに1階層目のリンクデータ、2階層目のリンクデータという様に保存する機能を施す。次にajaxで階層を受け渡しながら、再帰処理を行う。
再帰処理が終わる要素はそれ以上、下階層がないことを判断する。そのためには保存したデータを検索することが重要になる。=(イコール)
新規にデータを登録しているうちは、再帰処理を終わらせないようにすることが大事になる。
これの機能を加えることで巡回する事が可能になる。ここで注意しないといけないのが、外部リンクを保存しないことです。外部リンクまで保存していると巡回は永遠に終わらないでしょう・・・。
トイウコトデ
ほぼ??コピペソースを貼っときます。

<?php
echo json_encode($obj);
exit;
function get_linkarray($link)
{
	$context = stream_context_create(array("http" => array("method" => "GET", "header" => "User-Agent: simplecrawler.library.php 0.0.1")));
	$resultR = array();
	$resultS = simplecrawler($context, $link, $link, parse_url($link));
	foreach ($resultS as $k => $v) {
		$resultR[] = $v;
	}
	return $resultR;
}
function simplecrawler($context, $link, $burl, $base, $linkArrayDat = array())
{
	$linkArrayPre = crawler_link(crawler_page($link, $burl, $base, $context), $link, parse_url($link));
	foreach ($linkArrayPre as $k => $v) {
		if (!isset($linkArrayDat[$v])) {
			$linkArrayDat[$v] = $v;
			//$linkArrayDat = array_merge($linkArrayDat, simplecrawler($context, $v, $burl, $base, $linkArrayDat));
		}
	}
	return $linkArrayDat;
}
function crawler_page($link, $burl, $base, $context)
{
	if (strpos($link, $burl) === 0) {
		$page = @file_get_contents($link, false, $context);
		return $page === FALSE ? null : $page;
	} else {
		return null;
	}
}
function crawler_link($page, $burl, $base)
{
	$linkArray = array();
	if ($page === null) {
		return $linkArray;
	}
	preg_match_all("/[\s\n\t]+href\s?=\s?”(.*?)”/i", $page, $href);
	for ($i = 0; $i < count($href[1]); $i++) {
		$link = $href[1][$i];
		if (preg_match("/^http(s)*\:\/\//", $link)) {
			$result = $link;
		} elseif (preg_match("/^\/.+$/", $link)) {
			$result = $base["scheme"] . "://" . $base["host"] . $link;
		} else {
			// echo $base["path"] . “\n”;
			$b = preg_split("/\//", dirname($base["path"]));
			$t = preg_split("/\//", $link);
			foreach ($t as $v) {
				$l = $v === "." ? true : ($v === ".." ? array_pop($b) : array_push($b, $v));
			}
			$result = $base["scheme"] . "://" . $base["host"] . join("/", $b);
		}
		$linkArray[$result] = $result;
	}
	return $linkArray;
}

タグ

, 2, ajax, db, アウト, イコール, うち, エラー, オーバー, クローラー, コード, ここ, こと, コメント, これ, サーバ, サービス, サイボウズ, サンプル, ソース, それ, ため, データ, トイウ, メモリ, ラボ, リンク, , , , , 保存, 再帰, 処理, 出力, 判断, 取得, 可能, 基礎, 外部, 大事, 大体, 巡回, 新規, 検索, 機能, 殆ど, 永遠, 注意, 登録, 要素, 部分, 重要, 階層,

サーバを移行したわけです。

2016.08.30

Logging


サーバを移行したわけです。
もう、今後、サーバの移行はないと思います。
今までDBサーバは別サーバを使っていたのですがそれも同じサーバから読み込んでくることにしました。これでたまに起きる現象、読み込み不可も無くなると思います。
主要なサイトの移行は終わりましたがまだ、NOT FOUNDと出てしまうURLもあります。
それらのサイトも徐々に移行していけば良いかなと思っていますが、直ぐに移行するということは
ありません。
巷ではAWSが流行っていますが自分も一応、開設はしているのですが使っていません。今後、AWSも使う可能性もありますが、ブログ系のサイトはこのサーバで運用していきますので今後とも宜しくお願い致します。

タグ

AWS, db, Found, not, url, お願い, こと, これ, サーバ, サイト, それ, それら, たま, ブログ, わけ, 不可, 主要, 今後, 可能性, , 現象, 移行, 自分, 運用, 開設,

Gitサーバを構築するという事になり。

2016.01.04

Logging


大晦日から元旦かけて、会社でGitサーバを構築するいう事になり勉強をしていました。
Gitサーバを立ち上げようと発案したのは自分、じぶんが発案者なので
勉強するのも道理だろうとGitサーバを勉強しました。
結論から言えば出来たのですが、いまいち完璧に
理屈がわかったのではなく、こうすればMacでもWindowsでも
動くという事がわかっただけです。
ちなみに構築方法はそのうち掲載します・・・・うそ。
ってそれほど難しい話ではなかったので掲載します。

#------------Git------------------------
yum -y install git
git config --global core.quotepath false
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
cd /var/wwww/html
git init --shared=true
git status
git add .
git commit -m 'new'
git config --bool core.bare true
git config --get-all core.bare
#-------------Key-------------------
ssh-keygen -t rsa
cd /root/.ssh
cp id_rsa /var/www/html

まず、初めにGitサーバをインストールします。
だいたい、初期の状態でインストールされています。
次にGit(ギット)のコンフィグの設定を行い、リポジトリを作成したい
階層まで行きリポジトリを作成します。addし後にコミットして完了です。
こちらがリモートリポジトリになります。
そしてローカル側にもGitをインストールします。
例えば、sourcetreeなどをWindowsにインストールします。
(※GUIでインストールを行ってください。CUIではなく:真ん中の選択肢を押下?)
まず最初に先ほど作成したsshのkey(秘密鍵?公開鍵?=id_rsa)を
ローカルにダウンロードします、その後、puttygen.exeなどを使いppkに
変換を行います。(ppk変換方法はこちら
次にsourcetreeの初期設定としてkeyの登録を行います。
先ほどppkに変換したファイルを参照します(ツール→オプション)。


参照後、新規/クローンを選択しリモートリポジトリとローカルリポジトリ作成場所を
選択してクローンの作成を行います。

タグ

-y, auto, branch, color, config, core, diff, false, git, global, install, Mac, quotepath, status, Windows, yum, いまいち, ウソ, うち, サーバ, じぶん, , 会社, 元旦, 勉強, 大晦日, 完璧, 掲載, 方法, 構築, 理屈, 発案, 発案者, 結論, 自分, , 道理,

新生FF14に拡張パッケージをいれようか検討中(蒼天のイシュガルド)。

2015.12.28

Logging


新生FF14に拡張パッケージをいれようか検討中(蒼天のイシュガルド)。
今のところレベルも低いのでパッケージを3000円弱で購入してとか・・・
考えるとまだ今のレベルでは良いかなという所です。
この頃、それなりに意識して
ゲームをしています。
ソロプレイでレベル上げしているのですが
伴に戦ってくれるユーザー募集中です。
ちなみに14日間ですが、FF14無料でプレイできます。
http://jp.finalfantasyxiv.com/lodestone/character/6101539/
名前とサーバは上記のリンクで確認できます。
※名前の横に書かれているのがサーバ名です。同じサーバ上ではないと
伴にプレイすることは出来ません!!

タグ

, 3000円弱, FF14無料, イシュガルド, ゲーム, サーバ, サーバ上, サーバ名, ソロプレイ, ところ, ユーザー募集中, リンク, レベル上げ, 上記, , 名前, 拡張パッケージ, 新生FF14, 昨日, 検討中, , 蒼天,

WEBセキュリティと人為的なバグ。

2015.12.06

Logging


先日、人為的なミス(コードミス)のため、何度かテスト用のファイルなどが
WEB上から吹っ飛んで消えちゃったっていう事象が発生した。
原因は自分のコードの書き方のミスだった・・・。
それに気付くまで謎の事象だった。
最初に自分がまず疑ったのがハッキングだったが
サーバ会社からの返答は侵入した痕跡がないとの事で
疑わしきは実行ファイルということだった。
結果、調べていくと実行ファイルのメソッドに
値が入っていなかったため一部のディレクトリを
消して良い所を全部ディレクトリが一括で消していた。
書いたのは自分です。
大体、バグっていうのは書いた本人は気づきにくいもの。
特にエラーがないバグはテストを行った時に出現したりして
そのバグ取りに大体、必死になることが多い。
結局、原因を見つけたのは社長だったという話ですが
今回のことで自社のサーバを持つことになったのが
何とも言えないのだ。
今回の原因は過信と浅いネットワーク知識やWEB知識が
問題になったんだろうと思う。そういう事もあって
WEBセキュリティ教室という本を購入したが・・・
これが今までのsqlインジェクションとかよりも深い内容の
攻撃手法が書かれていて正直、いまの自分には
半分程度の理解しか得れなかった。
 

タグ

sqlインジェクション, Webセキュリティ教室, エラー, サーバ, サーバ会社, バグ, バグ取り, メソッド, 事象, 何度かテスト用, 全部ディレクトリ, 原因, 実行ファイル, 徳丸浩, 書き方, 浅いネットワーク知識, 痕跡, 過信,

WinSCPというソフトが有るのだけど。

2015.07.16

Logging


WinSCPというソフトが有るのだけど自分はこのソフト、FTPのソフトだと思い込んでいたけど・・。SCPという名前の通りSCP(転送プロトコル)機能がついてたりする。面倒くさい事をさらっとやってくれるフリーソフトなわけです。そうとは知らず今までインストールすることが無かったんですけど、この度、インストールしました。ちなみに何が良いかというとFTPサービスをサーバ環境へインストールしなくてもファイルのアップロードが可能だということです。FTPがインストールされていない環境だととても重宝しそうな気がします。
ダウンロードはこちらから、WinSCP
メモがてらにもう一つ、大量のsqlデータを一括でインポートしなくてはならなくなり、昨日、調べていたらこのようなコマンドで解決することがわかりました。まず、Linuxサーバでかつポート22番が開いている事が前提です。windowsですとTera Termでサーバにログインし下記のコマンドを入力します。

mysql -u ユーザー名 -D データベース名 -p
//エンター後、Passwordの入力を行ってください。
次にMYSQLに切り替わったら、下記のコマンド入力してインポートを行います。この時の注意点ですがエラーなどが出る場合はエクスポートしたsqlファイルの最終行あたりに記入されているデータベース名やユーザー名が移行する側の名前になっているかが大事になります。なっていない場合、修正をかけ再処理を行うとインポートが行えるはずです。
尚、サーバ上に事前にsqlファイルをアップロードして置いてから処理を行ってください。
USE データベース名(インポートしたい)
SOURCE 階層を含むファイル名(/xxxx/xxxx.sql)

            

タグ

22, FTP, Linux, My, SCP, SQL, Tera, Term, Windows, WinSCP, アップロード, インストール, インポート, こちら, こと, コマンド, サーバ, サービス, ソフト, ダウンロード, データ, ファイル, フリー, プロトコル, ポート, メモ, もう一つ, ログイン, 一括, 下記, , , 入力, 前提, 可能, 名前, 大量, , 昨日, 機能, , 環境, 自分, 解決, 転送, 通り, 重宝,

クロンを改良しました。前のクロンPHPは恐らくBUGってて。

2015.06.23

Logging


クロンPHPって言っても月や曜日判定はしていません。今回、その判定も行うように変えようと再度、コードを改良しました。前回のコードの約半分ぐらいのコードになってます。土曜日までには、月や曜日の対応を行うようにします。
ちなみにどういう機能をするのかと言いますと、さくらサーバではクロンの制限があります。その制限数以上、使おうとおもって考えたのが、一つのPHPを叩いてクロンがしている事を模倣することでした。
※昨日の話は撤回はしないものの、SEOよりSNSでSEOという考え方に変えました。よくよく考えてみるとアクセス数が多いほど、検索上位表示される確率も増えるのでやはり大事かなとボット。ボットらしくない振る舞いしたボットなら何とか成るかも知れないとも思ってます。

追記2022/09/06:クーロン制限突破方法を記載しています、こちらを参照ください。クーロン制限突破!

command":"cd /home/user/www/user_dir/site/; /usr/local/bin/php cron.php "cron.json"
<?php
//5分刻みに対して有効な無限クローン 処理が負荷の場合どうなるかは知りません。
date_default_timezone_set('Asia/Tokyo');
class cron{

    public function d_m($obj)
    {
            if($obj->m==="*")return true;
            if(preg_match("/,/",$obj->m))return $this->comma($obj->m,date("m"));
            if((int)$obj->m === (int)date("m"))return true;

            return false;
    }

    public function d_d($obj)
    {
            if($obj->d==="*")return true;
            if(preg_match("/,/",$obj->d))return $this->comma($obj->d,date("d"));
            if((int)$obj->d === (int)date("d"))return true;

            return false;
    }

    public function d_H($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->H)){
                $H = explode("/",$obj->H);
                if((int)$H[1]>0 && ((int)date("H") % (int)$H[1])===0)return true;
            }else{
                if($obj->H==="*")return true;
                if(preg_match("/,/",$obj->H))return $this->comma($obj->H,date("H"));
                if((int)$obj->H === (int)date("H"))return true;

            }
            return false;
    }

    public function d_i($obj)
    {
            if(preg_match("/\*\/[0-9]{1,2}/",$obj->i)){
                $i = explode("/",$obj->i);
                if((int)$i[1]>0 && ((int)date("i") % (int)$i[1])===0)return true;
            }else{
                if($obj->i==="*")return true;
                if(preg_match("/,/",$obj->i))return $this->comma($obj->i,date("i"));
                if((int)$obj->i === (int)date("i"))return true;

            }
            return false;
    }

    //曜日 0=日曜日 6=土曜日
    public function d_w($obj)
    {
            if((int)$obj->w[date("w")]===1)return true;
            return false;
    }

    public  function comma($c="",$t=""){
        if($c==="")return false;
        if($t==="")return false;
        $flg = false;
        foreach(explode(",",$c) as $cc){
            if((int)$cc===(int)$t)$flg = true;
        }
        return $flg;
    }


    public function d_command($obj){
        if($obj->command){
            exec($obj->command . " > /dev/null &");
        }
        return true;
    }

}
if ($argv[1]) {
   $filename = $argv[1];
    if(is_file($filename)){
        $jsn = json_decode(file_get_contents($filename));
        $cron = new cron();
        try {
            foreach($jsn as $obj){
                if($cron->d_m($obj)){
                    if($cron->d_d($obj)){
                        if($cron->d_H($obj)){
                            if($cron->d_i($obj)){
                                if($cron->d_w($obj)){
                                    $cron->d_command($obj);//波動拳{{{{
                                }
                            }
                        }
                    }
                }
            }
        } catch (\Throwable $th) {
            print $th->getMessage();
        }
    }
}
mは月
dは日
Hは時
iは分
wは日曜日から土曜日 0はOFF、1はON
commandは実行コマンド
[
    {
        "m":"*",
        "d":"*",
        "H":"*",
        "i":"*/10",
        "w":[1,1,1,1,1,1,1],
        "command":"cd /home/user/www/user.com/site/; /usr/local/bin/php hoge1.php"
    },
    {
        "m":"*",
        "d":"12,23,28",
        "H":"*",
        "i":"*/15",
        "w":[1,1,1,1,1,1,1],
        "command":"cd /home/user/www/user.com/site/; /usr/local/bin/php hoge2.php"
    }
]

タグ

-Command, 06, 09, 2022, BUG, cd, ho, php, quot, SEO, SNS, アクセス, クーロン, クロン, コード, こちら, こと, サーバ, さくら, ボット, 一つ, 上位, , 今回, 再度, 判定, 制限, , 前回, 参照, 土曜日, 大事, 対応, 撤回, 改良, 方法, 昨日, 曜日, , 検索, 模倣, 機能, 確率, 突破, 約半分, 考え方, 表示, 記載, , 追記,

#プログラムサンプル ブログパーツは検索して出てくるのでうっぷします。

2015.03.11

Logging


ブログパーツの簡素な仕組みをUPします。基本はこれだけです。基本はこれだけですけど応用すると少々面倒くさいのでそこら辺はご想像におまかせします。これを基にして正規に配布する状態にするには、サーバの負荷の事やセキュリティとかそういう事まで考えなくてはならないので少々面倒くさいです。特にIDを発行して配布する場合などは結構、コードを書かないといけないです。また、悪意のあるユーザーがサーバに負荷をかけれる要因にもなりますので、安易にブログパーツを提供するのはオススメできません。ちなみに自分のブログパーツ用のJSを貼り付けても動作はしません(ファイルがないので)。ただ、下記のサンプルコードを自分自身のサーバ上に設置し、設置したURL(任意のURL)をJSで呼び出すと動作し、それを配布することも可能です。
PHPファイル

<?php
header("Content-type: application/javascript");
$str = htmlspecialchars($_GET["hoge"]);
if($str!=""){
	echo "document.write($str);";
}else{
	echo "document.write('hoge!?');";
}
?>

JS貼付け用。

<script src="https://zip358.com/tool/sample-tool/sample-blogtool.php?hoge='こんにちは'" language="JavaScript" charset="utf-8"></script>

タグ

AM, charset, Content-type, document.write, echo, header, hoge, htmlspecialchars, javascript, JS貼付け用, script src, script&gt, STR, utf-8, これだけ, ご想像, サーバ, セキュリティ, そこら辺, プログラムサンプル ブログパーツ, 負荷,

ドメインを使用(登録)する際に住所、名前がわからないようにするには?

2014.12.12

Logging

ドメインを登録する際に住所、名前がわからないようにするには、代行サービスをしようすると良いです。例えば、お名前.comの場合、ドメインを登録する場合、代行サービスでwhoisなどのコマンドでドメインから住所など調べようとしても調べれないようにする事が可能です。
一番やっかいなのは、人の住所なまえを勝手に使用すること、これが一番やっかいな輩です。軽犯罪なのですが、通報しない限りわからないという事が多いです。なので、ドメインを登録する際はお気をつけてください。
※あと、使用期限がきれて廃止になったドメインをしようする業者などがいます。自分も数年前、使用していたドメインが誰かわからない人に、使用されていて迷惑な状態になっています。なので使用しなくなったドメインもなるべく契約を継続することをオススメします。
※ちなみに自分は今、このサーバしか使用していません。

タグ

, whois, お名前, お気, コマンド, サーバ, ドメイン, 代行サービス, 住所なまえ, 使用期限, 契約, 廃止, 数年前, 業者, 状態, 登録, 軽犯罪, , 限り, ,

クラウドゲーミング技術を使ったゲーム配信サービス

2014.09.12

Logging

スクウェア・エニックスがクラウドゲーミング技術を使ったゲーム配信サービス「DIVE IN」を10月9日より開始するみたいですね。スクウェア・エニックスに限らず、ゲーム業界はクラウドゲーミングへシフトしてく流れになると思っています。ちなみにDIVE INはクラウド技術「Gクラスタ」を採用しているみたいです。
ゲーム業界に限らず、クラウドを活用している業界が増えてきているように思えます。現在のクラウド会社が抱えている共通の問題点を言えば何らかの原因でサーバがダウンしてサービスが停止することです。そうならないためにクラウドサービスを提供している各社は、それなりに対応を施していると思いますが、障害が発生した場合、現状ではうまく復旧しないことが多いです。それがいまのクラウドサービスを提供している各社の課題だと思います。365日、100%稼働率を保証できるようになれば、クラウド技術を採用するユーザが増えてくると思います。

タグ

100%稼働率, DIVE IN, Gクラスタ, クラウドゲーミング技術, クラウドサービス, クラウド会社, クラウド技術, ゲーム業界, ゲーム配信サービス スクウェア, サーバ, スクウェア・エニックス, ユーザ, 共通, 原因, 各社, 問題点, 昨日, 流れ, 現状, 課題, 障害,