エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

date型のカラムに加算、減産してアップデートかける方法

単純なので結論だけ

全レコードに30日を加算してアップデート

update order set order_date = (order_date + INTERVAL 30 DAY);

減算するなら - INTERVAL

検索条件とかは普通にwhere句にやっとけばOK

order_dateをNOW(), CURDATE()とかの現在時を返す関数にすれば、現在時からの加算減算もできます。


ちなみにDAYは変更すればこのくらいの秒、時、分、日、週、月とかでもいけます。


SECOND
MINUTE
HOUR
DAY
WEEK
MONTH

php-mysqlndとはなんだ?[phpモジュール]

yumでインストールするときに指定するPHPモジュール、
PHP5.6をインストールしたときにmysqlに繋ぐためのモジュールが5.4以前と違っていて

php-mysqlndになっていたので軽く調べる。

どうやらmysqlのライセンスの問題などを解決した内容らしい。
機能面でのアップグレードは、php-mysqlよりもメモリ管理が効率的に行えることらしい

細かいことはPHPのマニュアルに書いてあります。
PHP: 概要 - Manual

ということで、こっちのほうがメリットがありそうなので、こっちを使うことにしました。

vagrantでshutdownすると共有フォルダが切れるらしい

mac OSX
virtual box
vgrant 1.7.4
box centOS6.5

こんな環境で、一度vmを再起動したかったので、

shutdown -r now

した。

shutdownするとvgrant環境から出されるのでもう一度

vagrant ssh

したら、なんとmacOSvmのフォルダの共有が切れていた。

おそらく、再起動のときにVagrantfileのフォルダ共有の設定を読まないからこうなるんだろうと予想して、
対処法したところ、フォルダ共有の復帰に成功


対処法

virtual boxのクライアントアプリから、シャットダウンを実行


vagrant up


vgarnt ssh


これだけ。

apache sparkをローカルのvm環境にインストール

とりあえずインストール手順まで

前提

virtual boxはインストール済み
vagrantはインストール済み

環境

mac osX

vm環境

centOS6.5

全体の全体の流れ

  • vm環境の立ち上げ

hostsの設定
javaインストール
apache sparkインストール

vm環境の立ち上げ

vagrantcentosのbox取得して初期設定 (cent65のとろは好きな名前つけられる)
mkdir spark
cd spark
vagrant box add cent65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
vagrant init cent65
ローカルIPをvm環境に割り当て
vi Vagrantfile

# この行のコメントアウトを外す
config.vm.network "private_network", ip: "192.168.33.10"


Vagrantfileを保存して、リロードする
vagrant reload


vm環境にログインして、javaインストール

vagrant ssh

#以下vm環境

#hosts設定 (ホスト名は自分の環境に合わせてね)
vi /etc/hosts
192.168.33.10 vagrant-centos65.vagrantup.com

#hosts閉じる
# wget インストール

sudo yum install wget

# java ダウンロード (バージョンはその時の環境に合わせてね)
cd /tmp/
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.rpm

# rpmでインストール
sudo rpm -ivh jdk-8u65-linux-x64.rpm

# 必須じゃないと思うが環境変数を設定
# ファイルは新規作成
vi /etc/profile.d/java.sh

export JAVA_HOME=/usr/java/default
export PATH="$JAVA_HOME"/bin:"$PATH"


apache sparkを書きページでブラウザでダウンロード
http://spark.apache.org/downloads.html

Choose a package typeのプルダウンは pre build hadoopの最新にする
そのほかのプルダウンはそのままでDL

ダウンロードファイルをsparkディレクトリに置く
spark/spark-1.5.2-bin-hadoop2.6.tgz

vagrantのフォルダ共有で、先ほどダウンロードしたファイルをvm環境に持っていく

#vm環境で

cd /vagrant/
mv spark-1.5.2-bin-hadoop2.6.tgz /tmp/

#解凍
sudo tar zxvf spark-1.5.2-bin-hadoop2.6.tgz -C /opt/
cd /opt/

# 扱いやすいようにシンボリックリンク(リネームでも良いかも)
sudo ln -s spark-1.5.2-bin-hadoop2.6 spark

# 環境変数
sudo vi /etc/profile.d/spark.sh

export SPARK_HOME=/opt/spark

#閉じて環境変数を読み込み
source /etc/profile

#インストールできたか確認
${SPARK_HOME}/bin/spark-submit --version


${SPARK_HOME}/bin/spark-submit --version
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 1.5.2
      /_/
                        
Type --help for more information.

#こんなのが出ればOK

とまあ、こんな感じです。

phpのcurlまとめ, postやapiから値取得するとき

雰囲気で書いてたcurlをちゃんとまとめてみる。
apiにリクエストして、レスポンスを受け取るところの実装。 

$ch = curl_init($postUrl);

curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch,CURLOPT_POSTFIELDS,$apiParam);

$ch_res = curl_exec($ch);

 

curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

戻り値を取得するときに必要

 

curl_setopt($ch, CURLOPT_POST, true);

POSTするときに必要。

 

curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);

よくわからんが必要な場合あり。

302 foundのエラーが発生する場合に、これで解決した

 

curl_setopt($ch,CURLOPT_POSTFIELDS,$apiParam);

POSTパラメータになんらか値をセットするときに必要

$apiParamは配列でOK

 

Googleドライブでホスティングする方法

 

Gドライブの公開したいディレクトリを作成する。

新規作成->右クリック->共有

 

するとこんなん開く

f:id:fujita222:20151111164947p:plain

 

右下の詳細設定で、インターネットで誰でも閲覧可、にする

 

 

あとGドライブ上でその公開ディレクトリにダブルクリックで入る。

そのときのURLのフォルダIDを収得しておく

drive.google.com/drive/folders/[フォルダID]

 

 

そしたら下記のURLにフォルダIDをぶち込んでアクセス

https://googledrive.com/host/[フォルダID]

 

 

リダイレクトされて、ちゃんとホストされているページに飛ぶ。

やってないけど、phpとかは使えないと思う。