プログラム・技術系の最近のブログ記事

【js】入れ子の連想配列の値を取得

ノンプログラマには、既存のシステムですでに作成されている変数から値を取り出せると何かと便利。

今回はMTAppjQueryで特定のサイトだけ管理画面をカスタマイズしたかったので、宣言されていた連想配列から値を取り出して切り分けすることに。

MTAppjQueryでは、管理画面のHTMLソースを見ると、その画面の情報がjsの配列として格納されている様子。これを利用するとその画面がどのウェブサイトのものかを判別できる。

このとき連想配列が入れ子になっており、取り出し方を調べたのでメモメモ。

値をうまく取り出せさえすれば、あとはmatch()で条件つけてif()で切り分ければOK。

-----------------------------

var kudamono = {
  red : apple,
  yellow : banana
};

という連想配列があったとして、値を取得して変数に格納するなら、

var  hoge = kudomono['red'];

でappleが取得できる。

-----------------------------

じゃぁ入れ子の場合。

var kudamono = {
     red : { big : apple ,  smal l: strawberry  },
     yellow : {  big : orange, small : kinkan  }
};

ならば、

var hoge = kudamono.red .big;

でappleが取得できる。

MTのダンプデータを借り受けたが、カスタムフィールドにイベント担当者の個人名と電話番号が入っていたため、個人情報なので削除してほしいとのこと。phpMyAdminからSQL文を書いて作業できたのでやり方をメモメモ。

まず、MTのカスタムフィールドはもっとごちゃ混ぜで格納されていたと思っていたら、[mt_entry_meta]テーブルに割ときれいな形で収まっていた。なので、このテーブルに対して下記のような文で実行。

-----
UPDATE `mt_entry_meta` SET entry_meta_vchar_idx = '' WHERE entry_meta_type = 'field.event_person';
-----
(mt_entry_metaをUPDATE entry_meta_vchar_idxを’’(空白)にSET entry_meta_type が'field.event_person'のデータを)

これを名前と電話番号でそれぞれ実行。

CPI|SSIを.htmlファイルで使用する

CPIのACE01 で、ssiは「.shtml」じゃないと使えず.htaccessでも変更はできませんという記述を見かけた気がしてたのだけど、実際に「.html」でもSSIを使えるように設定できたのでメモメモ

<FilesMatch \.html$> 
SetHandler server-parsed 
</FilesMatch>

-----

【追記】

.htaccessで変更できないのは古いタイプのものであり、ACE01は上記の記述方法をサポートが案内している。
http://acesr.doc.secure.ne.jp/other/tips-htaccess/#ssi

さくらインターネットでダンプデータをインポートしようとしたら16Mの制限を大きく超えていてphpMyAdminが使えなかった。SSHでインポートしたので、手順をメモメモ。

 

SSHで接続後、、、

◆mySQLにログイン
mysql --host=[DBサーバ] --user=[ユーザ名] --password=[パスワード]

◆個別のDBに入る
use [DB名];

◆sqlファイルをインポート
source /hoge/huga/hogehoge.sql;

 

show databases;
show tables;

などで確認しながら進める

◆mySQLから抜ける
\q
※バックスラッシュはひらがなの「ろ」のキー

 

----------------------------------

CPIの場合はポート番号が必要。その場合は下記のように
mysql --host=[DBサーバ] --user=[ユーザ名] --password=[パスワード] ----port=3307

----------------------------------

【追記】

これ、phpMyAdminでインポートすればエラーが出る場合に、SSHだとエラーが出てても分かりにくいために不具合の元になる可能性あるから慎重に使う必要ある。今度そのあたり経験多い人に効いてみよう。

ドメインが変わる時、リニューアルでURLが変わる時の.htaccessへの記述方法をメモメモ。

 

◆引っ越しなどで恒久的なリダイレクト(301リダイレクト)

  • サイト全体をリダイレクトする場合
    Redirect permanent / 移転先URL
  • 特定のページをリダイレクトする場合
    Redirect permanent /転送元URL 転送先URL

 

◆メンテナンスなどのための一時的なリダイレクト(302リダイレクト)

  • サイト全体をリダイレクトする場合
    Redirect temp / 移転先URL
  • 特定のページをリダイレクトする場合
    Redirect temp /転送元URL 移転先URL

 

※転送元URLは.htaccess起点のパス
※転送先URLはhttp://からのURL

 
もしmod_rewriteが使えるサーバーなら、RewriteEngine~を使ったリダイレクトで特定のブラウザだけをリダイレクトするといった複雑な条件指定も可能。

常時SSLの基礎知識

シマンテックのオンラインセミナーを見たので、自分用まとめメモ
https://www.jp.websecurity.symantec.com/event/
-------------------------------------------------------
 
実はSSLはいまはほぼ使われてなくて、TLSに置き換わっている。
ただし「常時SSL」という言葉は一般に使われている。
 
-------------------------------------------------------
常時SSLのメリット
-------------------------------------------------------
 
