信頼はずっと、挑戦はもっと。

お問い合わせ
TEL:03-3496-3888

BLOG コアテックの社員ブログ (毎週月曜~金曜更新中)

LIST OF ARTICLES

記事一覧

  • テクログ

    WindowsにLinux(CentOS)環境を構築する。Telnet接続まで。

    VMware Playerを用いて、Windows上にLinux(CentOS)環境を構築する手順を紹介します。この環境は、Linuxのコマンド練習や、実サーバにおける作業手順の事前確認に有効です。VMware Playerの詳細については、以下を参考にして下さい。http://ja.wikipedia.org/wiki/VMware尚、ローカルに限定された環境を想定している為、セキュリティについては考慮しません。(1)▼VMware Playerhttp://www.vmware.com/go/downloadplayer/今回は"VMware-player-5.0.0-812388.exe"(73MB)をDLしました。DL後、インストールを完了させて下さい。必要に応じてインストール先の変更やチェックボックスのON/OFFを行なって下さい。(2)▼CentOS(VMware Image)http://www.thoughtpolice.co.uk/vmware/今回は"32-bit: centos-6.2-i386-server.zip"(697MB)をDLしました。"web download"をクリックするとSourceForgeからDL出来ます。DL後、解凍して下さい。尚、誤操作でOSイメージが破損した場合等の為に、このzipファイルは、残しておいて下さい。(3)(1)でインストールしたVMware Playerを起動して下さい。"仮想マシンを開く" > (2)の"centos-6.2-i386-server.vmx"を選択 > "仮想マシンの再生"と進んで下さい。各ダイアログは、内容を読んで進めて下さい。"Choose a Tool" > "Firewall configuration" > "Run Tool" > スペースキー > "OK" > "Yes""Choose a Tool" > "Keyboard configuration" > "Run Tool" > "Japanese" > "OK""Choose a Tool" > "Quit"と進めて下さい。選択は、カーソルキーとエンターキーで行います。認証情報入力を促す表示がされたら、以下を入力して下さい。 localhost login: root password: thoughtpolice (2)のOSイメージがこのパスワードで初期化されているだけで、標準のパスワードということでは有りません。(4)rootのパスワードを変更します。 passwd 設定したいパスワードを2回入力します。(5)ユーザの作成(今回は、"admin"というユーザを作成します。) useradd admin passwd admin 設定したいパスワードを2回入力します。(6)telnetのインストールをします。 yum -y install telnet-server (7)/etc/xinetd.d/telnetの編集をします。 vi /etc/xinetd.d/telnet キーボードの"I"を押して下さい。disable = yesをdisable = noに変更して下さい。尚、カーソルキーで移動出来ます。変更できたら、"Esc"キーを押して下さい。続けて、":wq"と入力して、Enterキーを押して下さい。念の為、以下のコマンドで内容が正しいか確認して下さい。 more /etc/xinetd.d/telnet 以下のコマンドを実行して下さい。 /etc/init.d/xinetd start (8)好きなターミナルソフトでtelnet接続します。プロトコルはTelnet、ポートは23として下さい。接続先IPアドレスは以下のコマンドで確認できます。 ifconfig 以下の"inet addr:"に続くIPアドレスを接続先のIPアドレスとして下さい。(5)のユーザでログインして下さい。このOSイメージで、FTP設定、SSH設定、Apache + MySQL + PHPのインストール等、色々と確認が可能です。
  • テクログ

    スマホサイト制作で役立ったもの

    スマホサイトを制作する上で便利だなと思ったコード 備忘録として記録しておきます。少しでも参考になればと思います。   ・view port width=device-width...ウィンドウの横幅をデバイスの横幅(iPhoneの場合は320px)と指定 initial-scale=1 ... 表示倍率の初期値 maximum-scale=1 ... 表示倍率の最大値 user-scalable=no ... ユーザー側の操作で、拡大/縮小を出来るようにするかの可否   ・iphoneやAndroidのデフォルト設定を無効にする。 -webkit-appearance: none; ・iphoneのみCSSを適用する /* iphone.css */ @media screen and (max-device-width: 480px) {  #help_me { color: red;  } } スマホサイト制作を行う上で上記を知っておくとなにかと役に立ちそうです。 スマホサイトは今後も伸びていくと思われます。より多くの技術や役に立ちそうなコードがあれば 載せていきたいと思います。
  • テクログ

    SQL ServerとMySQL

    技術ブログが始まって2ヶ月弱・・・・みんなしっかりとした知識を披露してくれて・・・タジタジのなべっちです。最近は開発をガッツリやっているわけではないので、書かずに華麗にスルーしようと思っていたのですが・・・しかたない。次に繋がるように、簡単にわかる事を書いてハードルをさげてやろうと思っています。遠い過去の話ですが・・・VB6とSQL Serverを使ってとある保険のシステムを開発していました。ずっとSQL Serverを使っていたので、私の基本的なSQL文法=SQL Serverの文法という図式が成立してしまっています。最近のコアテックでは、MySQLを使うことが非常に多いのですが、SQL Serverとの違いなんてまったく意識せずSQL文を書く事が・・・すると・・・・何度確認してもあっているはずの文法が動かなくてはまるという事がありまして・・・非常に苦労しました。。。。調べていたらこんな違いが!と言う事が書いてあるHPを見つけてやっと解決。。。。非常に助かったので、そのHPから抜粋して違いを書いておきます。はまったのはこの部分↓・DELETE文等で自分自身をサブクエリで参照できない! DELETE FROM table1 WHERE id IN (SELECT id FROM table1 where key = 1 ) keyの値 が 1 のレコードを削除するという文です。※本来はサブクエリを使う必要がない文ですけど、わかりやすく簡単に書いてあります。その他にこんなのもありました。・SELECT INSERT INSERT INTO table1 (a1,a2) SELECT '値1','値2' FROM table1  WHERE NOT EXISTS (SELECT * FROM table1 WHERE a1 = '値1' AND a2 ='値2') 既に値1、値2のレコードが存在している場合は登録しないという文です。My SQLではNOT EXISTSでもEXISTSでも行が取れない為 レコードは登録されないようです。解決方法は↓ INSERT INTO table1 (a1,a2) SELECT '値1','値2' FROM (SELECT '値1' AS b1,'値2' AS b2) tbl1 WHERE NOT EXISTS (SELECT * FROM table1 WHERE a1 = '値1' AND a2 ='値2') とサブクエリを挟むと行が作成されてレコードが登録されるようです。もう1つAUTO_INCREMENTは物理削除すると削除した番号を再利用する SQL ServerのIDENTITYとは違うので同じ感覚で使用するとはまる原因になりそうです。 主キーとして使用する際にはご注意を・・・・気付かなかった~知らなかった~とはまる事があるようなのでメモ書き程度に書いておきます。次回からは役立つ技術情報が続く・・・・はず。
  • テクログ

    KeepAliveTimeoutについて

    みなさん、こんにちわ。 らめぇです。 では、早速。。   KeepAliveの説明 1回のTCP接続で複数のHTTPリクエストを処理する機能。 HTTP/1.0 の Keep-Alive 拡張と HTTP/1.1 の持続的接続の機能は、 複数のリクエストが同じ TCP の接続で送られる、長時間持続する HTTP セッションを提供します。 apacheドキュメントより引用 簡単に説明するとKeepAliveとは、「three-way handshaking」の節約です。 画像やCSSが多いサイトではKeepAliveをonにすることによりその恩恵を受けることができるでしょう。   KeepAlive関連ディレクティブは、以下のとおりです。 下記のディレクティブを設定することでKeepAlive機能を制御します。 KeepAlive HTTP の持続的な接続を有効にします。(On/Offで設定します) KeepAliveTimeout  KeepAlive=On の時に有効で、持続的な接続で次のリクエストが来るまでサーバが待つ時間(秒)を設定します。 MaxKeepAliveRequests KeepAlive=On の時に有効で、持続的な接続上で許可されるリクエストの数を設定します。 KeepAliveTimeoutってなに? 以下の設定について考えてみましょう。 KeepAliveTimeout 15 KeepAliveとは「three-way handshaking」の節約と説明しました。 Webサーバとの間で確立した接続が転送終了後も維持され、2回目以降のリクエストではこの接続をそのまま使用できる。 一見、良いことだらけに見えるこのKeepAliveにも欠点があります。   その一つがKeepAliveTimeoutの設定時間   上の例では、KeepAliveTimeout 15としています。   ひとつの要求が完了してから、コネクションを切断しないで次の要求を受け入れるまでの時間。言い方を変えると「クライアントからのリクエストがなくてもKeepAliveを維持する秒数」ということになります。   「リクエストがなくてもKeepAliveを維持する秒数」ここがポイントです。処理がすぐに終わった場合でもKeepAliveTimeout 15のままだと、15秒間接続をキープしたままになり、このプロセスは無駄になってしまうということです。   短くするほど無駄な接続を減らせますが、短くしすぎると必要なコネクションまで閉じてしまいます。クライアントがコネクションを確立し直す場合が増えます。   結局は環境に合わせて適切な値を見つけてくださいってことです。   小規模のサイトではあまり気にしない(設定を変えても効果はないと思います)KeepAliveの設定。 アクセスが増え、パフォーマンスが低下してきたら一度見直してみると良いかもしれません。 らめぇでした。
  • テクログ

    正規表現

    正規表現が苦手という人をよく見かけます。そういう私も少し前までは苦手でなるべく避けて通っていたクチです。何が嫌だったのかと思い返すと、単に慣れていなかったのが原因だったような気がします。という事で、覚えることもそんなに多くないのでサクッと苦手意識を無くしてしまいましょう。文字指定.(ドット) 何でもいい一文字[abc] aかbかcの何れか[^abc] aかbかcの何れか以外[a-c] aかbかcの何れか()括弧 グループとして扱う(abc|def) abc、defのどちらか文字数指定? 直前の文字が0回か、1回マッチ* 直前の文字が0回以上マッチ+ 直前の文字が1回以上マッチ{3}直前の文字が3回マッチ[3,]直前の文字が3回以上マッチ[3,5]直前の文字が3回から5回マッチ位置^ 最初$ 最後その他 上記のメタ文字を文字として扱う? 最短マッチ+*と組み合わせれば次の文字が最初に現れるまでこの辺りが基本ではないかと思います。あとは習うより慣れろということで実戦で使っていけば苦手意識は無くなっていくはずです。一つだけ、気をつけるポイントは「.(ドット)」はなるべく使わないといったところでしょうか。何でもいい一文字は思わぬものをヒットさせて不具合の原因になります。正規表現は様々なプラットフォームで使えます。phpやjavascriptなどはもちろん、mod_rewriteやmysql、postgresなどのwhere句など。多少の文法は違いはありますが、基本を覚えておけばどんなプラットフォームでもいけます。覚えておいて損はない技術です。
  • テクログ

    Controllerからforgeを用いてViewへ値を渡す方法 by fuelPHP

    ControllerからView::forgeを用いてViewへ値を渡す方法を以下に記載しておきます。 ■例1) ・Controller.php $data['ymj'] = 'わたしはやまじゅんです';  $this->template->content = View::forge (指定url/index, $data); ・指定url/index.php 上記のように、 forge されたViewファイル内で値を参照する場合は、 問題なく参照することが出来ます。   ■例2) ・Controller.php $data['ymj'] = 'みんなのやまじゅんです'; $this->template->content = View::forge (xxx/index, $data);  ・xxx/index.php ・yyy/_form.php   上記のように、index.php内で_form.phpをrender している場合、renderの第2引数で、配列に入れなおすことで対応できます。   ただ、いちいちControllerから渡された値をまた配列に入れるのは 面倒くさいので、以下のように設定して対応します。   ・xxx/index.php ↓↓↓↓↓   $__dataにControllerで設定された値も入っているので ばっちり取得できます。   上記対応時、以下のエラーが発生する場合があります。   RuntimeException [ Error ]: Object class "OrmQuery" could not be converted to string or sanitized as ArrayAccess. Whitelist it in security.whitelisted_classes in app/config/config.php to allow it to be passed unchecked.   その場合、以下のファイルの指定場所を設定することで解決します。   docroot/fuel/app/config/config.php 'whitelisted_classes' => array( 'Fuel\Core\Response', 'Fuel\Core\View', 'Fuel\Core\ViewModel', 'Fuel\Core\Validation', 'Closure', 'Orm\Query',←追加 )   これでめでたし、めでたし♪ ではでは~!