YAMAHA NVR500をCentOS7にインストールしたMRTGで負荷監視する設定

YAMAHA NVR500をCentOS7にインストールしたMRTGで負荷監視する設定

設定メモ

■参考
CentOS7で作るネットワークサーバ構築ガイドを参考

■環境例
ルータのIPを192.168.1.1とする
MRTGを入れるサーバのIPを192.168.1.166とする

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core) 

■CentOS7のサーバにMRTGをインストール

[root@localhost ~]# yum install mrtg

■コンフィグ設定

[root@localhost ~]# cfgmaker --out=/etc/mrtg/mrtg.cfg --global "workdir: /var/www/mrtg" --global "Language:eucjp" public@192.168.1.1
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
--base: Get Device Info on public@192.168.1.1:
SNMP Error:
no response received
SNMPv1_Session (remote host: "192.168.1.1" [192.168.1.1].161)
                  community: "public"
                 request ID: 132523945
                PDU bufsize: 8000 bytes
                    timeout: 2s
                    retries: 5
                    backoff: 1)
 at /usr/bin/../lib64/mrtg2/SNMP_util.pm line 651.
SNMPWALK Problem for 1.3.6.1.2.1.1 on public@192.168.1.1::::::v4only
 at /bin/cfgmaker line 951.
WARNING: Skipping public@192.168.1.1: as no info could be retrieved

