2017年12月27日水曜日

PHPをダウングレードする(7.2→7.1)

PHPをがんばって最新版(7.2)にしたら、NextcloudではPHP7.1以下しかサポートしていません!ということだったので、以下を参考にダウングレードしました。

PHPのバージョンをダウングレードする方法 – 零弐壱蜂
https://b.0218.jp/20171002020523.html

私ののサーバー環境では、
# yum list installed | grep php72
を実行すると、

php.x86_64 7.2.0-2.el7.remi @remi-php72
php-bcmath.x86_64 7.2.0-2.el7.remi @remi-php72
php-cli.x86_64 7.2.0-2.el7.remi @remi-php72
php-common.x86_64 7.2.0-2.el7.remi @remi-php72
php-devel.x86_64 7.2.0-2.el7.remi @remi-php72
php-gd.x86_64 7.2.0-2.el7.remi @remi-php72
php-gmp.x86_64 7.2.0-2.el7.remi @remi-php72
php-intl.x86_64 7.2.0-2.el7.remi @remi-php72
php-json.x86_64 7.2.0-2.el7.remi @remi-php72
php-mbstring.x86_64 7.2.0-2.el7.remi @remi-php72
php-mysqlnd.x86_64 7.2.0-2.el7.remi @remi-php72
php-pdo.x86_64 7.2.0-2.el7.remi @remi-php72
php-pecl-zip.x86_64 1.15.2-1.el7.remi.7.2 @remi-php72
php-process.x86_64 7.2.0-2.el7.remi @remi-php72
php-recode.x86_64 7.2.0-2.el7.remi @remi-php72
php-tidy.x86_64 7.2.0-2.el7.remi @remi-php72
php-xml.x86_64 7.2.0-2.el7.remi @remi-php72

となったので、以下のようにアンインストール・インストールしました。

アンインストール
yum remove -y php php-bcmath php-cli php-common php-devel php-gd
php-gmp php-intl php-json php-mbstring php-mysqlnd php-pdo
php-pecl-zip php-process php-recode php-tidy php-xml

インストール
yum install -y php php-bcmath php-cli php-common php-devel php-gd
php-gmp php-intl php-json php-mbstring php-mysqlnd php-pdo
php-pecl-zip php-process php-recode php-tidy php-xml


無事完了しました。

2017年12月26日火曜日

サーバー移設後、WordPressでトップページ以外が表示されない

他サーバーから、さくらVPSにWordPressを移設したのですが、
トップページ以外が表示されなくなってしまいました。
デフォルトでは.htaccess が効いていないようでしたので、以下を参考に修正しました。


WordPressでトップページ以外が表示されない
http://www.rp1.jp/blog/archives/486


それでもトップページ以外が正しく表示されない場合は、「.htaccess」そのものが機能していないことがあります。

「/etc/httpd/conf/httpd.conf」の下記の部分を参照してみて下さい。

<Directory "/home/(ユーザー名)/public_html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

そして、上から3行目を下記の通りに編集します。

編集前: AllowOverride None
編集後: AllowOverride All

これにより、「.htaccess」そのものが機能します。

共用サーバーではデフォルトで「.htaccess」が利用できる場合が殆どですが、VPSを利用している場合には注意が必要です。

さくらのVPSにCentOS7/Apache/MariaDB/PHP7をインストールした手順メモ

1.さくらのVPSコントロールパネルで以下を選択しOSをインストール
標準OSインストール :CentOS7
スタートアップスクリプト:CentOS_LAMP
※LAMP環境でfirewalldも標準的に設定されるので楽です。


2.SSL証明書の設定
以下のとおりにします。
ネコでもわかる!さくらのVPS講座 ~第六回「無料SSL証明書 Let's Encryptを導入しよう」
https://knowledge.sakura.ad.jp/10534/


3.PHP5.4からPHP7にアップデート
PHPについては以下の通りにアップデートします。
ネコでもわかる!さくらのVPS講座 ~第四回「phpとMariaDBをインストールしよう」
https://knowledge.sakura.ad.jp/9006/


# yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring
php-mysqlnd php-pdo php-gd
については、
# yum install --enablerepo=remi,remi-php72 php php-devel php-mbstring
php-mysqlnd php-pdo php-gd
にすると、PHP7.2がインストールできます。

※php.ini の以下も忘れずに
post_max_size = 8M → 512M(例)
upload_max_filesize = 2M → 512M(例)


4.MariaDBのrootユーザーにパスワード設定
以下でrootユーザーパスワードを設定しようとしても、なぜかエラー
# mysql_secure_installation

そのため、
# mysqladmin -u root password パスワード
でパスワード設定した。

5.MariaDBのアップデート
# yum update mariadb-server -y
でアップデート

以下を参考
yumでmysql(maria DB)を最新安定バージョンにアップデートする(Cent OS7) - Qiita
https://qiita.com/meguroman/items/a822b98253b61d541783

※新規インストールするとどうもうまく動作しなくなったのでアップデートした。

6.MariaDBの文字設定をUTF-8にする

/etc/my.cnf 内に以下を追加した。

# vi /etc/my.cnf

