レコード追加時にcreated_dateカラムに現在時刻が入って欲しい
前提
なんか適当に内容POSTするとmySQLのDBに書き込まれて表示されるwebページをつくった@php
やりたいこと
内容追加した時にcreated_dateカラムに現在時刻が入って欲しい
やったこと
変に悩んでしまったけど単純に $date = date('Y-m-d H:i:s');
をSQLで渡せば良かった。
別で、modified_dateカラムはtable作成時に
`modified_date` timestamp NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
としてあるので、こっちは更新すれば勝手に書きかわる。
created_dateも単に作成時に default CURRENT_TIMESTAMP
にすれば良かったのかもしれない。
Atomでインデントを一括で整形する
やりたいこと
Atomでインデントを一括整形したい。
結論
とりあえず、
Edit->Lines->Auto Indent で出来る。
atom-beautifyというパッケージもあるようだけど...
あと上記だとめんどくさいのでショートカットをつけたい。
ので、Atom->Open Your Keymap で keymap.cson を開いて以下のように設定を追加する。
# 自動インデント整形 'atom-text-editor': 'ctrl-i': 'editor:auto-indent'
XCodeと同じにしたけど、かぶらなければ何のキーでも良いはず。
参考
最終的にはここを参考にしました。
【Atom】 インデントをショートカットキーに割り当てる(追記有:2016/03/07) – しきゆらの備忘録
マルチドメインの設定
やりたいこと
さくらVPSの自分のサーバにアクセスした時に表示されるファイルを置く場所は
/var/www/html/
なのだが、 /var/www/html/任意のフォルダ
にしたい
やったこと
マルチドメインの設定をすればいいのかなということで
とりあえず任意の名前でフォルダを作成
mkdir /var/www/html/任意のフォルダ
設定ファイルを作成
vi /etc/httpd/conf.d/vhost.conf
設定ファイルの中身にこれを書く
※任意のドメインは適宜取得してあるものとする
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/html/任意のフォルダ ServerName 任意のドメイン ServerAlias www.任意のドメイン <Directory "/var/www/html/任意のフォルダ"> AllowOverride All </Directory> </VirtualHost>
httpd.confを再起動
/etc/rc.d/init.d/httpd restart
参考
LAMP環境を作る
さくらVPSを借りた
ドメインの紐付けはなんかサイト上でごにょごにょやった
やること
とりあえず、yumのupdateをする
# sudo yum update
yumでインストールすると全体的にverが古いものがインストールされるようだが、一旦
apache
apacheインストール
# sudo yum -y install httpd
バージョン確認する
# httpd -v Server version: Apache/2.2.15 (Unix) Server built: Feb 9 2016 17:28:49
サーバの再起動時にapacheが自動で起動するようにする
# sudo chkconfig httpd on
自動起動設定確認
# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
2〜5が「on」になっていれば自動起動の設定ができている とのことなのでok
Apacheの設定ファイル(httpd.conf)を編集する
とりあえずバックアップ
# sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_20160227
vi で開いて編集
# sudo vi /etc/httpd/conf/httpd.conf
44行目 ServerTokensを「Prod」にする
78行目 KeepAliveを「On」にする
262行目 管理者のメールアドレスを編集(ServerAdmin アドレス)
331行目 Directoryのオプションで「Indexes」が有効になっているので、これにハイフン(-)をつけて無効化
536行目 ServerSignatureをOFFにする
それぞれ詳しくは参考URLへ
:wq
で保存して終了
設定内容のテスト
# sudo apachectl configtest Syntax OK
apache起動
# sudo service httpd start Starting httpd: [ OK ]
http://(自分のサーバのIPアドレス)
にアクセスしてapacheのページになれば、ok
MySQL
yumでインストール
sudo yum -y install mysql-server
ヴァージョン確認
# mysql --version mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
サーバ起動時に自動で起動するようにする
# sudo chkconfig mysqld on
Mysqlの設定ファイル(my.cnf)の編集するのでバックアップ
# sudo cp /etc/my.cnf /etc/my.cnf_20160227
編集する
# sudo vi /etc/my.cnf
以下あたりを追加
default-character-set=utf8 skip-character-set-client-handshake
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8
設定を保存したらMtSQLを起動
# sudo service mysqld start
Mysqlにログインするためのrootユーザーのパスワードを変更
X部分を適宜変える
# sudo mysqladmin -u root password 'XXXXXXX'
MySQLにログインしてみる
# mysql -u root -p
PHP
インストール
# sudo yum install php-devel php-mbstring php-mysql php-gd php-mcrypt php-xml php-pear
ヴァージョン情報
# php -v PHP 5.3.3 (cli) (built: Feb 9 2016 10:36:17) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
設定ファイルの編集
# sudo vi /etc/php.ini
以下あたりを修正
/検索したい語
で検索できる
error_log = /var/log/php_errors.log date.timezone = “Asia/Tokyo”
リスタート
# service httpd restart
参考
さくらVPSサーバにLAMP環境(Apache,PHP,Mysql)を設定する | NEZU.log
WEBサーバーの設定 | 初心者でもわかる!さくらVPS | Sakura VPS 設定マニュアル
PHPの設定 | 初心者でもわかる!さくらVPS | Sakura VPS 設定マニュアル
gitでtagとtagの間の差分を出力する
やりたいこと
gitのプロジェクトで以下のような感じでtagがついてる時、tag1とtag2の差分を出してzipにしたい
※SorceTreeで見た時
試したこと
上記のとおり、test1が古いtag、test2が新しいtag
(1) git archive --format=zip --prefix=root/ test1 `git diff --name-only test2 test1` -o archiveTest.zip (2) git archive --format=zip --prefix=root/ test2 `git diff --name-only test1 test2` -o archiveTest2.zip (3) git archive --format=zip --prefix=root/ test1 `git diff --name-only test1 test2` -o archiveTest3.zip
よくわかってない時の所感
(1)test1〜test2の間で失われたものが抽出された気がする
(2)test1〜test2の間で新しく追加されたものが抽出された気がする
(3)(1)と同じものが抽出された気がする
ググった
git diff の直前で指定してるコミットが抽出元のコミットだと理解
なので(1)と(2)の挙動の違いになる
git diff で指定してる2つのtagの順番に関しては、
git diff (基準) (変化後)
という扱いになる、が、上記のやり方だと、--name-only
オプションがついていることによって、「差分があるファイルを(差分だけでなく)全部抽出する」ということになるので、(1)と(3)の違いが出ないということ
ちなみに--name-only
オプションつけないと内容がそのまま出るのでarchiveに渡せなくて死ぬ
あと、tag1〜tag2間で削除されてるファイルとかあると以下みたいなエラーが出て死ぬ
fatal: pathspec 'hogehoge' did not match any files
--diff-filter=AMCR
みたいにgit diffにオプションをつけるといいらしい(詳しくは参照URL)
それと、削除ファイルがある場合は、git diff (新しいコミット)(古いコミット)
の順番でdiffしないと、オプションつけてても上と同じエラーが出て死ぬ
普通にdiff見る場合はgit diff (古いコミット)(新しいコミット)
が見やすいが、上記の場合は差分があるファイルがわかればいいだけなので逆でもまあ結果的にはいい
最終的にやったこと
git archive --format=zip --prefix=root/ tag2 `git diff --name-only --diff-filter=AMCR tag2 tag1` -o archive.zip
蛇足
上記のやりかただと差分自体はわかんねーんだよなというのがあり
以下のように差分だけtxt出力もした
git diff --diff-filter=AMCRD tag1 tag2 >> ~/diff.txt
こっちの場合は、差分だけ出るので、git diff (古いコミット)(新しいコミット)
の順番にする
2016/02/27 追記
commitコメントと変更ファイル情報を一緒に見たい時
git log --name-status --pretty=oneline tag1..tag2
--pretty=oneline
つけると1行!楽!!!
上記をtxtに出力したい時
git log --name-status --pretty=oneline tag1..tag2 >> ~/diffLog_oneline.txt
-m
をつけるとマージ情報も観れる
ブランチ間の特定のファイルのdiff
git diff tag1 tag2 ファイル名
参照
git tagで過去と現在のソースの差分をzipにまとめる | 株式会社アルベ | Arubeh Inc.
gitで差分ファイルを抽出してzipにまとめる方法 - HAM MEDIA MEMO
Gitを使って差分ファイルと差分情報を簡単に納品するコマンドのメモ - Qiita
git 差分を表示 (git diff) - saldnの物置
java事始め
しばらく前からjavaの勉強をはじめた
とりあえず投げつけてもらった入門書を読んだ
Amazon.co.jp: Java言語プログラミングレッスン 第3版(上): 結城 浩: 本
Amazon.co.jp: Java言語プログラミングレッスン 第3版(下): 結城 浩: 本
Eclipseをインストールした
最新が4.5.0だったのでそれ
eclipse入れる→古いJavaがないって言われるので入れる→Javaなんちゃらもないって言われる→( ゚ω ゚ )
みたいになった
これやったの1ヶ月前くらいなので記憶が定かではないが多分適当にいろいろ入れました
(eclipse最初に起動したらこれ↓に飛ばされたのでとりあえず入れた記憶)
(https://support.apple.com/kb/DL1572?locale=ja_JP)
Javaなんちゃらについて
JRE→実行環境
JDK→開発もできる
とのこと
蛇足だが
$ java -version
で今どのverがPCに入ってるか見れる
こういう感じ
java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
EclipseにTomcatを登録する
おおむね以下を参照しました
EclipseでTomcatをサーバーとして登録する - Qiita
記事内のTomcatのリンクは切れていたので
Apache Tomcat - Apache Tomcat 8 Downloads
↑の Binary Distributions の Core の zip を落としてきて設定した
Javaのプロジェクト作成する
Eclipseに慣れてないので手順を書いておく
eclipseのメニュー
File -> New -> Project -> Select a wizard のWeb -> Dynamic Web Project を選択
Project name 入れて Next
src を選択して Next
Context root 入れて Finish
するとBoardプロジェクトができたぞい
プロジェクトの中にパッケージを追加していく
src 配下に追加していく Packageを選択
パッケージの名前をつける
通例としてドメイン名みたいにする(以下ではcom.dormouse)とのこと(別に実在はしなくていい)
パッケージ名が違えば同じ名前のクラス名や処理でも置いておける
com.dormouse を右クリックして
com.dormouse.actionというパッケージを作成
その中に Class を作っていく
↑IndexActionというクラスを作成した際の画面
クラス名は頭を大文字にするのが通例っぽい
あとGenerate comments にチェック入れておくと@authorとか勝手につけてくれる
java書く
IndexActionに書いたもの
/** * */ package com.dormouse.action; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author dormouse666 * */ public class IndexAction extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().print("test"); //文字列を返す } }
メモ
- crl+スペースで補完 処理内の何もないところでやるとその処理内で使えるやつ出してくれる、有能
- ctl+iでインデント揃えてくれる
WebContent のWEB-INF配下に web.xml を追加
中身は投げつけてもらったのとよくわかってないのとで省略するが
以下みたいに作成したものを呼び出すときはこうしたいってのを書いておく
<servlet> <servlet-name>IndexAction</servlet-name> <!-- なんでもいいけどクラス名にしておく --> <servlet-class>com.dormouse.action.IndexAction</servlet-class> </servlet> <servlet-mapping> <servlet-name>IndexAction</servlet-name> <url-pattern>/java</url-pattern> <!-- このURLに来た時にIndexActionが呼ばれる --> </servlet-mapping>
tomcatに認識してもらう
eclipseのServersタブに、入れておいたTomcatがあるはずなので右クリックして上記のプロジェクトをaddする
これを
こうじゃ
こうなる
そいでtomcatをリスタートさせて(このタイミングだと勝手にされてるかも)、
自分で web.xml に設定したURLを叩く
IndexActionに書いてたやつが表示される
以上です
あと、tomcatのserver.xmlの下の方に、ContextのURLが書いてあるようなのでそこも見ておくとよいのかも
PATHを通す
やったこと
PostgreSQLのソースをサーバにインストールする - 狂ったお茶会のlog
の微妙な続き
cd /usr/local/pgsql/bin //場所移動 ./pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/logfile start //postgreSQL起動
上記記事でやってた↑の、場所移動して〜 ./
つけてコマンド叩いて〜を簡単にするために
PATHを通しておく
rootになって以下の場所に移動
[interdev@dormouse666 ~]$ sudo su - [root@dormouse666 ~]# cd /home/postgres
ディレクトリの中身見ると.bash_profile
がいるので
[root@dormouse666 postgres]# ls -a . .. .bash_history .bash_logout .bash_profile .bashrc .lesshst .psql_history
PATHのとこに:/usr/local/pgsql/bin
を増やす
最初はPATH=$PATH:$HOME/bin
しかない。おしりに増やす
[root@dormouse666 postgres]# vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin export PATH
なお、.bashrcにPATH書いてもいいらしい。お好み?
そいで任意のユーザになって
[root@dormouse666 postgres]# su - postgres
最初に書いたコマンドを、場所移動も./
つけるのもしないで叩く
[postgres@dormouse666 ~]$ pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/logfile start server starting
動く
以上です
参考
desknet's NEO (Linux+PostgreSQL 9.2) インストールガイド|desknet's NEO