Yuya Sato のアーカイブ

[RDS (MySQL)] Super権限操作で出たエラー

2017年7月26日

Amazon RDSを使用してMySQLを構築し、Super権限が必要な処理を実行しようとした所以下のようなエラーがでました。 ``` ERROR 1227 (42000) at line 8: Access denied; you need (at least one of) the SUPER privilege(s) for this operation ``` RDSではSuper権限が付与されたユーザはAWS側が管理用に確保しているrdsadminと
続きを読む

[Nginx] 画像などの静的ファイルのキャッシュ設定

2017年7月19日

jpgやcssなどの静的ファイルをキャッシュするようnginxに設定するにはserverディレクティブに以下のような設定をします。 ``` server { ... location ~ .*\.(html?|jpe?g|gif|pdf|png|css|js|ico|swf|inc) { expires 1d; access_log off; } ... } ```
続きを読む

[git] 強制的にgit pullする

2017年7月18日

リモートリポジトリをpullしたいが、ローカルで適当にした作業が原因でpull出来ない時、 ``` $ git fetch master $ git reset --hard origin/master ```
続きを読む

[PHP] SOAP APIを叩く

2017年7月12日

RESTではなくSOAP APIをスクリプトから叩こうと思い調べました。 Pythonなどではsuds-jurkoといった外部ライブラリが有りましたが開発が終わっているようでした。 PHPを使うとSOAP Clientモジュールを使用して簡単にSOAP APIを叩けました。 ``` # SOAP Clientモジュールが入っていない時 $ yum install php-soap ``` ``` ``` http://php.net/manu
続きを読む

[AmazonLinux] yumでPHP 7.1をインストール

2017年7月11日