[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default-character-set=utf8
[client]
default-character-set = utf8

以下を参考
MySQLインストールの後、初期設定をする手順
http://blog.ybbo.net/2015/03/24/how-to-set-mysql-after-install/


7.index.htmlがないとき、ファイル一覧を表示させないようにする

方法1
/etc/httpd/conf/httpd.conf 内ので
Options Indexes FollowSymLinks に#を付けて無効化する。


<Directory "/var/www/html">
 ~
    #Options Indexes FollowSymLinks
 ~
</Directory>

方法2
/var/www/html/.htaccess 内に以下を追記する。
Options -Indexes




2017年12月25日月曜日

CentOS 7 Apache 接続できない場合は、firewalldの設定をする


Apache httpd 2.4 を CentOS 7 に yum でインストールする手順 | WEB ARCH LABO
https://weblabo.oscasierra.net/apache-installing-apache24-yum-centos7-1/

※CentOS7の場合、firewalldが有効になっているのでhttp接続できない場合があるので、以下のように対処

※一時的にファイアウォールを無効にする
# systemctl stop firewalld

※あるいは、firewalld に httpd (80番ポート)への通信を許可する場合、つぎのようなコマンドで設定できます。
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --reload



Raspberry PiとFirebaseでブラウザからエアコン操作 - Qiita

ナビゲーション研究

Web制作者がチェックしておきたい、最近のWebサイトで使用されているナビゲーションのデザインとアイデア | コリス
http://coliss.com/articles/build-websites/operation/work/12-ways-the-perfect-site-navigation.html

WordPressテンプレート フリー&有料

Illdy - Free One Page WordPress Business Theme - Colorlib
https://colorlib.com/wp/themes/illdy/

React / Vue.js で開発する時のポイント

参考
中〜大規模なSPAを開発する時に抑えておきたい10のポイント - KAYAC engineers' blog
http://techblog.kayac.com/10-spa-knowhow


2017年12月13日水曜日

リンクのtitle属性をツールチップで表示させない方法

ブラウザで画像上にマウスカーソルを置くと、ツールチップが出てきて困った。

<a href="......" title="ABC"><img src="......" /></a>

ツールチップで、ABC が表示されてしまいます。

簡易的な解決方法

<a href="......" title="ABC"><img src="......" title="DEF" /></a>

上記のようにすると、imgタグのtitle属性が優先されて、DEFが表示される。



参考
http://bujin450.blogspot.jp/2013/02/lightboxtitle.html

HTML5 UP! Responsive HTML5 and CSS3 Site Templates

2017年12月9日土曜日

Networld HelpDesk

https://hds.networld.co.jp/helpdesk/support/FaqFacadeServlet?TaskType=Detail&seriesId=Fortinet&id=00002503&categoryId=0194&JspUrl=/support/FrequentlyDetail.jsp

Fortinet



Linux用FortiClient(SSL-VPNバージョン)のインストール手順について


LinuxにFortiClientのSSL-VPNバージョンをインストールする方法を教えてください。

________________________________


■対象OS:-

下記の手順でLinuxへインストールできます。

①forticlientsslvpn_linux_(version).tar.gzを展開します。
②管理者権限からforticlientsslvpnを実行します。
③ライセンス規約条項が表示されますので内容を確認し、[Agree]を押します。
 その後、FortiClient SSL VPN tunnel client (Linux)が開かれます。

以上でインストールは終了となります。
初回起動後は管理者権限のないユーザもforticlientsslvpnを実行することができます。

なお、Linux版SSL VPN standalone clientは下記のOSにてサポートされます。

・ Linux CentOS version 5.6
・ Linux Ubuntu version 12.0.4


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

製品導入前に関するお問い合わせはネットワールド問い合わせ窓口 までお問い合わせ下さい。

製品導入後に関するお問い合わせはネットワールド保守窓口 までお問い合わせ下さい。

FAQトップへ



ID:00002503 | 作成日:2013/09/30(月) | 更新日:2016/03/30(水)
カテゴリ: その他
対象
: FGT: FortiGate
FGT-VM: FortiGate-VM

さくらVPS上にSoftEtherを使ってVPNサーバ(L2TP/IPSec and OpenVPN)を立てる方法 - MyEnigma

http://myenigma.hatenablog.com/entry/2017/05/11/152334

2017年12月8日金曜日

2017年12月7日木曜日

DjangoでAPIの実装

Django REST Frameworkを使って爆速でAPIを実装する - Qiita
登場です。Django自身の機能と合わせて作ることで、何もない状態から爆速でAPI作成までを実現できます。
https://qiita.com/kimihiro_n/items/86e0a9e619720e57ecd8

2017年12月6日水曜日

SVG文法の基礎

SVG MANIAX - CSS Nite After dark7
https://www.slideshare.net/ssuser99dc16/svg-maniaxcss-nite-after-dark7-svgmatsuda

<iframe src="//www.slideshare.net/slideshow/embed_code/key/pw7Q4xhLzGla91" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/ssuser99dc16/svg-maniaxcss-nite-after-dark7-svgmatsuda" title="SVG MANIAX - CSS Nite After dark7" target="_blank">SVG MANIAX - CSS Nite After dark7</a> </strong> from <strong><a href="https://www.slideshare.net/ssuser99dc16" target="_blank">Naoki Matsuda</a></strong> </div>

配色アプリ [ HUE / 360 ] The Color Scheme Application

[ HUE / 360 ] The Color Scheme Application
http://hue360.herokuapp.com/

ノンデザイナーのための配色理論

Paragon、APFSフォーマットのストレージをLinuxでも利用できるようにする「APFS for Linux」を発表。 | AAPL Ch.

2017年12月4日月曜日

郵便番号データについて

市場バグを引き起こした優秀なデータたち - ボドゲを愛するテスト屋さん
http://teamomusoba.hatenablog.com/entry/2017/12/01/015200


郵便番号や市区町村データを取り扱うときにはまったこと - Qiita


郵便番号 452-0961(愛知県 清須市 春日)は該当町名がたいへん多い
※愛知県清須市が西春日井郡春日町を編入したため

県をまたいで同じ郵便番号を持つ場合がある(計3件らしい)

郵便番号 498-0000
愛知県 弥富市
三重県 桑名郡木曽岬町


2017年12月1日金曜日

Windows パスワード付きZIPファイル内のJPEG画像が開けない

Windows7/10で、パスワード付ZIPファイルを解凍したとき、JPEG画像がエラーで開かなかった。

JPG画像が、Windows フォトビューワーに関連付けされているとこの症状が起こるらしい。
関連付け変更が面倒な場合は、Macや他のPCで解凍してみましょう。

参考
パスワード付きZIPファイルで画像が開けないことがある:yogi:So-net blog
http://yogi.blog.so-net.ne.jp/2015-06-05

2017年11月30日木曜日

Python3にアップデートしたらyumが使えなくなった

・サクラインターネットVPS
・CentOS6(デフォルトではPython2.6)

症状:Pythonを3にアップデートしたらyumでエラーが出て動作しない

エラー例
# yum install lynx
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax


原因:シンボリックリンクを確認。python3が起動するようになってしまっている。

# ls -l /usr/bin/python*
lrwxrwxrwx  1 root root    16 11月 20 20:24 2017 /usr/bin/python -> /usr/bin/python3
lrwxrwxrwx. 1 root root     6 10月  5 00:53 2017 /usr/bin/python2 -> python
-rwxr-xr-x  1 root root  9032  8月 19 00:14 2016 /usr/bin/python2.6
lrwxrwxrwx  1 root root    18 11月 20 20:24 2017 /usr/bin/python3 -> /usr/bin/python3.6


解決方法:
"python"でpython2が起動するように、シンボリックリンクを上書き修正する
# ln -sfn /usr/bin/python2.6 /usr/bin/python


# ls -l /usr/bin/python*
lrwxrwxrwx  1 root root    18 11月 30 11:01 2017 /usr/bin/python -> /usr/bin/python2.6
lrwxrwxrwx. 1 root root     6 10月  5 00:53 2017 /usr/bin/python2 -> python
-rwxr-xr-x  1 root root  9032  8月 19 00:14 2016 /usr/bin/python2.6
lrwxrwxrwx  1 root root    18 11月 20 20:24 2017 /usr/bin/python3 -> /usr/bin/python3.6


参考
pythonバージョンアップによる/bin/yumのsyntaxエラー [except KeyboardInterrupt, e:] – yoseatsu.me
http://yoseatsu.me/article/4983

x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama|note

2017年11月28日火曜日

BitbucketにGit PUSHしてサーバーに自動でデプロイしちゃうよ! | ザ サイベース

https://thesaibase.com/server/bitbucket-git-push-deploy

ownCloud10 ローカルストレージが設定できない

ownCloud9 のときにはあった、「ローカル」ストレージが、ownCloud10では選択できなくなっていたので困っていたところ、以下の記事で解決しました。


config/config.php ファイルに以下を追加します。
'files_external_allow_create_new_local' => 'true',

<config.php ファイル例>
・・・・・
・・・・・
  'logtimezone' => 'Asia/Tokyo',
  'installed' => true,
  'files_external_allow_create_new_local' => 'true',
);


