【メモ】【Linux】CentOSでのwkhtmltopdfのインストール

Webページ(html)をpdfにしたいため、wkhtmltopdfをインストールしました。
※環境:CentOS 6.4(64bit)

最初、下記コマンドでwkhtmltopdfをダウンロードします。

  cd /usr/local/src
  wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm

※OSやバージョンによってダウンロード対象が異なるため、下記ダウンロードページで確認する必要があります。
http://wkhtmltopdf.org/downloads.html

次は、ダウンロードしたwkhtmltopdfをインストールします。

  rpm -ivh wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm

しかし、下記エラーが出て、インストールできませんでした。

  error: Failed dependencies:
      xorg-x11-fonts-Type1 is needed by wkhtmltox-1:0.12.2.1-1.x86_64
      xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.2.1-1.x86_64

→ 「xorg-x11-fonts-Type1」と「xorg-x11-fonts-75dpi」に依存しているようなので、yumでインストールします。

  yum install -y xorg-x11-fonts-75dpi
  yum install -y xorg-x11-fonts-Type1

再度rpmでwkhtmltopdfをインストールしたら、無事にインストールできました。

※インストールできたら、下記のような一行のコマンドだけで、Webページをpdfで保存することができます。(例えば、http://www.yahoo.co.jp → yahoo.pdf)

  wkhtmltopdf http://www.yahoo.co.jp yahoo.pdf

【メモ】【Linux】【sudo】sudoユーザーの設定

※OS:CentOS

例えば、aaaaaというユーザーをsudoユーザーとして追加したい場合:

(1)root権限を持つユーザーでログインして、visudoコマンドを実行します。

  [root@XXXXXXX ~]# visudo

(2)エディタが自動に開きますので、下記の行を追加します。

  aaaaa ALL=(ALL) ALL

ただ、上記の設定だと、aaaaaがsudoする際にパスワードの入力が求められます。パスワード入力なしの設定をする場合、下記のようにします。

  aaaaa ALL=(ALL) NOPASSWD:ALL

※実際編集されたファイルは/etc/sudoersですが、viでの直接編集は危ないですのでやめましょう。必ずvisudoで行います。
※sudoがインストールされたかどうかの確認は下記のコマンドです。

  [root@XXXXXXX ~]# yum list installed | grep sudo

※インストールされていない場合、まずyumでインストールします。

  [root@XXXXXXX ~]# yum install sudo

【Linux】【phpMyAdmin】メモ — config.inc.phpの場所について

※実装環境:CentOS 6.2

yumを使ってphpMyAdminをインストールした場合、
設定ファイル「config.inc.php」の場所は、phpMyAdmin本体が格納された場所(普通は/usr/share/phpMyAdmin)ではありません。
つまり、/usr/share/phpMyAdmin/config.inc.phpを作成して編集しても効きません。

↓↓正解は下記のパスになりますので、要注意です。↓↓

  /etc/phpMyAdmin/config.inc.php

【CentOS】【munin】メモ — muninのプラグイン有効化 — CentOS 5

muninにプラグインを有効化する方法は簡単です。シンボリックリンクを張れば良いです。

例えば、apacheを追加するには、下記通りにすれば良いです。(実行環境:CentOS 5.7)

# ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/apache_accesses
# ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/apache_processes
# ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/apache_volume

※muninの再起動を忘れずに:

# service munin-node restart

CentOSのjavaのインストール(yum使用)

環境:CentOS 6.2

javaがインストールされていないため、yumを使って入れてみました。

手順:
・Step 1

  yum list \*java-1\* | grep open

を使って、インストール可能なパッケージ一覧を表示。
例えば、下記の内容が表示されました。

  java-1.6.0-openjdk.x86_64              1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-devel.x86_64        1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-demo.x86_64         1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-javadoc.x86_64      1:1.6.0.0-1.49.1.11.4.el6_3      updates
  java-1.6.0-openjdk-src.x86_64          1:1.6.0.0-1.49.1.11.4.el6_3      updates

・Step 2
上記リストにあわせて、下記パッケージをインストール。

  yum install java-1.6.0-openjdk.x86_64
  yum install java-1.6.0-openjdk-devel.x86_64

以上でインストールを完了しました。
※参考資料:
CentOSにJavaをインストール(with yum)

Webサーバー構築メモ — Cent OS 5.7

サーバー構築を構築しています。経験があまりないので、メモとして今回の問題点と解決策をまとめます。

【環境】
Cent OS 5.7
Apache 2.2.3
PHP 5.2.10

【問題1】
.htaccessでmod_rewriteを使ってリダイレクトをしようとしても動きませんでした。
エラーログ(/var/log/httpd/error_log)を確認すると、下記のエラーがありました:

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /XXX/XXX/XXX

→ 解決策: /etc/httpd/conf/httpd.confの<Directory>セクションの設定をします。
(1)<Directory>セクションのOptionにFollowSymLinksをつけなければなりません。
そうしないと、上記のエラーが出てきます。
(2)<Directory>セクションのAllowOverrideをNoneに設定してはいけません。
Noneに設定してしまうと、.htaccessでの上書きが出来なくなります。AllかFileInfoに設定します。
↓↓大体は下記の感じです↓↓

<Directory "/XXX/XXX/XXX/">
  Options FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

詳細は下記サイトを参照してください。
Apache HTTP サーバ

【問題2】
複数ドメインのDocumentRootの設定
例えば、httpd.confのDocumentRootは”/var/www/html”だとします。
そうすると、直接ipアドレスでアクセスしてくると、/var/www/htmlがルートになります。
→ ただ、事前に取得しておいたドメインexample.comでアクセスすると、/var/www/htmlではなく、/var/www/htmlの下の「aaa」というディレクトリーを見るように設定したいです。
つまり、「http://www.example.com」 ⇒ 「/var/www/html/aaa」にしたいです。
→ 解決策: /etc/httpd/conf/httpd.confの<VirtualName>セクションの設定をします。
例えば、一番簡単な設定は下記のようです↓↓

NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /var/www/html/aaa
  ServerName www.example.com
</VirtualHost>

もしhttps(SSL)にも対応したい場合には、443番ポートなので、下記のも必要です↓↓

NameVirtualHost *:443
<VirtualHost *:443>
  DocumentRoot /var/www/html/aaa
  ServerName www.example.com:443
</VirtualHost>

他にもいろいろ設定できますので(CustomLogやErrorLogやServerAdminなど)、下記サイトを参照してください。
Apache バーチャルホスト説明書 – Apache HTTP サーバ
※注1:CustomLogを設定する時、ログのフォーマット「LogFormat」の設定も必要です。
例えば:

LogFormat "%h %v %l %u %t \"%r\" %>s %b" commonvhost
NameVirtualHost *:80
<VirtualHost *:80>
  DocumentRoot /var/www/html/aaa
  ServerName www.example.com
  CustomLog /etc/httpd/logs/example.com-access_log commonvhost
</VirtualHost>

LogFormatの詳細は、下記サイトを参照して下さい。
ログファイル – Apache HTTP サーバ

【問題3】
PHPのDOMのインストール
今回の件はDOMが必要ですが、インストールされていません。
↓↓下記のようにyumで簡単にインストールできました↓↓

yum install php-xml

Cent OS 5.7でのPHPバージョンアップ:5.1 → 5.2

基本的に
HowTos/PHP 5.1 To 5.2 – CentOS Wiki
のままでOKでした。

 

簡単にまとめてみると:
(1)現在インストールされた物の確認:
# rpm -qa | grep php

(2)/etc/yum.repos.d/の下に、下記内容で「CentOS-Testing.repo」という新しいリポジトリを追加します↓↓

  [c5-testing]
  name=CentOS-5 Testing
  baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/
  enabled=1
  gpgcheck=1
  gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing
  includepkgs=php*

(3)アップデート
# yum update

(4)念のためhttpdを再起動
# service httpd restart

 

という感じです。