◆通信速度が速くなる。
使われるプロトコル「HTTP/2」が同時に多重接続できるなどで優秀なため速くなる。
CPUなどのサーバスペックが良くなっているので暗号化のためのオーバーヘッドは無視できるレベル。
 
◆SEO対策
Googleが優遇すると明言したため。
劇的な効果ではないが全ページに効くというのもポイント。
 
--間違ったSSLを入れるとサチコが警告するのでチェックすること
 
◆従来から認められている価値。
 -- ユーザの安心感の向上
 -- セキュリティの効果
 
◆ウェブアプリなど制作管理の効率化
HTTPとHTTPSが混在するより、HTTPSだけのほうが管理が楽なのは当然。
 
◆ログ解析の精度が向上
httpsのリンク元からhttpに来た場合にリファラ―を渡さない場合があるため。
 
-------------------------------------------------------
実際によくある不具合としては、SSL非対応のツール類が入るとエラーが表示される。
  -- HTMLタグで他サイトから引っ張ってくるバナー
  -- JSやCSSを他サイトから読み込む場合
 
 -------------------------------------------------------
 
みんながhttpsになってくるので、取り残されるととても不利になる。
 
今後、HTTPSは当然で、今後の差別化は認証されたHTTPS。
 
HTTPSは通信経路の暗号化だけなので、システムの脆弱性をカバーするわけではない。
WordPressのアップデートなど、それはそれで必要。

 

具体的な手順を探すのに意外と手間取ったので、ここにメモメモ。

-----------------------------------

1. あらかじめ管理画面からDBを作成しておく。

2. (ssh接続時の)カレントディレクトリにsqlファイルをアップロード。

3. ssh接続する

4. mysqlにログイン
% mysql --host=mysql***.db.sakura.ne.jp --user=**アカウント名** --password=**DBパスワード**

5. DBを選択
mysql> use ***作成したDB名***

6. データをインポート
mysql> \. **sqlファイル名**

 

[mysql & SSH] リファレンスページ

sshでmysqlを扱うのに、手ごろなリファレンスページを見つけたのでメモメモ。

http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html

 

【VM】サーバONで自動起動させる設定

サーバをONしたり再起動させたとき、apacheやら何やらOFFっているので、サーバONと同時に起動させていく設定

vi /etc/rc.d/rc.local

で、下記を追記する

-------------

/etc/rc.d/init.d/iptables stop
/etc/init.d/mysqld start
/etc/init.d/httpd start
/etc/init.d/vsftpd start

 

SSHで使うコマンド覚書

apacheの起動・再起動関係

  • apacheの起動 : apachectl start
  • apacheの起動(SSLを利用する場合) : apachectl startssl
  • apacheの再起動 : apachectl restart
  • apacheの停止 : apache stop

事前の準備

VMをインストールしておく

・バーチャルボックスのインストール(https://www.virtualbox.org/wiki/Downloads

OSを準備

・CentOS 【CentOS-6.5-i386-minimal.iso 29-Nov-2013 21:12 324M】
http://ftp.iij.ad.jp/pub/linux/centos/6.5/isos/i386/

=============================
下記に注意しながら次へ次へで進む感じ
=============================

サーバを新規作成

  • タイプ -- Linux
  • バージョン -- RedHat

LANポートの設定

  • cd /etc/sysconfig/network-scripts
  • vi ifcfg-eth0
      ONBOOT を 「yes」
  • vi ifcfg-eth1
      4行足す
      #BOOTPROTO=dhcp
      BOOTPROTO=static
      IPADDDR=192.168.56.101
      NETMASK=255.255.255.0

=============================
各種アプリケーションのインストール
=============================

アパッチのインストール

yum -y install httpd

  • yum -- パッケージのインストール
  • httpd -- アパッチ

IPテーブルを止める  /etc/rc.d/init.d/iptables stop

アパッチをスタート /etc/rc.d/init.d/httpd start

アパッチの状態を調べる /etc/rc.d/init.d/httpd status 

phpのインストール

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

mySQLのインストール

  • yum -y install mysql-server
  • 日本語の場合は文字化け防止のために、設定ファイルに下記を追記
    character-set-server=utf8

  • 設定ファイルは、/etc/my.cnf
  • mysql_secure_installation
  • 「etc/rc.d/rc.local」に下記2行を追記
    /etc/rc.d/init.d/iptables stop
    /etc/init.d/mysqld start

その他

  • FTP : vsftpd
  • 解凍 : unzip

 

mod_rewriteを使えるようにする

http://centoshome.seesaa.net/article/118972004.html

# vi /etc/httpd/conf/httpd.conf で、「# AllowOverride controls what directives may be placed in...」の下にある 「AllowOverride」を 「None」から「All」に変更する

 

=============================
小枝系
=============================

公開ディレクトリ : /var/www/html

VIの使い方メモ

  • i で書き込みできる状態に
  • :q -- 終了
  • :wq -- 書き込んで終了

動いているソフトの強制終了 : ctr+c

電源を切る : shutdown -h now

アーカイブ

ウェブページ