セキュリティ上デフォルトでは不可になったようです。


2017年11月21日火曜日

Linux ファイルのハッシュ値を一覧にする方法

カレントディレクトリ以下すべてのファイル名とそのハッシュ値を、ファイル(filelist.sha512sum)に出力する

$ find . -type f -exec sha512sum {} \; > filelist.sha512sum


カレントディレクトリ以下のファイル(app.php)のハッシュ値を、ファイル(filelist.sha512sum)に出力する

$ find . -name app.php -exec sha512sum {} \; > filelist.sha512sum


※sha512sum は、場合によりmd5、sha128sum等々に変更してください。

2017年11月20日月曜日

さくらインターネットVPS(CentOS6)にPython3をインストール

さくらインターネットVPS
CentOS 6.9 (Final)


IUS Community Project リポジトリ追加
# yum install -y https://centos6.iuscommunity.org/ius-release.rpm

Python3.6系のインストール
# yum install -y python35u python36u-libs python36u-devel python36u-pip

エイリアスの設定
# ln -s /usr/bin/python3.6 /usr/bin/python3
# unlink /usr/bin/python
# ln -s /usr/bin/python3 /usr/bin/python
# ln -s /usr/bin/pip3.6 /usr/bin/pip

以上でPython3.6.3がインストールされました。
2017.11.20現在


参考
CentOS6にPython3入れる - Qiita
https://qiita.com/f-akazawa/items/5ec741f8a5cca999d7b3

サイバーセキュリティ経営ガイドライン

サイバーセキュリティ経営ガイドラインを改訂しました(METI/経済産業省)
http://www.meti.go.jp/press/2017/11/20171116003/20171116003.html

2017年11月17日金曜日

CentOS さくらのVPSで強制再起動したら起動しなくなった

以下の方法でなんとか解決。

ただSSL設定していたので、再起動時にApacheがSSLのパスワードを聞いてくるのですが、
VNCコンソールではなぜかパスワードが入力できない??
もう一つ、シリアルコンソール(β版)というものがあったので、こちらで入力できました。
無事起動しました!!

さくらのVPSの管理画面から強制再起動したらだめですね。注意書きがほしかったです。


さくらのVPSで再起動したらエラーでOSが立ち上がらなくなったときの解決方法 - yuma's LOG
http://yumasty.hatenablog.com/entry/2017/02/23/200000

<方法>
①さくらのVPSのオンラインツールから強制再起動
②急いでVNCコンソールを起動
③Enterキーを2回
f:id:Yumasty:20170223190606p:plain
④実行後に上記のような選択画面が表示されます(人によって多少違うと思います)ので2番目を選択してEnterしましょう。1番上を選択すると同様のエラーが発生するので注意が必要です。

2017年11月16日木曜日

さくら VPS (CentOS) の文字コード設定

さくら VPS (CentOS) の vim の文字化け等のバグ解消方法 | monopocket blog
http://monopocket.jp/blog/linux/1862/