Use of uninitialized value $comment_sysdescr in substitution (s///) at /bin/cfgmaker line 379.
Use of uninitialized value $sysname in concatenation (.) or string at /bin/cfgmaker line 412.
Use of uninitialized value $comment_sysdescr in concatenation (.) or string at /bin/cfgmaker line 412.
Use of uninitialized value $syscontact in concatenation (.) or string at /bin/cfgmaker line 412.
Use of uninitialized value $syslocation in concatenation (.) or string at /bin/cfgmaker line 412.
--base: Writing /etc/mrtg/mrtg.cfg

■エラーが出たのでルータ側でSNMPをざっくり有効化

NVR500の管理画面から実行したコマンド
snmp host any
snmp community read-only public
※これはざっくり設定なのでちゃんと制限したりしたほうが良いと思われます。

■もう一度コンフィグの設定

[root@localhost ~]# cfgmaker --out=/etc/mrtg/mrtg.cfg --global "workdir: /var/www/mrtg" --global "Language:eucjp" public@192.168.1.1
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1375.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1376.
Use of uninitialized value $t in substitution (s///) at /bin/cfgmaker line 1377.
Use of uninitialized value $fs in pattern match (m//) at /bin/cfgmaker line 1382.
Use of uninitialized value $t in hash element at /bin/cfgmaker line 1383.
--base: Get Device Info on public@192.168.1.1:
--base: Vendor Id: Unknown Vendor - 1.3.6.1.4.1.1182.1.40
--base: Populating confcache
--base: Get Interface Info
--base: Walking ifIndex
--snpd:   public@192.168.1.1: -> 1 -> ifIndex = 1
--snpd:   public@192.168.1.1: -> 2 -> ifIndex = 2
--snpd:   public@192.168.1.1: -> 3 -> ifIndex = 3
--snpd:   public@192.168.1.1: -> 4 -> ifIndex = 4
--snpd:   public@192.168.1.1: -> 52 -> ifIndex = 52
--snpd:   public@192.168.1.1: -> 53 -> ifIndex = 53
--snpd:   public@192.168.1.1: -> 54 -> ifIndex = 54
--snpd:   public@192.168.1.1: -> 55 -> ifIndex = 55
--snpd:   public@192.168.1.1: -> 56 -> ifIndex = 56
--snpd:   public@192.168.1.1: -> 57 -> ifIndex = 57
--snpd:   public@192.168.1.1: -> 58 -> ifIndex = 58
--snpd:   public@192.168.1.1: -> 59 -> ifIndex = 59
--snpd:   public@192.168.1.1: -> 60 -> ifIndex = 60
--snpd:   public@192.168.1.1: -> 61 -> ifIndex = 61
--base: Walking ifType
--snpd:   public@192.168.1.1: -> 1 -> ifType = 6
--snpd:   public@192.168.1.1: -> 2 -> ifType = 6
--snpd:   public@192.168.1.1: -> 3 -> ifType = 1
--snpd:   public@192.168.1.1: -> 4 -> ifType = 20
--snpd:   public@192.168.1.1: -> 52 -> ifType = 24
--snpd:   public@192.168.1.1: -> 53 -> ifType = 24
--snpd:   public@192.168.1.1: -> 54 -> ifType = 24
--snpd:   public@192.168.1.1: -> 55 -> ifType = 24
--snpd:   public@192.168.1.1: -> 56 -> ifType = 24
--snpd:   public@192.168.1.1: -> 57 -> ifType = 24
--snpd:   public@192.168.1.1: -> 58 -> ifType = 24
--snpd:   public@192.168.1.1: -> 59 -> ifType = 24
--snpd:   public@192.168.1.1: -> 60 -> ifType = 24
--snpd:   public@192.168.1.1: -> 61 -> ifType = 24
--base: Walking ifAdminStatus
--snpd:   public@192.168.1.1: -> 1 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 2 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 3 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 4 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 52 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 53 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 54 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 55 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 56 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 57 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 58 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 59 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 60 -> ifAdminStatus = 1
--snpd:   public@192.168.1.1: -> 61 -> ifAdminStatus = 1
--base: Walking ifOperStatus
--snpd:   public@192.168.1.1: -> 1 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 2 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 3 -> ifOperStatus = 2
--snpd:   public@192.168.1.1: -> 4 -> ifOperStatus = 2
--snpd:   public@192.168.1.1: -> 52 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 53 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 54 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 55 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 56 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 57 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 58 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 59 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 60 -> ifOperStatus = 1
--snpd:   public@192.168.1.1: -> 61 -> ifOperStatus = 1
--base: Walking ifMtu
--snpd:   public@192.168.1.1: -> 1 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 2 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 3 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 4 -> ifMtu = 1500
--snpd:   public@192.168.1.1: -> 52 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 53 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 54 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 55 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 56 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 57 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 58 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 59 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 60 -> ifMtu = 65535
--snpd:   public@192.168.1.1: -> 61 -> ifMtu = 65535
--base: Walking ifSpeed
--snpd:   public@192.168.1.1: -> 1 -> ifSpeed = 1000000000
--snpd:   public@192.168.1.1: -> 2 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 3 -> ifSpeed = 64000
--snpd:   public@192.168.1.1: -> 4 -> ifSpeed = 128000
--snpd:   public@192.168.1.1: -> 52 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 53 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 54 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 55 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 56 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 57 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 58 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 59 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 60 -> ifSpeed = 100000000
--snpd:   public@192.168.1.1: -> 61 -> ifSpeed = 100000000
--base: Writing /etc/mrtg/mrtg.cfg

■mrtgコマンドの実行

[root@localhost ~]# LANG=ja_JP.eucJP mrtg /etc/mrtg/mrtg.cfg
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup could not read the primary log file for 192.168.1.1_1
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup The backup log file for 192.168.1.1_1 was invalid as well
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup Can't rename 192.168.1.1_1.log to 192.168.1.1_1.old updating log file
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup could not read the primary log file for 192.168.1.1_2
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup The backup log file for 192.168.1.1_2 was invalid as well
2015-06-15 11:05:29, Rateup WARNING: /usr/bin/rateup Can't rename 192.168.1.1_2.log to 192.168.1.1_2.old updating log file
[root@localhost ~]# LANG=ja_JP.eucJP mrtg /etc/mrtg/mrtg.cfg
[root@localhost ~]# LANG=ja_JP.eucJP mrtg /etc/mrtg/mrtg.cfg

■mrtg.confの設定を変更しローカルエリアから見えるようにする。
※あとEUC-JPで正しく表示できるようにoffにしておく

[root@localhost conf.d]# pwd
/etc/httpd/conf.d
[root@localhost conf.d]# vim mrtg.conf 
<Location /mrtg>
    Require local
    Require ip 192.168.1.0/24
    AddDefaultCharset off
    # Require host example.org
</Location>

■グラフの右端が最新になるようにする。また単位をビットにする

[root@localhost mrtg]# vim /etc/mrtg/mrtg.cfg
#Options[_]: growright, bits

↓

Options[_]: growright, bits

■インデックスファイルの作成

[root@localhost ~]# indexmaker /etc/mrtg/mrtg.cfg > /var/www/mrtg/index.html

今回の場合は以下のURLで表示されるはず
http://192.168.1.166/mrtg/

■cronの設定(5分毎)

[root@localhost ~]# vim /etc/cron.d/mrtg
[root@localhost ~]# cat /etc/cron.d/mrtg
*/5 * * * * root LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg --lock-file /var/lock/mrtg/mrtg_l --confcache-file /var/lib/mrtg/mrtg.ok

Ajaxzip3のGithub移行版へ移行

ajaxzip3のGithub移行版へ移行

以前はURLがhttpとhttpsで別だったのでajaxzip3を一本化するために↓のようなことをしてました・・・。

<script src=”//ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/ajaxzip3.js” charset=”UTF-8″></script>
<script type=”text/javascript”>AjaxZip3.JSONDATA=”//ajaxzip3.googlecode.com/svn/trunk/ajaxzip3/zipdata”;</script>

でも最近動かなくなってました。。

なのでついでにGithub版に移行です。

Github移行したのを機にhttpとhttpsの一本化されてて素晴らしい!

<script src="https://ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script>

Google Codeのサービス廃止が決定しているので早めの移行が必要です。

ajaxzip3/ajaxzip3.github.io
https://github.com/ajaxzip3/ajaxzip3.github.io

jQuery UIでリストのソート機能を実装したときにFirefoxとかでinputのフォーカスがおかしくなる件

AngularJsのディレクティブでリストのソート機能を
実装していて困ったのでメモ。

ディレクティブでは実際には「jQuery UI」の「sortable」を
利用していた。

各々のバージョンは以下
jQuery v2.1.3
jQuery UI v1.11.4
AngularJS v1.3.15

実装したコードは以下。

app.directive('mySortable',function(){
    return {
        link:function(scope,el,attrs){
            el.sortable({
                revert: true,
                axis: 'y',
                cancel: "",
                handle: ".sortable-handle"
            });
            
            el.disableSelection().delegate('input,textarea','click',function(ev){
                ev.target.focus();
            });
            
            el.on( "sortdeactivate", function( event, ui ) {
                //ソートした時の挙動
                ・・・
            });
            
        }
    }
})

上記の状態だと「Firefox」と「IE」でソートは出来るのだけどソートする対象内に
あるinputタグにフォーカスが当たるけど全選択(Ctrl+a)とかができないし、
入力値がある場合にもなぜか必ず入力エリアの左側にカーソルが入ってしまう
現象が発生した。

結局以下↓の箇所を

el.disableSelection().delegate('input,textarea','click',function(ev){
    ev.target.focus();
});

【jQuery】sortable()を設定したタグ内のtextarea, inputタグに入力出来ない」このページの内容通りに以下↓のように変更。

el.bind('click.sortable mousedown.sortable',function(ev){
    ev.target.focus();
});

直った。。

jQuery UI の.disableSelection()がdeprecated(非推奨)になってる件

↑これとかの影響なのかな・・・。

■参考URL

【jQuery】sortable()を設定したタグ内のtextarea, inputタグに入力出来ない

Ticket #4429 (closed bug: notabug) Can’t select text in inputs within sortables

jQuery UI の.disableSelection()がdeprecated(非推奨)になってる件

Vagrantで立てたCnetOS7にLAMP環境を構築する

Vagrantで立てたCnetOS7にLAMP環境を構築する

ざっくりとローカル環境を構築する手順。

【とりあえず】

# yum update

【時間】

# timedatectl status
      Local time: Wed 2015-05-27 00:34:51 EDT
  Universal time: Wed 2015-05-27 04:34:51 UTC
        Timezone: America/New_York (EDT, -0400)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2015-03-08 01:59:59 EST
                  Sun 2015-03-08 03:00:00 EDT
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2015-11-01 01:59:59 EDT
                  Sun 2015-11-01 01:00:00 EST

# timedatectl set-timezone Asia/Tokyo

# timedatectl status
      Local time: Wed 2015-05-27 13:35:36 JST
  Universal time: Wed 2015-05-27 04:35:36 UTC
        Timezone: Asia/Tokyo (JST, +0900)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

# date
Wed May 27 13:35:46 JST 2015

【日本語化】

# yum -y install ibus-kkc vlgothic-* 

# localectl list-locales | grep -i ja
ja_JP
ja_JP.eucjp
ja_JP.ujis
ja_JP.utf8
japanese
japanese.euc

# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: jp106
      X11 Layout: jp

# localectl set-locale LANG=ja_JP.utf8

# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp106
      X11 Layout: jp

# source /etc/locale.conf

# echo $LANG
ja_JP.utf8

# date
2015年  5月 27日 水曜日 13:42:59 JST

【NTP】

# yum install chrony

# systemctl start chronyd.service

# systemctl enable chronyd.service

# systemctl status chronyd.service
chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
   Active: active (running) since 水 2015-05-27 13:53:36 JST; 7min ago
 Main PID: 4658 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─4658 /usr/sbin/chronyd -u chrony

 5月 27 13:53:36 localhost.localdomain chronyd[4658]: chronyd version 1.29.1 starting
 5月 27 13:53:36 localhost.localdomain chronyd[4658]: Linux kernel major=3 minor=10 patch=0
 5月 27 13:53:36 localhost.localdomain chronyd[4658]: hz=100 shift_hz=7 freq_scale=1.00000000 nominal_tick=10000 slew_delta_tick=833 max_tick_bias=1000 shift_pll=2
 5月 27 13:53:36 localhost.localdomain chronyd[4658]: Generated key 1
 5月 27 13:53:36 localhost.localdomain systemd[1]: Started NTP client/server.
 5月 27 13:53:41 localhost.localdomain chronyd[4658]: Selected source 157.7.235.92
 5月 27 13:53:41 localhost.localdomain chronyd[4658]: System clock wrong by 404.387741 seconds, adjustment started
 5月 27 14:00:25 localhost.localdomain chronyd[4658]: System clock was stepped by 404.388 seconds

・状態確認
# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ y.ns.gin.ntt.net              2   6    37    29   +714us[  -30ms] +/-   49ms
^+ li528-174.members.linode.     3   6    37    29   +111us[  -30ms] +/-   59ms
^+ chobi.paina.jp                2   6    37    29   -321us[  -31ms] +/-   47ms
^* v157-7-235-92.z1d6.static     2   6    37    29   -727us[  -32ms] +/-   38ms

「*」が現在同期をとっているサーバ

【SELinux】

# getenforce 
Enforcing

ローカルの開発環境なので無効にする
# vim /etc/selinux/config  
SELINUX=disabled

# reboot

# getenforce
Disabled

【Webサーバ】

# yum install httpd httpd-devel httpd-tools

# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: inactive (dead)

# systemctl start httpd.service

# systemctl enable httpd.service

# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Tue 2015-05-26 21:12:03 EDT; 1min 10s ago
 Main PID: 7308 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─7308 /usr/sbin/httpd -DFOREGROUND
           ├─7309 /usr/sbin/httpd -DFOREGROUND
           ├─7310 /usr/sbin/httpd -DFOREGROUND
           ├─7311 /usr/sbin/httpd -DFOREGROUND
           ├─7312 /usr/sbin/httpd -DFOREGROUND
           └─7313 /usr/sbin/httpd -DFOREGROUND

May 26 21:12:03 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
May 26 21:12:03 localhost.localdomain httpd[7308]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
May 26 21:12:03 localhost.localdomain systemd[1]: Started The Apache HTTP Server.

# firewall-cmd --permanent --add-service=http
success

# firewall-cmd --reload
success

# pwd
/etc/httpd/conf

# cp httpd.conf httpd.conf.org

# vim httpd.conf

# pwd
/etc/httpd/conf.d

# cp userdir.conf userdir.conf.org

# vim userdir.conf

# systemctl restart httpd.service

【PHP】

# yum install php php-cli php-common php-devel php-gd php-mbstring php-mysql php-pdo php-xml php-xmlrpc php-pear

# pwd
/etc

# cp php.ini php.ini.org

# systemctl restart httpd.service

【データベース】

# yum install mariadb-server mariadb-devel mariadb-libs  

# systemctl start mariadb.service

# systemctl enable mariadb.service

# firewall-cmd --permanent --add-service=mysql
success

# firewall-cmd --reload
success

# systemctl status mariadb.service
mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled)
   Active: active (running) since Tue 2015-05-26 22:22:28 EDT; 1min 24s ago
 Main PID: 12165 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─12165 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─12323 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock

May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: The latest information about MariaDB is available at http://mariadb.org/.
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: You can find additional information about the MySQL part at:
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: http://dev.mysql.com
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: Support MariaDB development by buying support/new features from MariaDB
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: Corporation Ab. You can contact us about this at sales@mariadb.com.
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: Alternatively consider joining our community based development effort:
May 26 22:22:26 localhost.localdomain mariadb-prepare-db-dir[12087]: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/
May 26 22:22:26 localhost.localdomain mysqld_safe[12165]: 150526 22:22:26 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
May 26 22:22:26 localhost.localdomain mysqld_safe[12165]: 150526 22:22:26 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
May 26 22:22:28 localhost.localdomain systemd[1]: Started MariaDB database server.

# mysqladmin -u root password '******'

# mysqladmin -p -u root -h localhost password '******'
Enter password: 

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

設定ファイルを変更する
# pwd
/etc

# cp my.cnf my.cnf.org

# diff my.cnf.org  my.cnf                                                                                                                                                                                                
10a11,12
> character-set-server = utf8
> 

※[mysqld] に、character-set-server = utf8 を追記。

# systemctl restart mariadb.service

MariaDB [(none)]> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

【Samba】

# yum install samba samba-client samba-common samba-devel samba-libs

# systemctl start smb.service

# systemctl enable smb.service

# firewall-cmd --permanent --add-service=samba
success

# firewall-cmd --permanent --add-service=samba-client
success

# firewall-cmd --reload
success

・ユーザの追加
# pdbedit -a -u linuxusername
new password:
retype new password:
Unix username:        linuxusername
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-3433598194-894145024-3160967228-1000
Primary Group SID:    S-1-5-21-3433598194-894145024-3160967228-513
Full Name:            
Home Directory:       \\localhost\linuxusername
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\linuxusername\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 10:06:39 EST
Kickoff time:         Wed, 06 Feb 2036 10:06:39 EST
Password last set:    Wed, 27 May 2015 00:03:41 EDT
Password can change:  Wed, 27 May 2015 00:03:41 EDT
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

・セクションの追加
# pwd
/etc/samba

# cp smb.conf smb.conf.org

# vim smb.conf

# diff smb.conf.org smb.conf
296a297,306
> 
>       comment = Document Root Directory
>       path = /var/www/html
>       public = yes
>       writable = yes
>       printable = no
> 
>       create mask = 0664
>       directory mask = 0775
> 

【サービスの公開状態確認】

# firewall-cmd  --list-services
dhcpv6-client http mysql samba samba-client ssh

CentOS7をVagrantで動かしたい

CentOS7をVagrantで動かしたい。

CentOS7の練習のために環境が欲しい。

$ vagrant box add CentOS7_minimal https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box                                                  
Downloading or copying the box...
Extracting box...ate: 9955k/s, Estimated time remaining: --:--:--)
Successfully added box 'CentOS7_minimal' with provider 'virtualbox'!

初期化。

$ vagrant init CentOS7_minima

VagrantfileでIPの指定してから起動

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'CentOS7_minimal'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] Configuring and enabling network interfaces...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