amzn-mainリポジトリを明示的にdisableする必要があったり、CentOSにインストールする時と比べると手間がかかります。 ``` yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # 必要なライブラリ群 yum -y install libwebp --disablerepo=amzn-main --enablerepo=epel yum -y inst
続きを読む

[CentOS] yumでPHP 7.1をインストール

2017年7月11日

remiリポジトリを使用してPHP 7.1をインストールする。 ``` $ yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm (CentOS7の場合はhttp://rpms.famillecollet.com/enterprise/remi-release-7.rpm) $ yum install yum-utils $ yum-config-manager --e
続きを読む

[Python]コンソールに色付き文字を出力する

2017年7月5日

``` SUCCEED = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' print SUCCEED + 'Success!' + ENDC print WARNING + 'Warning' + ENDC print FAIL + 'Fail!' + ENDC ```
続きを読む

[MySQL]バイナリログの設定

2017年7月4日

差分バックアップなどに使えるバイナリログを設定するには以下のように設定します。 /etc/my.cnf ``` [mysqld] ... # Binary log log_bin="/var/log/mysql/bin.log" ... ``` ログディレクトリ作成 ``` $ mkdir /var/log/mysql $ chown -R mysql:mysql /var/log/mysql ```
続きを読む

MySQL5.7のTDE

2017年6月30日

MySQL5.7にはTDE(Transparent Data Encryption)というデータ暗号化機能があります。 アプリケーション側で暗号化をしなくても、テーブルファイルなどを暗号化してくれます。 設定手順は以下のような感じです。 * TDEの有効下 /etc/my.cnf ``` [mysqld] early-plugin-load=keyring_file.so keyring_file_data=/usr/local/mysql/my
続きを読む

[awk]ログから特定の範囲の日時のものを抽出する

2017年6月28日

/var/log/secureなどのログフィアルから、特定の範囲の日時を指定して、そのログだけを抽出する方法 ``` $ awk -F - '"開始時間" < $1 && $1
続きを読む

[Python] 長い文字列を改行して書く

2017年6月21日

pythonでrequestsモジュールなどを用いてparameterなどの値を設定したい時、追加したいparameterの値がたくさんあると文字列が長くなってコードが見づらくなる。 また、文字列内に変数を格納したいときなどはさらにややこしい書き方になってしまうので、見やすく改行して書く。 ``` import requests access_key = "XXXX" user = "XXX" password = "XXXYYY" keyword
続きを読む

[bash] ファイルの先頭を飛ばす or 後ろを飛ばす

2017年6月20日

ファイルの内容などを読み込むときに、ヘッダーのような項目がかいてあるような行はスクリプトで処理する時に邪魔になるので、 tailコマンドで飛ばします。 ``` # 先頭2行を飛ばす(3行目から表示) $ tail -n +3 hoge.txt # 逆に後ろ2行を飛ばす $ head -n -2 hoge.txt ```
続きを読む

[Python] dictで順番を記憶する

2017年6月7日

Pythonのdictは順番が記憶されないので、forなどで回した時に追加した順では無い時がある。 PythonではOrderedDictを用いると順番が記憶される。通常のdictと同じようにhas_keyなどのメソッドも使用可能 ``` from collections import OrderedDict dict = OrderedDict() dict["hoge"] = 1 ... ```
続きを読む

[Apache] TLSのバージョンによって処理を変更する

2017年6月7日

TLSのバージョンによって、他のページやサイトに遷移させたりする場合は、.htaccessに以下のような設定を記述する。 ``` RewriteEngine On RewriteCond %{SSL:SSL_PROTOCOL} !^TLSv1\.2$ RewriteRule ^(.*) http://google.co.jp [R=301,L] ``` 上の設定では、TLSv1.2以外のバージョンでアクセスされた場合googleにリダイレクトするよ
続きを読む

[Python] pipで任意のディレクトリにライブラリをインストールする

2017年6月2日

Lambdaなどの開発をしていると、開発環境で書いたコードをawsにアップロードする場合があります。 この時外部のライブラリを使いたい場合はそのライブラリ関連ファイルも一緒にアップロードしなければなりません。 pipなどを使ってライブラリをインストールする時は、Lambdaのプロジェクトディレクトリにライブラリをインストールします。 ``` $ pip install requests -t /path/to/lambda_project ``` tオ
続きを読む

[EC2] 仮想化タイプ

2017年5月26日

EC2には2つのか仮想化タイプが存在します。 ### PV (Paravirtual) 準仮想化方式。PV-GRUBという特別なブートローダーを使用して起動される。 ### HVM (Hardware-assisted VM) 完全仮想化。ベアメタルなどと同様に、BIOS->ブートローダー->OSのような感じで起動される。 ### 参考 http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserG
続きを読む

Centosのシステムバックアップを取る

2017年5月24日

Centosのシステムバックアップを取るオープンソース・ソフトウェアとしてMondo Rescueがある( http://www.mondorescue.org/ )。 ``` # repo追加 $ cd /etc/yum.repos.d $ wget http://www.mondorescue.org/ftp/centos/7/x86_64/mondorescue.repo # mondo rescueインストール $ yum install mondo
続きを読む

DataTablesを使用してtableにページングやソート機能を付ける

2017年5月17日

Bootstrapなどでtable要素をいい感じに作れますが、ページングやソート機能、検索機能などをつけようとすると自分で色々といじっていく必要がありますが、[DataTables](https://datatables.net/)を使うとそのような機能を簡単に作ることが出来ます。 使用方法は以下のようにhead内にcssとjsのリンクを追加します。 ``` jQuery(function($
続きを読む

[Python] 設定ファイルを扱う

2017年5月12日

Pythonのスクリプトなどで、アクセスキーやメールアドレス、パスワードなどの変数をスクリプトの直接書き込まずに、設定ファイルとして分離して扱うときにConfigParserモジュールを使用します。 ### 設定ファイルの作成 ``` from ConfigParser import ConfigParser config = ConfigParser() section = 'development' config.add_section(sec
続きを読む

[Apache] suEXECでCGIを実行するユーザを変更する

2017年5月10日

ApacheはCGIを起動する際デフォルトではApacheを起動しているユーザ(rootやapache)で起動します。 しかし、自前CGIなどを起動する場合などは思わぬ挙動を示して他ユーザのファイルを削除してしまったり、セキュリティ的に問題となる場合があります。 その時はsuEXECを使用してCGIを実行するユーザを指定します。 httpd.confに以下を追加することで指定できます。 ``` SuExecUserGroup taro taro ```
続きを読む