CentOSの言語設定ファイル(/etc/sysconfig/i18n)を変更する。

1.デフォルト言語設定確認

$ printenv | grep LANG

→LANG=C

LANG=C となっている。Cはデフォルトの設定Cロケールのこと。

2.vim で言語設定ファイルを開く

sudo vim /etc/sysconfig/i18n

デフォルトの設定 (/etc/sysconfig/i18n)
 LANG="C"
 SYSFONT="latarcyrheb-sun16"

編集後の設定 (/etc/sysconfig/i18n)
 LANG="ja_JP.UTF-8"
 SYSFONT="latarcyrheb-sun16"

3.サーバを再起動。再度言語設定を確認。

編集後の言語設定確認
$ printenv | grep LANG

→LANG=ja_JP.UTF-8

デジタルブック FLIPPER

HTML5対応~デジタルブック・電子ブック作成ソフト【FLIPPER】
https://suite.logosware.com/flipper-maker/

Apache .htaccessでリファラーを制限する方法

.htaccess ファイルに以下のように記述します。

https://www.example.co.jp からのリクエストのみ応答する設定

SetEnvIf Referer "^https://www\.example\.co\.jp" chk_url
order deny,allow
deny from all
allow from env=chk_url

AWS S3 特定のリファラーのみ接続可能にする

AWS S3のバケットポリシー設定~リファラーでの制限~ - Qiita
https://qiita.com/CyberMergina/items/76e4ec0970122e861cb7

{      "Version": "2012-10-17",      "Statement": [          {              "Sid": "Public Read Bucket Objects",              "Effect": "Allow",              "Principal": "*",              "Action": "s3:*",              "Resource": "arn:aws:s3:::xxxx.xxxx.xx/*"          },          {              "Sid": "Referer Deny",              "Effect": "Deny",              "Principal": "*",              "Action": "s3:*",              "Resource": "arn:aws:s3:::xxxx.xxxx.xx/*",              "Condition": {                  "StringNotLike": {                      "aws:Referer": [                          "http://sitea.xxx/*",                          "http://siteb.xxxxx/*"                      ]                  }              }          }      ]  }

動画をAWS S3にアップロードしたら自動でAmazon Elastic Transcoderでエンコードしながらサムネイルを作成する - Qiita

Web制作者がチェックしておきたい、気持ちいいインタラクションやUIを実装できるJavaScriptのまとめ | コリス

Pythonに咬まれるな : 注意すべきセキュリティリスクのリスト | プログラミング | POSTD

WebAssemblyはなぜ速いのか | プログラミング | POSTD

2017年11月4日土曜日

2017年11月2日木曜日

ownCloud アクティビティのメール通知時間がずれる件

ownCloudのアクティビティのメール通知時間がずれている原因がなかなか分からなかったが、以下で一応、解決した。

/owncloud/apps/activity/appinfo/app.php 内に次の1行を追加する。

date_default_timezone_set('Asia/Tokyo');

参考
Notification time is in UTC instead of my timezone · Issue #175 · owncloud/activity · GitHub
https://github.com/owncloud/activity/issues/175


※/owncloud/config/config.php 内の

  'logtimezone' => 'UTC',

  も以下に修正しておく。

  'logtimezone' => 'Asia/Tokyo',


※この変更をすると、「ファイル整合性の確認で問題が発生しました」というアラートが管理画面出る場合がありますが、デフォルトのファイル(上記app.php)に変更が加えられたというアラートなので特に問題はありません。アラートが出ないようにするにはDBを修正すればよいかと思いますが未確認です。

2017年11月1日水曜日

エックスサーバー(Xserver)のSPF設定

DNSの設定→SPF設定機能でTXTレコードの追加をします。

エックスサーバーマニュアルでは、下記のようになっていますが、

ホスト:空白(入力なし)
種別:TXT
内容:v=spf1 +ip4:000.000.000.000 ~all
優先度:0

内容を以下のようにしてください。

内容:v=spf1 +ip4:000.000.000.000 +a:sv++++.xserver.jp +mx ~all



000.000.000.000 は自分のIPアドレス
++++ はサーバー番号



参考
エックスサーバー(Xserver)でSPF設定をしてみました。
http://www.sapporo-seo.info/entry/160511

非デザイナーエンジニアが一人でWebサービスを作るときに便利なツール32選 - Qiita

https://qiita.com/okappy/items/119e31cae9aa9bd9da6d?utm_source=Qiita%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&utm_campaign=9e445cffcc-Qiita_newsletter_284_11_01_2017&utm_medium=email&utm_term=0_e44feaa081-9e445cffcc-33160825

ブロックチェーンを作ることで学ぶ 〜ブロックチェーンがどのように動いているのか学ぶ最速の方法は作ってみることだ〜 - Qiita

https://qiita.com/hidehiro98/items/841ece65d896aeaa8a2a?utm_source=Qiita%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&utm_campaign=9e445cffcc-Qiita_newsletter_284_11_01_2017&utm_medium=email&utm_term=0_e44feaa081-9e445cffcc-33160825

2017年10月26日木曜日

キャッシュしないCloudFrontを設置する | // sakura note

https://saku.io/setup-cloudfront-without-caching/

Linux (CentOS): cron が実行されない場合

cronが実行されない、おかしいなと思っていたら、そもそもcrondが起動していませんでした...

起動方法

# そもそも動いているか確認
/etc/rc.d/init.d/crond status

# 起動する
/etc/rc.d/init.d/crond start

# 自動起動の設定
chkconfig --list crond
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off



crontabを設定しても実行されない時の確認ポイント · GitHub
https://gist.github.com/koudaiii/49ac3f8b7c207f0da31f


(CentOS6まで)サービス自動起動の設定
http://kazmax.zpp.jp/linux_beginner/chkconfig.html