ARPCHECK=no /sbin/ifup eth1 2> /dev/null

Stdout from the command:



Stderr from the command:

エラー出た。

■[Sy] 【解決した】VagrantでCentOS7のVMを作ったらネットワーク設定でコケた(固定IP割り当てに失敗)
http://www.utano.jp/entry/2014/11/vagrant_centos7_network_error

上記サイトを参考にvagrantを新しくしてみる。

https://www.vagrantup.com/downloads.html

# rpm -Uvh vagrant_1.7.2_x86_64.rpm
# vagrant -v
Vagrant 1.7.2

CentOS7を起動してみる。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: bridged
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if its present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /home/takeuchi/fujita_cent7
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

共有フォルダのマウントで失敗している模様。

■vagrant起動で”Failed to mount folders in Linux guest”のエラーが出た件
http://l-light-note.hatenablog.com/entry/2015/04/04/212648

以下をやってみた。

$ vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbguest (0.10.0)'!

一旦落として。

$ vagrant halt

再度起動。

$ vagrant up

起動できた。

そもそも共有フォルダ使ってないから使わないようにしたらよいかも。
ついでにVirtualBoxのアップデートもした。

■参考URL

[Sy] 【解決した】VagrantでCentOS7のVMを作ったらネットワーク設定でコケた(固定IP割り当てに失敗)
http://www.utano.jp/entry/2014/11/vagrant_centos7_network_error

