Love澤's Room

技術系ネタをまとめていたブログ。現在はカテゴリにこだわらず更新中。

CentOS 7.0にGDライブラリのインストール(yumを使用)

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。


前回の記事ではCentOS 6.5へのインストール方法を紹介しました。

CentOS 6.5にGDライブラリのインストール(yumを使用) - Love澤's Room

今回は諸事情によりCentOS 7.0を使うことになったので、そちらへGDモジュールをインストールする方法を書いておきます。

といっても、前回の記事とほとんど同じです。

インストール済みのPHPのパッケージ名の確認

前回の記事と同様に、安直に「yum install php-gd」などとするとエラーが出ることが懸念されます(確認したわけではありません)。そこで、インストール済みのPHPのパッケージ名を確認しましょう。

[root@hogehoge ~]# yum list installed | grep php
php56w.x86_64                         5.6.2-1.w7                       @webtatic
php56w-cli.x86_64                     5.6.2-1.w7                       @webtatic
php56w-common.x86_64                  5.6.2-1.w7                       @webtatic
php56w-devel.x86_64                   5.6.2-1.w7                       @webtatic
php56w-gd.x86_64                      5.6.2-1.w7                       @webtatic
php56w-mbstring.x86_64                5.6.2-1.w7                       @webtatic
php56w-mysql.x86_64                   5.6.2-1.w7                       @webtatic
php56w-pdo.x86_64                     5.6.2-1.w7                       @webtatic

と言った具合です。

GDモジュールのインストール

インストールされているPHPのパッケージ名にあわせてGDモジュールをインストールします。

[root@hogehoge ~]# yum list | grep php
php56w-gd.x86_64                            5.6.2-1.w7                 @webtatic
[root@hogehoge ~]# yum install php56w-gd

Apacheの再起動

インストール後、Webサーバを再起動しましょう。CentOS 7からはCentOS 6以前とコマンドが変わっています。

[root@hogehoge ~]# systemctl restart httpd.service

これで正常に動くはずです。php.info()で確認してみましょう。

poppler&ImageMagickでPDFを画像に変換するも日本語が表示されない場合の対応(CentOS 7.0)

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。


タイトルの通り、popplerとImageMagickでPDFを画像に変換した時に、日本語が表示されない場合の対応です。
なお、使用しているサーバのOSはCentOS 7.0です。

対応1:poppler-dataをインストール

poppler、poppler-utilsだけでなく、poppler-dataもインストールすることで、多くの場合は解決できるようです。

[root@hogehoge ~]# yum install poppler-data

今回は対応1だけでは日本語表示がされませんでした。というか、最初からpoppler、poppler-utils、poppler-data、ghostscriptなどを一緒くたにインストールしていたのですが、ダメでした。

対応2:adobe-fontsをインストール

フォント関係でなにか足りてないかと思ってyumで調べてみることに。するとadobe-source-han-sans-cn-fontsといった物が見つかりました。

[root@hogehoge ~]# yum info *adobe*
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * remi: remi.kazukioishi.net
 * rpmforge: ftp.riken.jp
 * updates: ftp.nara.wide.ad.jp
 * webtatic: us-east.repo.webtatic.com
133 packages excluded due to repository priority protections
利用可能なパッケージ
名前                : adobe-source-han-sans-cn-fonts
アーキテクチャー    : noarch
バージョン          : 1.000
リリース            : 2.el7
容量                : 43 M
リポジトリー        : epel/x86_64
要約                : Adobe OpenType Pan-CJK font family for Simplified Chinese
URL                 : http://sourceforge.net/adobe/source-han-sans/wiki/Home/
ライセンス          : ASL 2.0
説明                : Source Han Sans is a sans serif Pan-CJK font family
                    : that is offered in seven weights―ExtraLight, Light,
                    : Normal, Regular, Medium, Bold, and Heavy―and
                    : in several OpenType/CFF-based deployment configurations
                    : to accommodate various system requirements or limitations.
                    :
                    : As the name suggests, Pan-CJK fonts are intended to
                    : support the characters necessary to render or
                    : display text in Simplified Chinese, Traditional Chinese,
                    : Japanese, and Korean.

名前                : adobe-source-han-sans-twhk-fonts
アーキテクチャー    : noarch
バージョン          : 1.000
リリース            : 1.el7
容量                : 29 M
リポジトリー        : epel/x86_64
要約                : Adobe OpenType Pan-CJK font family for Traditional Chinese
URL                 : http://sourceforge.net/adobe/source-han-sans/wiki/Home/
ライセンス          : ASL 2.0
説明                : Source Han Sans is a sans serif Pan-CJK font family
                    : that is offered in seven weights―ExtraLight, Light,
                    : Normal, Regular, Medium, Bold, and Heavy―and
                    : in several OpenType/CFF-based deployment configurations
                    : to accommodate various system requirements or limitations.
                    :
                    : As the name suggests, Pan-CJK fonts are intended to
                    : support the characters necessary to render or
                    : display text in Simplified Chinese, Traditional Chinese,
                    : Japanese, and Korean.