apacheユーザでcron設定したいがログインできない場合

ownCloudでcron設定をしようとしたのですが、apacheユーザでログインできないのでどうしたらよいのか調べました。

以下でユーザ指定でcronが設定できました。

% crontab -u apache -e

参考
http://kimagureneet.hatenablog.com/entry/2014/08/16/191407

【AWS】Nextcloud環境をAmazonLinuxに構築 - zuntan02のはてなブログ

http://zuntan02.hateblo.jp/entry/2017/01/20/182611

2017年10月24日火曜日

LDAPサーバについて

PHPのファイルアップロードサイズの変更

PHPの設定として最初にやっておくべきこと

メモリ1G、最大ファイルサイズ512M位が妥当でしょうか。

;This sets the maximum amount of memory in bytes that a script is allowed to allocate
memory_limit = 1G
 
;The maximum size of an uploaded file.
upload_max_filesize = 512M
 
;Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize
post_max_size = 512M



ownCloudでアップロード容量を変更する - Carpe Diem
http://christina04.hatenablog.com/entry/2014/10/28/103429

AWS S3 を SSL で公開する方法

SPAを S3+CloudFront で表示する方法 - Carpe Diem
http://christina04.hatenablog.com/entry/2017/05/25/190000

2017年10月23日月曜日

2017年10月19日木曜日

How to Install SugarCRM Community Edition on CentOS 7/6 and Debian 8

完全なSQLインジェクション対策 | yohgaki's blog

LDAP

第1回 まずは使ってみよう:そろそろLDAPにしてみないか?|gihyo.jp … 技術評論社
http://gihyo.jp/admin/serial/01/ldap/0001

AWSでVPN構築

Amazon EC2でクライアント証明書認証のVPNを構築 | 俺とお前とlaysakura
https://laysakura.github.io/2016/07/24/cir0gtu71000kibiu1skemk6c/

CentOS/Apache SSL導入後、Apache再起動時のパスフレーズ要求を無効化する

SSL導入すると、Apache再起動時にパスフレーズを要求されるが、これを無効化する方法



CentOS に Apache HTTPD を導入して SSL を有効にする : まだプログラマーですが何か?

これでデジタル証明書の作成までできましたが、このまま使うと Apache HTTPD の起動時にパスフレーズの入力を求められることになります。開発期間中はそれでもいいのかもしれませんが、実際の運用はサーバーの起動と同時に HTTPD サーバーも起動させたりするので、ここまでの作業が完了していればパスフレーズは不要と言えます。パスフレーズは以下のコマンドで解除することができるので、一応紹介しておきます:

# mv server.key server.key.bak
# openssl rsa -in server.key.bak > server.key
Enter pass phrase for server.key.back:パスフレーズ
writing RSA key
http://dotnsf.blog.jp/archives/3181024.html

オレオレ認証局でクライアント認証 ~ ウェブの Basic 認証をリプレース | OPTPiX Labs Blog

2017年10月11日水曜日

[MySQL]データベースの作成、ユーザの追加と権限の設定 | 本日も乙

http://blog.jicoman.info/2013/08/mysql_user/

MySQL ユーザーの権限の確認と付与 - Qiita

https://qiita.com/shuntaro_tamura/items/2fb114b8c5d1384648aa

登録されてるホストとユーザー名の確認
select user, host from mysql.user;

特定のユーザーの権限確認
show grants for 'ユーザー名'@'ホスト名';

権限の付与
GRANT 権限 ON レベル TO ユーザ IDENTIFIED BY PASSWORD '****'の形式で権限を付与できる。
このコマンドにより、既存でないユーザー名を書けば新たにユーザーが生成される。

GRANTコマンドで権限付与
権限のところにはselect、update、insert、delete、の組み合わせやallなどを記述。

レベルは以下の4種類
グローバルレベル:GRANT 権限 ON *.* TO user;
データベースレベル:GRANT 権限 ON db_name.* TO user;
テーブルレベル:GRANT 権限 ON db_name.table_name TO user;
カラムレベル:GRANT 権限 (カラム1, カラム2, ...) ON db_name.table_name TO user;
ユーザー名は、既存のユーザーなら権限上書き、既存でないユーザーなら新しくユーザーが生成されて権限付与。
IDENTIFIED BY PASSWORD '****'でパスワード設定
(例)

grant select, update on db_name.* to 'hoge_user'@'localhost'
identified by password 'passwd';

MySQLユーザーが追加できない

MySQLを5.1から5.6にアップグレードしたらユーザーが追加できなくなった。
エラーメッセージには、mysql_upgradeをやりなさいと出てくるので以下で対処しました。

mysql_upgrade のやり方

mysqld が起動している状態で以下のコマンドを実行する。

mysql_upgrade -u root -p



mysql_upgrade を実行する | Firegoby
https://firegoby.jp/archives/2171

phpMyAdminにアクセスできない(Forbiddenと表示される)

# yum -y install phpMyAdmin

でCentOSにphpMyAdminはインストールされるが、

http://(サーバーのIPアドレス)/phpMyAdmin

でアクセスできない場合は、

/etc/httpd/conf.d/phpMyAdmin.conf の

<Directory /usr/share/phpMyAdmin/>
order deny,allow
deny from all
#allow from 127.0.0.1
#allow from ::1
allow from All ←こうするとどこからでもアクセスできるので以下のようにしたほうがよい。
allow from 192.168.0 ←IPアドレスの先頭の3つの数字
</Directory>


yumでインストールしたphpMyAdminが「Forbidden」と表示された時 | アイビースター
http://ivystar.jp/database/mysql/yum%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%9Fphpmyadmin%E3%81%8C%EF%BD%A2forbidden%EF%BD%A3%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%9F%E6%99%82/