VirtualBoxとVagrantをバージョンアップする
http://qiita.com/mashumashu/items/557dcb805e77315004b1

vagrant起動で”Failed to mount folders in Linux guest”のエラーが出た件
http://l-light-note.hatenablog.com/entry/2015/04/04/212648

Failed to mount folders in Linux guest. This is usually because the “vboxsf” file system is not available.を直す方法
http://qiita.com/DQNEO/items/2375dd8002a831268cb5

Vagrant で CentOS 6.5 を使っていたら Guest Additions の更新に失敗してハマった
http://qiita.com/a-suenami/items/3b04151ce6e7d5b72a3e

Vagrantでフォルダがmountできないエラーが出たときの対応
http://qiita.com/kazu69/items/812b236e84fee1db3900

【Symfony2】ScopeCrossingInjectionException ・・・

ScopeCrossingInjectionException ・・・
のエラーが出た時のメモ

use JMS\DiExtraBundle\Annotation as DI;

アノテーションを利用していて以下のようにInjectをした時にエラーが出た。

    /**
     * Constructor.
     *
     * @DI\InjectParams({
     *     "validatorHelper" = @DI\Inject("xxx_util.validator_helper"),
     * })
     * @param ValidatorHelperInterface $validatorHelper
     */
    public function __construct(
        ValidatorHelperInterface $validatorHelper
    ) {
        $this->injectedValidatorHelper = $validatorHelper;
    }