これをインストールしてみることに。今回、少しこれまでと挙動が異なったので、インストール途中の様子も載せています。違ったのは「adobe-source-han-sans-cn-fonts-1.000-2.el7.noarch.rpm の公開鍵がインストールされていません」という部分です。

[root@hogehoge ~]# yum install adobe-source-han-sans-cn-fonts adobe-source-han-sans-twhk-fonts
読み込んだプラグイン:fastestmirror, langpacks, priorities
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.iij.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * remi: remi.kazukioishi.net
 * rpmforge: ftp.riken.jp
 * updates: ftp.nara.wide.ad.jp
 * webtatic: us-east.repo.webtatic.com
133 packages excluded due to repository priority protections
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ adobe-source-han-sans-cn-fonts.noarch 0:1.000-2.el7 を インストール
---> パッケージ adobe-source-han-sans-twhk-fonts.noarch 0:1.000-1.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

============================================================================================================
 Package                                      アーキテクチャー   バージョン                 リポジトリー      容量
============================================================================================================
インストール中:
 adobe-source-han-sans-cn-fonts               noarch             1.000-2.el7                epel              43 M
 adobe-source-han-sans-twhk-fonts             noarch             1.000-1.el7                epel              29 M

トランザクションの要約
============================================================================================================
インストール  2 パッケージ

総ダウンロード容量: 72 M
インストール容量: 94 M
Is this ok [y/d/N]: y
Downloading packages:
警告: /var/cache/yum/x86_64/7/epel/packages/adobe-source-han-sans-cn-fonts-1.000-2.el7.noarch.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY
adobe-source-han-sans-cn-fonts-1.000-2.el7.noarch.rpm の公開鍵がインストールされていません
(1/2): adobe-source-han-sans-cn-fonts-1.000-2.el7.noarch.rpm                                |  43 MB  00:00:58
(2/2): adobe-source-han-sans-twhk-fonts-1.000-1.el7.noarch.rpm                              |  29 MB  00:02:35
-------------------------------------------------------------------------------------------------------------------
合計                                                                               472 kB/s |  72 MB  00:02:35
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 から鍵を取得中です。
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"
 Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 Package    : epel-release-7-5.noarch (@extras)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
上記の処理を行います。よろしいでしょうか? [y/N]y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : adobe-source-han-sans-twhk-fonts-1.000-1.el7.noarch                                1/2
  インストール中          : adobe-source-han-sans-cn-fonts-1.000-2.el7.noarch                                  2/2
  検証中                  : adobe-source-han-sans-cn-fonts-1.000-2.el7.noarch                                  1/2
  検証中                  : adobe-source-han-sans-twhk-fonts-1.000-1.el7.noarch                                2/2

インストール:
  adobe-source-han-sans-cn-fonts.noarch 0:1.000-2.el7     adobe-source-han-sans-twhk-fonts.noarch 0:1.000-1.el7

完了しました!

サーバーがハングアップした時にしたこと(未解決:現在進行形)

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。


いつぞやかに落雷が原因で停電したことがあった。それ以降、サーバーが不定期にハングアップするようになった。

長い時だと一週間位、短い時だと一日程度でハングアップ。サーバールームに駆け込み直接キーを叩くも反応なし。仕方ないので電源ボタンを長押しして強制終了→再起動というように、騙し騙し使っていた。

さすがに2~3ヶ月経ち、そろそろなにか原因を調査せねば思い立ったので、やっていること(2014年12月26日現在進行形)を書いていく。

/var/logのいろんなログを見つめる

特にこれといったエラーらしいものを発見できず。

OSの再インストール

一週間くらい何事も無く稼働していたのですが、昨日(2014/12/25 14時頃)ハングアップが。OS再インストールしてもだめということは、ハード側の問題かと勘ぐる。
セットアップなどは簡単に以下の様なことを行っていた

  1. インストール
  2. ネットワーク設定・ファイアウォール構築・ウイルス対策ソフトインストール
  3. SSH接続設定・SFTP接続設定
  4. Webサーバー構築・データベース(MariaDB)構築
  5. ImageMagickとpopplerのインストール

このあたりでハングアップ。ImageMagickとpopplerあたりが悪いのかなぁ。

HDDの不良セクタ検知

本日(2014/12/26 3時頃)、HDDの不良セクタを疑い、チェック中。コマンドは以下

# badblocks -s -o badsectors_sda1.txt /dev/sda1
# badblocks -s -o badsectors_sda2.txt /dev/sda2
# badblocks -s -o badsectors_sdb1.txt /dev/sdb1
# badblocks -s -o badsectors_sdb2.txt /dev/sdb2

sda1とsdb1のチェックは5秒くらいで終わったが、sda2とsdb2のチェックはそれぞれ1時間30分くらいかかった。しかし特に不良セクタは検知されなかった。