PHP7の場合のphpMyAdminインストール方法

CentOS
yum --enablerepo=remi install phpmyadmin 


PHP - CentOS7、Apache2.4、PHP7、MySQL5.7にてphpMyAdminがインストールされません(57138)|teratail https://teratail.com/questions/57138

MySQL DB情報確認コマンド

dbhost ホスト名確認
mysql> show variables like 'hostname';

mysqlで接続しているDBサーバのホスト名を確認する方法 - Qiita
https://qiita.com/nii_yan/items/0265f69370bbdb883655


存在するDBの確認
mysql > SHOW DATABASES;

DB上に存在するテーブルを確認
mysql > SHOW CREATE DATABASES DB_NAME;

MySQLのDBとテーブルの情報を確認する | OpenGroove
https://open-groove.net/mysql/mysql-db-table-check/

MySQL rootの初期パスワード設定

MySQLのrootパスワードを設定 - Linux環境 - MySQL入門 - Webkaru
https://webkaru.net/mysql/mysql-root-password/

MySQLにログインしてパスワードを設定

MySQLにログイン(パスワードなしでログインできます)します。プロンプトが #(または$) から mysql> に変更されたら、下記のようにrootのパスワードを設定します。

# mysql -u root    mysql> update mysql.user set password=password('root用の任意パスワード') where user = 'root';  mysql> flush privileges; ← 変更を反映  mysql> exit;  

設定したパスワードでログインできるかを確認します。

# mysql -u root -p  Enter password: 

MySQLの初期設定(CentOS6/MySQL5.6)


MySQLインストールの後、初期設定をする手順 | 田舎に住みたいエンジニアの日記
http://blog.ybbo.net/2015/03/24/how-to-set-mysql-after-install/

CentOS 6 / RHEL 6 に MySQL 5.6 を yum インストールする手順

MySQLが起動しない(CentOS6/MySQL5.6)

my.cnfでinnodb関連の設定後、MySQLが起動しなくなった 060_企画開発部| システム開発ブログ(システム開発のアイロベックス|東京都中央区の業務システム開発会社)
http://www.ilovex.co.jp/blog/system/projectandsystemdevelopment/mycnfinnodbmysql.html


/var/lib/mysql 内の
ib_logfile0, ib_logfile1, ibdata1
を削除したら、起動しました。

2017年10月5日木曜日

2017年9月25日月曜日

関数型JavaScriptへのクイックガイド(英語)

A Quick Introduction to Functional Javascript – Hacker Noon
https://hackernoon.com/a-quick-introduction-to-functional-javascript-7e6fe520e7fa

JavaScriptのメモリ管理+よくある4つのメモリリーク(英語)

How JavaScript works: memory management + how to handle 4 common memory leaks

A few weeks ago we started a series aimed at digging deeper into JavaScript and how it actually works: we thought that by knowing the building blocks of JavaScript and how they come to play together you'll be able to write better code and apps.
https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec

2017年9月22日金曜日

AWSでの不正アクセスの傾向と対策

ASCII.jp:オンプレとどこが違う? 実例に見るAWSでの不正アクセスの傾向と対策
http://ascii.jp/elem/000/001/549/1549718/

オンプレミス環境の場合は、ハードディスクのイメージコピーを取得してデジタル・フォレンジックを行なうのが定石で、そのための専用装置も提供されている。「だがAWSでは、HDDを抜いてきてコピーすることはできず、こういう方法が使えないので、ソフトウェアによるイメージコピーを使う」(関さん)ことになる。もしAWS上のインスタンスでインシデントが発覚したら、やられてしまったボリュームのスナップショットを作成し、それを調査用インスタンスにアタッチした後、ddコマンドを用いてイメージを取得することになる。あとは専門業者に任せるか、デジタル・フォレンジック用のソフトウェアを用いて解析を行なえばよい。

「だが、時間をかけてはいられないとき、あるいは調査用にマスターアカウントをもらえないときには、SSHで接続し、コマンドを続けて打つことでローカルにイメージ出力を吐く、あるいはライブイメージングという方法もあることを知っていてほしい」(関さん)。時間がかかるように思えるが、圧縮をかければ意外と早く処理できるという。これはまた、AWSに限らず他のクラウドサービスや、物理的に立ち入りができないデータセンターでも活用可能な方法だ。

2017年9月20日水曜日

Linux ファン回転数・温度設定の変更

fancontrol
http://www.inoshita.jp/freo/page/d2700_005
https://goo.gl/Pyzga3

パソコンの内部ファンを回す速度を変えらるやつ。
設定ファイルを書くことで、ファンを回し始める最低CPU温度や最高温度などを設定できます。
自分は、多少暑くなっても構わないのである一定を超えるとファンをぶん回すように設定しています。

Design Docとは

プロジェクト成功確率向上の近道とは?(3):残業も減らせる!? 上級エンジニアになるためのDesign Doc超入門 (1/3) - @IT
http://www.atmarkit.co.jp/ait/articles/1606/21/news016.html


表 Design Docに含み得る項目一覧
項目名内容
1*タイトルこのソフトウェアの名称
2*著者名このDocを書いた人
3プロジェクトメンバー開発に参加するメンバー
4*目的このソフトウェアの目的
5要求仕様要求仕様書、機能仕様書などへのリンク(要求仕様の要点を書く場合もある)
6*背景このソフトウェアを開発する背景・経緯など
7既存のものとの相違点既存品があるなら、それとの違いを書く
8関連システム・仕様など関連システムやその仕様書へのリンク
9*ハイレベルアーキテクチャ(アーキテクチャ概要)システム全体を俯瞰した構成図など
10*各パート(モジュール・クラス)の概要各パートの概要・責務・目的など
11*各パート(モジュール・クラス)の内部仕様・処理フローなどデータ構造、アルゴリズムなど
12各パート(モジュール・クラス)の実装場所ソース・ファイル名、実行形式の名称など
13使用例モジュールの利用例が分かるサンプルコードなど
14セキュリティ仕様・考慮事項など想定される問題と、その対処方法などについて
15既知の問題事前に判明している問題・課題などを書く
16*テスト方案どういう観点で何をテストすればよいか、どのようにテストすればよいか
17運用方法運用時のポイント、監視の方法など
18参考文献参考文献へのリンク
19このDocの格納場所リポジトリのパス、ファイルサーバのパスなど
20メモ設計のヒントや気付いた点、関連情報など何でも
21変更履歴このDocについて、いつ・誰が・どのような変更をしたのか履歴を記述