ScopeCrossingInjectionException: Scope Crossing Injection detected: The definition “************” references the service “xxx_util.validator_helper” which belongs to another scope hierarchy.
This service might not be available consistently.
Generally, it is safer to either move the definition “************” to scope “prototype”, or declare “container” as a child scope of “prototype”.
If you can be sure that the other scope is always active,
you can set the reference to strict=false to get rid of this error.

エラー文の最後に書いてあるように「strict=false」を追加すれば通った。

    /**
     * Constructor.
     *
     * @DI\InjectParams({
     *     "validatorHelper" = @DI\Inject("xxx_util.validator_helper", strict = false),
     * })
     * @param ValidatorHelperInterface $validatorHelper
     */
    public function __construct(
        ValidatorHelperInterface $validatorHelper
    ) {
        $this->injectedValidatorHelper = $validatorHelper;
    }

エラーをちゃんと最後まで読もう・・・。
■参考URL
Bundles/JMSDiExtraBundle/Annotations
http://jmsyst.com/bundles/JMSDiExtraBundle/master/annotations#inject

WindowsのVagrant+CentOSで共有フォルダでnpm関係でエラーが出る件[未解決]

WindowsのVagrant+CentOSで共有フォルダでnpm関係でエラーが出る件[未解決]

Windows7上のVagrantでCentOS6.5を動かしている状態で、
共有フォルダ内で「yo angular」したら
以下のようなエラーが大量に出た。

