【WP REST API】PHPを一切使わずに投稿一覧を作ってみる


エンジニアの関です。
4月でいよいよ社会人3年目です。最近、時代の流れの速さに怯えています。
私は普段WordPressで開発をしているのですが、よくこんな言葉を耳にします。

「PHPの知識がないからカスタムができない」

WordPressには初心者でも使いやすいようにプラグインやテーマなどを数多く取り揃えているのですが、自由にカスタムしたいとなると、やはりPHPの知識が必要になってきます。
そこで今回は、PHPを一切使わずにWordPressから動的にデータを取得・表示する方法をご紹介したいと思います。

続きを読む


ドヤ顔でデザイナーっぽいことを言えるようになる本5選


本稿では、5冊のデザイン書をご紹介します。

5冊の選定基準は、「非デザイナーがデザイナーっぽい事をドヤ顔で語れるようになる」です。
一応どれもデザイン書としては有名で評価の高い本です。

これらを読めば、分からず屋のおじさんを論破したり、ライバルのおじさんに差をつけたり、ちょっと気になってるおじさんに良いところを見せたりできます。

続きを読む


Pagespeedapiを使ってみた


リンクバルの船寄と申します。
web系の開発者なら、誰もがお世話になっているPageSpeed Insights
apiから利用してみたので、ご紹介させて頂きます。

やりたかったこと

  • PageSpeed Insightsを利用して、画像の最適化について指摘されている項目を抽出し、日本語かつsjiscsvファイルとして保存したい。
  • URLを記載したリストファイルを準備し、リストに記載されているURLをANALYZEしたい。
  • 実行時間をなるべく短縮したい。

やったこと

golangで使って簡単なコマンドツールを作ってみました。

実行環境は以下の通り

  • macOS Sierra 10.12.3
  • go version go1.8 darwin/amd64

事前準備

  • 公式clientを準備する
    https://github.com/google/google-api-go-client/tree/master/pagespeedonline/v2
go get google.golang.org/api/pagespeedonline/v2
  • sjisでcsvへ保存したかったので、エンコーディングパッケージを準備する
go get golang.org/x/text/encoding/japanese
  • ANALYZEするURLを記載したリストを準備する

ソースコード

結果

結果はresult.csvへ出力されます
ツールを実行することにより、下記の形式でcsvファイルを出力することができました。

実行日時 2017-03-30 13:59:22.807444599 +0900 JST
mobile/desctop mobile
対象ページのURL http://hogehoge.com
対象ページのTITLE hogehoge title
対象ページのSPEED SCORE 56
指摘ルール名 画像を最適化する
指摘内容サマリ(Summary) 画像に適切なフォーマットと圧縮を選ぶことで、データ サイズを大きく削減できます。
指摘内容詳細 http://hogehoge.com/assets/fuga.jpg を圧縮すると 113.4 KB(74%)削減できます。
指摘画像URL http://hogehoge.com/assets/fuga.jpg

※1 PageSpeed Insights画像の最適化について指摘されている箇所のみが、一行づつ出力されます。
※2 表が長くて収まらないので、縦向きに記載しております。

サイトからポチポチするより断然効率化できますよ。
ご興味ある方は使ってみてください。

リンクバルではエンジニアを積極募集中です。
興味のある方は、こちらからご応募ください!


LogStashでElasticSearchにlogを送る


リンクバルの井上です。
ElastcSearch, Kibana, Logstashの使用例の定番といえばアクセスログなどのログ収集と可視化かと思います。
今回はログ収集からKibanaでの可視化までの簡単なsampleをご紹介します。

 

Logstashのインストール

今回はbrewでinstallしてみたいと思います

brew install logstash

log収集のためのconfファイルの作成

今回は簡単な設定ファイルを作成します

この設定ファイルを使用してlogをelasticsearchへ送信します。

 

設定ファイルの解説

input

読み込むファイルを指定する今回は標準入力の設定です

input  {
  stdin { }
}

下記のように直接ファイルを指定することも可能

input  {
  file { path="/var/log/apache2/access.log" }
}