DeployGate - ストアに出さずiOSアプリを配布する

DeployGate - 開発中のアプリの配布を、びっくりするぐらい簡単に
https://deploygate.com/?locale=ja

2017年9月19日火曜日

セキュリティ PHP、WordPress

安全なPHPアプリケーションの作り方2016
https://www.slideshare.net/ockeghem/phpconf2016


CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
https://www.slideshare.net/ockeghem/wordcamptokyo2016-66237748

ウェブアプリケーションセキュリティ超入門

https://www.slideshare.net/ockeghem/owasp-nagoya20170902

<iframe src="//www.slideshare.net/slideshow/embed_code/key/nAouJH8LsMXcBz" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/ockeghem/owasp-nagoya20170902" title="ウェブアプリケーションセキュリティ超入門" target="_blank">ウェブアプリケーションセキュリティ超入門</a> </strong> from <strong><a href="https://www.slideshare.net/ockeghem" target="_blank">Hiroshi Tokumaru</a></strong> </div>

2017年9月14日木曜日

PHP: .htaccessでshort_open_tagをON/OFF

HTML内に記述したPHPコードを実行するには、.htaccess内に以下を記述。

・Amazon Linux(CentOS6相当)の場合
AddType application/x-httpd-php .php .html

・以下のように記述しなければいけないサーバーもあった。
AddHandler application/x-httpd-php .php .html


また、.htaccessでshort_open_tagをオンするには、.htaccessファイルに以下を記述。
php_flag short_open_tag On
※これがOffになっていてもコードは実行できたので問題なかった。

2017年9月12日火曜日

DITA-OT標準のリテラル文字列を変更/追加する ( ソフトウェア ) - tmakitaのブログ - Yahoo!ブログ

「最近のWebパフォーマンス改善について知っておきたいコト」についてあほむに聞いてきた | HTML5Experts.jp

OAuth

WP REST APIを利用したNodeJSのWebアプリを死ぬ思いで作る | 高橋文樹.com
https://takahashifumiki.com/web/programing/3683/

Node.js + ExpressでREST API開発を体験しよう[作成編] - Qiita

質の高いAPIを作るための7つの習慣 // Speaker Deck

2017年9月11日月曜日

解決方法: Windows10 なぜかすぐスリープしてしまう

Windows10で、スリープ設定を長くしてみてもすぐに(2分程度)スリープする。ファイルダウンロード中など動作しているのに2分ほど経つと勝手にスリープしてしまう、という問題の解決方法。

手順
  1. レジストリを修正して、電源オプションの隠し設定「システム無人スリープタイムアウト」を表示させる。
  2. 表示された「システム無人スリープタイムアウト」の設定値を変更

レジストリ修正箇所

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0] 

"Attributes"を2にします。


コントロールパネルで「システム無人スリープタイムアウト」の時間を長くします。



参考
Windows10が数分で勝手にスリープする症状の原因と解決方法
http://www.dorari.jp/iroiro/windows-sleep-trouble/#kaiketsu

2017年9月6日水曜日

JavaScriptでうっかりやってしまいそうなこと色々 : アシアルブログ

高校生向けウェブプログラミングコース内容案