npm ERR! code EPERM
npm ERR! errno -1
npm ERR!   code: 'EPERM',
npm ERR! Please try running this command again as root/Administrator.
npm ERR! tar.unpack untar error 

「/home/vagrant」以下とかだと問題無く動くのにどうやら
共有の「/vagrant」以下で発生する問題っぽい。

まだ解決していないけど、手がかりっぽいサイトをまとめておく。

■Working with npm and symlinks through Vagrant on Windows
http://perrymitchell.net/article/npm-symlinks-through-vagrant-windows/

■running a Vagrant box on Windows fails due to path length issues
https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows

■Vagrant + シェルスクリプトでPHP開発環境をプロビジョニングしてみたメモ
http://k-holy.hatenablog.com/entry/2013/09/05/084237

■provisioning, run: “always” doesn’t
https://groups.google.com/forum/#!topic/vagrant-up/BF_L7-A1iCU

■VirtualBox(Ubuntu)で共有フォルダするときの注意。
http://rubellum.hatenablog.com/entry/20110508/1304835867

■WindowsのVMでnpm install時にモジュールのパスが255文字を超えてしまう場合
http://qiita.com/aooni_kun/items/7d3ded7b1a51886f21dc

■Windowsでのファイルパス長の制限でnpmのパッケージが使えない
http://ja.stackoverflow.com/questions/1990/windows%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%91%E3%82%B9%E9%95%B7%E3%81%AE%E5%88%B6%E9%99%90%E3%81%A7npm%E3%81%AE%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%84

■Node npm windows file paths are too long to install packages
http://stackoverflow.com/questions/26155135/node-npm-windows-file-paths-are-too-long-to-install-packages

う~ん。。共有フォルダで直に作業するのは微妙かも。。

CentOS6環境にyeomanでAngularJSの雛形を作成するまで

CentOS6環境にyeomanでAngularJSの雛形を作成するまで

AngularJSを開発するときに最初の準備が
面倒なのでyeomanでAngularJSの雛形を簡単
に準備するメモ。

以下の手順ではすんなり入っているようにみえますが、
nodeとかnpmとか久しぶりなのとVagrantのメモリが少なかった
とか色々あってかなり苦戦しました。
最終的に必要だった手順だけ載せます。

インストールはVagrantに作ったCentOS6.5。
ネットワークはpublic_networkでとりあえずDHCP。
インストール時のIPは192.168.1.222。
メモリは2GBに設定。

■nodejs,npmをepelからインストール

# rpm -ivh http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum -y install nodejs npm --enablerepo=epel
# node --version
v0.10.33
# npm -v
1.3.6

■一応最新版を入れるためにnをいれて安定版を使う

# npm cache clean
# npm install -g n
# n stable
# node -v
v0.10.33
# npm -v
1.3.6

■以前インストールを試したときにエラーが出たのでnpmで一応以下のものも先に入れておく
※あとで面倒なのでグローバルインストール
ここの作業は本来いらないはず・・・?

# npm install -g coffee-script
# npm install -g phantom
# npm install -g grunt-contrib-imagemin
# npm install -g ws

■bower,grunt,gulp,yoをnpmでいれる
※あとで面倒なのでグローバルインストール

# npm install -g bower grunt-cli gulp yo

■AngularJS雛形用のジェネレータをインストール
※あとで面倒なのでグローバルインストール

# npm install -g generator-angular

■yeomanでAngularJSの雛形を作成する
※ここからは一般ユーザでおこなった。

$ mkdir test-angular  <-適当にフォルダを作成
$ cd test-angular/
$ yo angular  <-yoコマンドの実行

     _-----_
    |       |    .--------------------------.
    |--(o)--|    |    Welcome to Yeoman,    |
   `---------´   |   ladies and gentlemen!  |
    ( _´U`_ )    '--------------------------'
    /___A___\
     |  ~  |
   __'.___.'__
 ´   `  |° ´ Y ` 

Out of the box I include Bootstrap and some AngularJS recommended modules.

? Would you like to use Sass (with Compass)? No  <-Sassは自分は使わないのでNo
? Would you like to include Bootstrap? Yes  <-Bootstrapは使うのでYes
? Which modules would you like to include?  <-表示がよくわからないけど使うものを「◉」使わないものを「◯」に変更
 ◯ angular-animate.js
 ◯ angular-aria.js
 ◉ angular-cookies.js
 ◉ angular-resource.js
 ◯ angular-messages.js
 ◉ angular-route.js
 ◉ angular-sanitize.js
❯◯ angular-touch.js

・・・しばらく待つ・・・

Execution Time (2015-03-18 01:23:47 UTC)
loading tasks    6ms  ▇▇▇▇▇▇▇ 3%
wiredep:app    159ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 89%
wiredep:test    12ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 7%
Total 179ms