filter

logファイルから取得したログをelasticsearchように整形する

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    locale => "en"
  }
  mutate {
    replace => { "type" => "apache_access" }
  }
}

output

ログの送信先を設定今回はローカルのElasticsearchを指定している

output {
  #stdout { codec => rubydebug }
  elasticsearch { hosts => '127.0.0.1:9200' }
}

logをElasticSearchへ送信

下記のようにファイルを指定してコマンドを実行してみます

/usr/local/bin/logstash -f logstash.conf < -f   logファイルのpath

kibanaでの確認

kibanaを開くと下記のように画面が表示されてますが緑色のCreateボタンを押下します

すると下記のような画面になるかと思いますので次にDiscoverを押下します

logstashから送信されたデータが確認できました。

 

いかがでしたでしょうか?意外と簡単にログ送信できるイメージできたでのではないでしょうか

リンクバルではエンジニアを積極募集中です。興味のある方は、こちらまでご応募ください。もちろん、社内の人間と面識があるのでしたら、直接にご連絡いただいてもかまいません。


OpenLDAPでSSH公開鍵を管理


リンクバル技術部の川畑です。サーバーのログインユーザーのSSH公開鍵についてOpenLDAPで管理できないか調査しました。OpenSSHをソースからコンパイルしてとかいろいろ情報がありましたが、Ubuntu 14.04.1 LTSではOpenSSH 6.6.1p1がapt-getで入手できるのでスキーマファイルをダウンロードしてincludeするだけで簡単に設定できそうなので検証してみました。

検証環境

  • OS:Ubuntu 14.04.1 LTS
  • OpenSSH:6.6.1p1
  • OpenLDAP:2.4.31

LDAPサーバ側の設定

まずLDAPサーバでの設定手順

1.OpenLdapサービス停止

sudo su -
service slapd stop

2.スキーマファイルをダウンロード

cd /usr/local/src
wget https://openssh-lpk.googlecode.com/files/openssh-lpk_openldap.schema

3.スキーマディレクトリにコピー

mv openssh-lpk_openldap.schema /etc/ldap/schema

4.slapd.conf編集

vi /etc/ldap/slapd.conf
------------------------------------------------------------
include         /etc/ldap/schema/openssh-lpk_openldap.schema
------------------------------------------------------------

5.ConfigDB削除

rm -rf /etc/ldap/slapd.d/*

6.ConfigDB再作成

slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/
chown -R openldap:openldap /etc/ldap/slapd.d

7.OpenLdapサービス起動

service slapd start

※これでLDAPのAttributeに「sshPublicKey」が表示され公開鍵が追加可能に

LDAPクライアント側の設定

sshdがLDAPサーバのSSH公開鍵を取得するようにする設定手順

1.LDAPサーバからSSH公開鍵を取得するスクリプト

※やっていることはLDAPサーバに接続して「ldapsearch」の結果から公開鍵だけ抽出

vi /opt/ssh-command/LdapGetSSHKey.sh
------------------------------------------------------------
#!/bin/bash

uri=ldap://<LDAP-SERVER>
binddn="<BIND-USER>"
bindpw=<PASSWORD>
base="<BASE>"
uid=$1

ldapsearch -LLL -H ${uri} -w "${bindpw}" -D "${binddn}" -b "${base}" "(& (objectClass=posixAccount) (uid=${uid}))" "sshPublicKey" | sed -ne '2,$p' | sed -e 's/sshPublicKey: //g' | sed -e 's/^ //g' | tr -d '\n'
------------------------------------------------------------

2.sshdに認証コマンドの設定

vi /etc/ssh/sshd_config
------------------------------------------------------------
AuthorizedKeysCommand /opt/ssh-command/LdapGetSSHKey.sh
AuthorizedKeysCommandUser root
------------------------------------------------------------

おわりに

今回の検証で、SSH公開鍵をOpenLDAPで管理できることを確認できました。まだまだ課題はありますが、本格的に運用できればと考えております。

リンクバルでは エンジニアを積極募集中 です。興味のある方のご応募お待ちしております。