高校生にWeb上でプログラミングを教え始めたエンジニアがこの8ヶ月間で得た気づき - Qiita
http://qiita.com/sifue/items/7e7c7867b64ce9742aee

  1. Webプログラミング入門コース
    1. Web ブラウザとは (Chrome, デベロッパーコンソール, alert)
    2. はじめてのHTML (VSCode, HTML, Emmet)
    3. さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)
    4. HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)
    5. はじめてのJavaScript (JS, ES6, エラー)
    6. JavaScriptでの計算 (値, 算術演算子, 変数, 代入)
    7. JavaScriptで論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)
    8. JavaScriptのループ (ループ, for)
    9. JavaScriptのコレクション (コレクション, 配列, 添字, undefined)
    10. JavaScriptの関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)
    11. JavaScriptのオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)
    12. はじめてのCSS (CSS, セレクタ, background-color, border)
    13. CSSを使ったプログラミング (transform, id, class)
    14. Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)
    15. 診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)
    16. 診断機能の組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)
    17. ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)
  2. Linux開発環境構築コース
    1. LinuxというOS (VirtualBox, Vagrant, Ubuntuのインストール, OS, CUIの大切さ)
    2. コンピューターの構成要素 (ノイマン型コンピューター, プロセス, lshw, man, ps, dfの使い方)
    3. ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)
    4. 標準出力 (標準入力、標準出力、標準エラー出力、パイプ、grep)
    5. vi (vimtutor)
    6. シェルプログラミング (シバン, echo, read, 変数, if)
    7. 通信とネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)
    8. サーバーとクライアント (tmux, nc, telnet)
    9. HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)
    10. 通信をするボットの開発 (cron, ログ収集)
    11. GitHubでウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)
    12. イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)
    13. GitとGitHubと連携 (git, ssh, clone, pull)
    14. GitHubへのpush (init, add, status, インデックス, commit, push, tag)
    15. Gitのブランチ (branch, checkout, merge, gh-pages)
    16. ソーシャルコーディング (コンフリクト、プルリクエスト)
  3. Webアプリ基礎コース
    1. Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)
    2. 集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)
    3. アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)
    4. ライブラリ (ライブラリ, パッケージマネージャー, npm)
    5. Slackのボット開発 (slack, mention, bot)
    6. HubotとSlackアダプタ (hubot, yo)
    7. モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)
    8. ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)
    9. 同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)
    10. 例外処理 (try, catch, finally, throw)
    11. HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsのイベントループ, リスナー)
    12. ログ (ログ, ログレベル)
    13. HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)
    14. HTMLのフォーム (フォームの仕組み, form, input)
    15. テンプレートエンジン (テンプレートエンジン, jade)
    16. HerokuでWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)
    17. 認証で利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)
    18. Cookie を使った秘密の匿名掲示板 (Cookie, Set-Cookie, expire)
    19. UI、URI、モジュールの設計 (モジュール設計, フォームのメソッド制限, リダイレクト, 302)
    20. フォームによる投稿機能の実装 (モジュール性, textarea, 303)
    21. 認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)
    22. データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)
    23. トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)
    24. 削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)
    25. 管理者機能の実装 (Web サービスの管理責任, 管理者機能の重要性)
    26. デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)
    27. 脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)
    28. XSS脆弱性の対策 (XSS, 適切なエスケープ処理, リグレッション)
    29. パスワードの脆弱性の対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)
    30. セッション固定化攻撃脆弱性の対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)
    31. より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)
    32. CSRF脆弱性の対策 (CSRF, ワンタイムトークン)
    33. 安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)
  4. Webアプリ応用コース
    1. Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)
    2. ExpressのAPI (app, Properties, Request, Response, Router)
    3. GitHubを使った外部認証 (Passport, OAuth)
    4. テスティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)
    5. 継続的インテグレーション (CircleCI)
    6. クライアントのフレームワーク (Webpack, Chrome 以外のブラウザでもES6)
    7. DOM操作のフレームワーク (jQuery, jQueryアニメーション, this)
    8. AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)
    9. WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)
    10. RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)
    11. データモデリング (リレーショナルモデル, 正規化)
    12. テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)
    13. インデックス (インデックス, 複合インデックス, Bツリー)
    14. 集計とソート (SUM, COUNT, ORDER BY, GROUP BY)
    15. 「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計、モジュール設計、MVC)
    16. 認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)
    17. 予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)
    18. 予定とユーザーの一覧の表示 (非同期処理, Promise, then)
    19. 出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)
    20. 出欠とコメントの更新 (Promiseチェイン, リファクタリング)
    21. 予定の編集と削除 (要件の衝突, 関数の再利用)
    22. デザインの改善 (this, グローバルオブジェクト)
    23. セキュリティ対策と公開 (X-Frame-Options, Herokuの環境変数)

pythonで小さなツールを作る時のtips - Qiita

http://qiita.com/m_mizutani/items/c48f67f871d1d41ff4b9

2017年8月22日火曜日

無料の写真 - Pixabay

jQueryをつかって、中身はそのままでHTMLタグを書き換える | 9ineBB

AWS Lambda + S3 + CloudWatch

紙面ビューアーを支える サーバーレスアーキテクチャ / serverless architecture supports Nikkei's paper viewer // Speaker Deck
https://speakerdeck.com/ikait/serverless-architecture-supports-nikkeis-paper-viewer

IP Address Details - ipinfo.io

OCaml 終了方法

OCaml を終了したいので quit を入力してもエラーが起こって終了できなくて困った。

# quit;; → Error: Unbound value quit

quit の直前に # を付ければよかった。

# #quit;; →OK



2017年8月21日月曜日

OCamlの日本語が文字化け

OCamlのインタプリタで日本語の文字を扱う - the code to rock
http://note103.hateblo.jp/entry/2016/07/03/112928


Windowsの日本語が文字化け(エスケープ文字)になってしまうので、上記を参考にしたらできました。

以下2行をターミナルで実行するか、.ocamlinit に書き込めばよいとのこと。

let print_non_escaped_string ppf = Format.fprintf ppf "\"%s\"";;
#install_printer print_non_escaped_string;;

【4日で体験】 TensorFlow x Python 3 で学ぶディープラーニング入門 | Udemy

2017年8月9日水曜日

選ばれる理由 | データベース ソフト「Plusdb」とは | 商品データベース作成ソフト「Plusdb」

サーバーレスアーキテクチャのパターン別ユースケース

サーバーレスアーキテクチャのパターン別ユースケース - yoshidashingo
http://yoshidashingo.hatenablog.com/entry/serverlss-usecases-2017

CMSのコンテンツ管理と配信を分離する

ex. Serverless CMS

  • 目的:コンテンツ管理と配信の分割とイベント連携
  • 説明:コンテンツ管理のワークロードと配信のワークロードのアンバランスさ(投稿はしないがたくさん読まれる、投稿はよくするが読まれない)を解消し、必要なリソースのみ調達するために、CMSで生成・更新されるコンテンツをトリガーで連携して、配信プラットフォームと同期する。配信プラットフォームと分割されたCMSはデマンドベースで利用できればよいためコンテナ化して必要に応じて起動することで、コスト削減だけでなく、セキュリティ的にCMSがつねに攻撃にさらされることを避けられる。
  • 実装:WordPressからS3へアップロードするプラグイン StaticPress を用いてコンテンツを生成して配信用のS3やCDNにアップロードする。あるいはそれをサービス化している Shifter を使うことで、WordPressのインスタンス自体を常駐不要にする。


https://speakerdeck.com/digitalcube/serverlessconf-tokyo-2016-shifter

Shifterの例)