$ ll
total 76
drwxrwxr-x  6 vagrant vagrant  4096 Mar 18 01:21 ./
drwxrwxr-x  3 vagrant vagrant  4096 Mar 18 01:19 ../
drwxrwxr-x  6 vagrant vagrant  4096 Mar 18 01:20 app/
drwxrwxr-x 10 vagrant vagrant  4096 Mar 18 01:21 bower_components/
-rw-rw-r--  1 vagrant vagrant   371 Mar 18 01:20 bower.json
-rw-rw-r--  1 vagrant vagrant    38 Mar 18 01:20 .bowerrc
-rw-r--r--  1 vagrant vagrant   415 Feb 10 19:07 .editorconfig
-rw-r--r--  1 vagrant vagrant    11 Feb 10 19:07 .gitattributes
-rw-r--r--  1 vagrant vagrant    52 Feb 10 19:07 .gitignore
-rw-rw-r--  1 vagrant vagrant 10575 Mar 18 01:20 Gruntfile.js
-rw-r--r--  1 vagrant vagrant   376 Feb 10 19:07 .jshintrc
drwxrwxr-x 30 vagrant vagrant  4096 Mar 18 01:21 node_modules/
-rw-rw-r--  1 vagrant vagrant  1154 Mar 18 01:21 package.json
-rw-rw-r--  1 vagrant vagrant   282 Mar 18 01:20 README.md
drwxrwxr-x  3 vagrant vagrant  4096 Mar 18 01:20 test/
-rw-r--r--  1 vagrant vagrant   110 Feb  2 19:59 .travis.yml
-rw-r--r--  1 vagrant vagrant     3 Feb 10 19:07 .yo-rc.json
雛形が完成

■Gruntfile.jsの編集
静的サーバを立ち上げてブラウザから確認できるようにhostnameを変更しておく。
今回の場合は192.168.1.222にした。