さて、これからどうするか。。。

MariaDB(Mysql)でキー情報を削除する方法

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。

削除前に知るべき情報

キーのインデックスを知る必要があります。

MariaDB [hogehoge]> show create table hugahuga\G
*************************** 1. row ***************************
       Table: hugahuga
Create Table: CREATE TABLE `hugahuga` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `author_id` int(11) NOT NULL,
  `section_id` int(11) NOT NULL,
  `add_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `author_id` (`author_id`),
  KEY `section_id` (`section_id`),
  CONSTRAINT `hugahuga_ibfk_1` FOREIGN KEY (`author_id`) REFERENCES `foo` (`id`),
  CONSTRAINT `hugahuga_ibfk_2` FOREIGN KEY (`section_id`) REFERENCES `bar` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

インデックスは、主キーの場合だと"PRIMARY KEY (`id`)"の"id"が該当し、外部キーの場合だと"CONSTRAINT `hugahuga_ibfk_1`"の"hugahuga_ibfk_1"などが該当します。主キーでも外部キーでも無いけれどキーに設定されているものは"KEY `author_id` (``)"の"author_id"が該当します。

このインデックスを用いてキーを削除していきます。

主キーやただのキーの削除

indexをdropする。

MariaDB [hogehoge]> alter table hugahuga drop index id;
Query OK, 0 rows affected, 1 warning (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 1

MariaDB [hogehoge]> alter table hugahuga drop index section_id;
Query OK, 0 rows affected, 1 warning (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 1

foreign keyの削除

foreign keyをdropする

MariaDB [hogehoge]> alter table hugahuga drop foreign key hugahuga_ibfk_1;

iptableの設定もsshd_configの設定も正しいのにSSH接続できない時の原因

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。


/home/user/のパーミッションが777になっていた。711に戻したらうまく接続できた

FileZillaでファイルを転送しようと思って、一時的にパーミッションを777に設定したところ、転送できなかった。
そこでTeraTermでiptableの確認をしようと思って接続を試みたところ、接続エラーとなった。

もしやと思ってパーミッション設定を711に戻したらうまく接続できた。

その後ググったところ、以下の様なサイトを発見。

SSHが鍵認証されないとき、パーミッションを疑え。 - それマグで!

もちろん、.sshから上位フォルダのパーミッションも必要
chmod 755 /home/takuya
これがうっかり777になってた。ホームディレクトリが777だと永遠にauthorized_keysは無効化される。

SSHで公開鍵認証を使う - Pistolfly

クライアント側のユーザのホームディレクトリのパーミッションにも注意する。所有者以外の書込み権を設定してあるとだめ。
たとえば、/home/hogeのパーミッションが777の場合、公開鍵認証でsshログインしようとすると、
Permission denied (publickey,gssapi-with-mic).
というエラーになる。この場合、サーバ側のログ(/var/log/secure)では
Authentication refused: bad ownership or modes for directory /home/hoge
となっていて、/hoem/hogeのパーミッションに問題があるということ。
所有者以外の書込み権を設定してあるとだめ。700、711、755にすればOK。

なるほど。

CentOSで文字コードの確認&変更をする方法(nkfコマンド)

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。


nkfコマンドを利用する。他の方法を見つけた時はまたその都度記事にしていきます。

インストール

# yum -y install nkf

文字コードの確認

# nkf -g *

"*"だとディレクトリ内の全てのファイルの文字コードを確認する。ファイルを指定する場合はその都度ファイル名を記述する。
実行結果は以下。

[root@myserv]# nkf -g *
hoge.class:BINARY
hoge.java:ASCII (LF)
foo.txt:UTF-8 (LF)
bar.txt:Shift_JIS (LF)
...(以下略)

文字コードの変更(UTF-8へ変更する場合)

# nkf -w foo.txt > bar.txt

オプションで変更後の文字コードを指定する。

詳細はヘルプ参照。主要な文字コードとオプションの対応は以下の通り。

  • -j または --jis : JIS 7bit
  • -s または --sjis : Shift JIS
  • -e または --euc : EUC-JP
  • -w または --utf8 : UTF-8

さらにオプションで上書き保存なども可能

  • --in-place : 上書き保存
  • --overwrite : 上書き保存(元のファイルのタイムスタンプを保持)

Cron <root@hogehoge> /root/tripwire.sh というメールが届いた時にしたこと(メモ)

新サイトへ移転しました
約3秒後に自動的にリダイレクトします。


管理者宛に、以下の様なメールが届いた。

### Error: File could not be opened.
### Filename: /usr/local/tripwire/lib/tripwire/hogehoge.twd
### No such file or directory
### Exiting...
Null message body; hope that's ok
### Error: Incorrect site passphrase.
### Exiting...
### Error: Incorrect local passphrase.
### Exiting...
続きを読む