・・・・
    // The actual grunt server settings
    connect: {
      options: {
        port: 9000,
        // Change this to '0.0.0.0' to access the server from outside.
        hostname: '192.168.1.222',
        livereload: 35729
      },
・・・・

■Gruntサーバ起動

$ grunt serve
Running "serve" task

Running "clean:server" (clean) task
>> 1 path cleaned.

Running "wiredep:app" (wiredep) task

Running "wiredep:test" (wiredep) task

Running "concurrent:server" (concurrent) task

    Running "copy:styles" (copy) task
    Copied 1 file

    Done, without errors.

    Execution Time (2015-03-18 01:39:59 UTC)
    loading tasks   5ms  ▇▇▇▇▇▇▇▇▇▇▇ 23%
    copy:styles    16ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 73%
    Total 22ms

Running "autoprefixer:server" (autoprefixer) task
File .tmp/styles/main.css created.

Running "connect:livereload" (connect) task
Started connect web server on http://192.168.1.222:9000

Running "watch" task
Waiting...

■ブラウザで確認
yeomon-angular

■リリース用ファイル作製

$ grunt build
・・・・
$ ll
total 84
drwxrwxr-x  8 vagrant vagrant  4096 Mar 18 01:42 ./
drwxrwxr-x  3 vagrant vagrant  4096 Mar 18 01:19 ../
drwxrwxr-x  6 vagrant vagrant  4096 Mar 18 01:20 app/
drwxrwxr-x 10 vagrant vagrant  4096 Mar 18 01:21 bower_components/
-rw-rw-r--  1 vagrant vagrant   371 Mar 18 01:20 bower.json
-rw-rw-r--  1 vagrant vagrant    38 Mar 18 01:20 .bowerrc
drwxrwxr-x  7 vagrant vagrant  4096 Mar 18 01:43 dist/  <-distが作られる
-rw-r--r--  1 vagrant vagrant   415 Feb 10 19:07 .editorconfig
-rw-r--r--  1 vagrant vagrant    11 Feb 10 19:07 .gitattributes
-rw-r--r--  1 vagrant vagrant    52 Feb 10 19:07 .gitignore
-rw-rw-r--  1 vagrant vagrant 10579 Mar 18 01:39 Gruntfile.js
-rw-r--r--  1 vagrant vagrant   376 Feb 10 19:07 .jshintrc
drwxrwxr-x 30 vagrant vagrant  4096 Mar 18 01:21 node_modules/
-rw-rw-r--  1 vagrant vagrant  1154 Mar 18 01:21 package.json
-rw-rw-r--  1 vagrant vagrant   282 Mar 18 01:20 README.md
drwxrwxr-x  3 vagrant vagrant  4096 Mar 18 01:20 test/
drwxrwxr-x  4 vagrant vagrant  4096 Mar 18 01:42 .tmp/
-rw-r--r--  1 vagrant vagrant   110 Feb  2 19:59 .travis.yml
-rw-r--r--  1 vagrant vagrant     3 Feb 10 19:07 .yo-rc.json

これで準備が整ったのであとはapp以下で開発をおこなっていく。

■参考URL
・Yeoman を使って Webアプリの雛形を作ってみる
http://akiyoko.hatenablog.jp/entry/2014/07/31/024528

・yeomanを使ったAngularJSプロジェクトの始め方 2014年版
http://blog.kinzal.net/post/104245981055/yeoman-angularjs-2014

・エンカフェ
https://www.engcafe.tv/?tag=yeoman

・yeoman+grunt+bowerでangularjs+bootstrap+sass環境構築
http://ryutamaki.hatenablog.com/entry/2014/05/26/003744

・Nodeの複数バージョン管理のお供にnをどうぞ
http://dekokun.github.io/posts/2014-01-01.html

■個人メモ
front_dev

【phpStorm】SSH Terminalで接続して日本語が文字化ける場合

phpStorm

出来るだけ開発中に開くツールを減らすべく、
TerminalをphpStormのものに変更する。

SSH Terminalに接続して日本語が文字化ける場合↓

「File」->「Settings」->「Tools」->「SSH Terminal」

「Default encoding」を「UTF-8」に変更。

Terminalを「Floting Mode」で利用する場合デフォルトでは
Terminalを最小化する ->「Shift」+「Esc」
Terminalを表示する -> 「Alt」+「F12」
データベース接続もphpStormのものを利用するようにする。
「View」 -> 「Tool Windows」 -> 「Database」

【FuelPHP】FuelPHPでdompdfを使うまでの道のり

【FuelPHP】FuelPHPでdompdfを使うまでの道のり

前回まではoilコマンドで「fuel/packages/pdf」に
fuel-pdfをインストールして使っていたけど、
フォントのインストールしたり、設定ファイルを色々と
変更するなどしていると管理が面倒になったので、
fuel-pdfをやめて、dompdf自体を「fuel/app/vendor」
にいれて管理するように変更した。

前回のインストールの様子
【FuelPHP】FuelPHPでfuel-pdfを使うまでの道のり

dompdf自体をgitで設置することで前回までに起きていた
クラスが見つからない問題などが一切でなかったので、
こっちのやり方のほうが安心できる。
同梱されてる「tcpdf」使って無いしこれで問題ない。

とりえあず設定方法のメモ。

■fuel/app/vendor以下にdompdfをいれるので移動。

$ pwd
/home/linux-user/public_html/tmp/appname/fuel/app/vendor

■dompdfをcloneする

$ git clone https://github.com/dompdf/dompdf.git
Initialized empty Git repository in /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/.git/
remote: Counting objects: 5634, done.
remote: Total 5634 (delta 0), reused 0 (delta 0), pack-reused 5634
Receiving objects: 100% (5634/5634), 13.47 MiB | 3.40 MiB/s, done.
Resolving deltas: 100% (3967/3967), done.

■できたフォルダに移動して・・・

$ cd dompdf/

■サブモジュールのinitとupdateで空になってた「php-font-lib」が入ります。

$ git submodule init
Submodule 'lib/php-font-lib' (https://github.com/PhenX/php-font-lib.git) registered for path 'lib/php-font-lib'

$ git submodule update
Initialized empty Git repository in /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/lib/php-font-lib/.git/
remote: Counting objects: 885, done.
remote: Total 885 (delta 0), reused 0 (delta 0), pack-reused 885
Receiving objects: 100% (885/885), 9.25 MiB | 1.82 MiB/s, done.
Resolving deltas: 100% (493/493), done.
Submodule path 'lib/php-font-lib': checked out 'c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82'

■マルチバイト対応のためにIPAフォントを準備
(前回のインストール時に/home/linux-user/.fonts/にダウンロード済み)

$ php load_font.php ipagothic /home/linux-user/.fonts/IPAfont00303/ipagp.ttf
Unable to find bold face file.
Unable to find italic face file.
Unable to find bold_italic face file.
Copying /home/linux-user/.fonts/IPAfont00303/ipagp.ttf to /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/lib/fonts/ipagp.ttf...
Generating Adobe Font Metrics for /home/linux-user/public_html/tmp/appname/fuel/app/vendor/dompdf/lib/fonts/ipagp...

■テスト用のコントローラを作成して実行

public function action_pdftest()
{
    require_once( APPPATH .'vendor/dompdf/dompdf_config.inc.php');
    $pdf = new \DOMPDF();
    $html ='<!DOCTYPE html>
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>xxx</title>
        <style>
        body { font-family: "ipagothic;" }
        </style>
        </head>
        <body>
        マルチバイト
        </body>
        </html>';
    $pdf->load_html($html);
    $pdf->render();
    $pdf->stream("sample.pdf", array("Attachment" => 0));
}

dompdf/dompdf
https://github.com/dompdf/dompdf

Usage dompdf
https://github.com/dompdf/dompdf/wiki/Usage