Archive for the 'Linux' Category
[Linux]confgureでC++ preprocessor “/lib/cpp” fails sanity check
Tripwireをソースコードからインストールするためにconfigureしようとしたら、
-
configure: error: no acceptable C compiler found in $PATH
あれ?gccがないのかな?と思って、
-
yum -y install gcc
でインストールしたら、やっぱりなかったみたい。無事にインストールされて、再びconfigureすると、
-
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
ぇ?インストールしたのに!!こういうときは、エラー文をGoogleに丸投げ【`・ω・´】ノ ゚ ポイ
ありました!
Nix::WebLab: configure: error: C++ preprocessor "/lib/cpp" fails sanity check
どうやら、gccにはC++コンパイラが当然含まれているものだと勘違いしていた俺。別途インストールなのか!
ってなわけで、
-
yum -y install gcc-c++
でC++を入れて、三度目の正直っ。configureしたら、無事に通りましたとさ。
[Linux]Apacheインストール後の簡易設定
Fedora(on VMware on WinXP)にApacheをインストールすると、たいていの場合、httpd.confを書き換えずとも動いてしまうのですが、phpを走らせるときにたまに必要になる.htaccessを有効にしたり、インデックス表示をオフにしたり、デフォルトのcharsetをオフにしたりといった設定をしておいたほうがよさそうなので、設定の備忘録。以下、指定のない限りはhttpd.confファイルの設定です。
まずは、<Directory "/var/www/html">ディレクティブ内の設定。
# Options Indexes FollowSymLinks Options FollowSymLinks # AllowOverride None AllowOverride All
Optionsディレクティブは、特定のディレクトリに対して、使用できる機能を指定できます。初期設定ではIndexesとFollowSymLinksが有効になっていました。Indexesは、ディレクトリへのアクセス時にインデックスファイルがない場合にmod_autoindexにファイル一覧を自動生成してもらうオプションです。昔はよく使われていた機能ですが、最近ではあまり見かけなくなりました。思わぬセキュリティホールになりかねないのでこのオプションは無効にしておきましょう。FollowSymLinksは、このディレクトリ内でシンボリックリンクを辿ることを許可します。私はたまにシンボリックリンクを使うことがあるので、このオプションは残したままにします。これ以外のオプションはApacheのOptionsディレクティブの解説を参照のこと。
AllowOverrideディレクティブは、.htaccessファイルを用意したときに、どの機能を許可するのかを指定できます。デフォルトではNoneになっているので、.htaccessファイルは無視されます。いくつかの指定できるキーワードがありますが、どの機能も使いそうな気がするので、ここではAllを指定してすべての機能が使用できるようにしておきます。
次は、AddDefaultCharsetディレクティブをオフにします。
#コメントアウト #AddDefaultCharset UTF-8
AddDefaultCharsetディレクティブは、ファイルのコンテントタイプがtext/plainかtext/htmlのときに、強制的に文字エンコードを指定する機能です。<meta>タグで指定した文字エンコードも無効にする可能性があります。思わぬバグの原因になりかねないので、Offを指定するか、ディレクティブ自体をコメントアウトしてしまいます。昔はNoneというキーワードを指定する人が居たようですが、そのキーワードは定義されていないので指定できません。
おまけで、phpのソースコードを表示するのによく用いられる拡張子phpsも有効にします。設定ファイルは、/etc/httpd/conf.d/php.confです。
#コメントアウトをはずす AddType application/x-httpd-php-source .phps
phpの設定ファイルが別途にあるのが少し戸惑いました。
No comments[Linux]起動時に自動的に時刻を合わせる
VMware上のLinuxだと、正しい時刻にあっていないことが多いです。毎回のように起動時にntpdateをたたいたり、同等のシェルスクリプトを用意して手動で実行するのは、面倒だったり忘れたりします。私の場合は仮想のLinuxをWebサーバーとして扱おうと考えているので、時間は正確であることが望ましいです。
詳しく調べたわけではありませんが、仮想のLinuxの起動時に1回時刻を合わせれば済むのじゃないかと思うので、起動時に自動で1回だけntpdateを実行するようにしました。具体的には/etc/rc.d/rc.localというファイルの末尾に
/usr/sbin/ntpdate ntp.nict.jp
という行を追加するだけです。ntpの問い合わせるサーバーはどこでもいいと思うのですが、今回はNICT(独立行政法人 情報通信研究機構)の公開NTPサーバーを選択しました。
もし、一定時間ごとに時刻を合わせたい場合はcronを設定します。rootのときにcrontab -eでcron編集ができるので、実行間隔と上記のntpdateコマンドをcron形式で記述すれば大丈夫です。ただしNICTのNTPサーバーの利用規定では、1時間に20回以上(1日に480回以上)の問い合わせはしてはいけないようです。
■追記(2008/01/12)
Studentさんよりコメントをいただきましたが、VMware Toolsをインストールすれば時刻の同期をすることができるようです。VirtualBoxにもGuest Additionsをインストールすると時刻を同期する機能があったので、仮想化ソフトウェアはそういった機能を備えているのが普通なのかもしれないですね。
[Linux]# yum -y install yum-fastestmirrorでyum高速化
先日からVMwareでLinux(Fedora)の勉強を再開しています。id:sotarokさんの[VMWare][開発環境]#00 VMWare×CentOS5 Windowsでカンタン開発環境シリーズが私のやりたいことが一通りまとまっていそうな気がするので、参考にしています。困ったときはTwitterで助けていただけるかもしれないので(笑(ぉ
Fedoraのインストール作業は済んでいるので、最初のほうは流し読みだったのですが、yumの設定のところで、
# yum -y install yum-fastestmirror
というコマンドがあったので、調べてみました。
yum-fastestmirrorパッケージは、yumコマンドの実行時に、最適な(=速い)ミラーサーバに接続してくれるパッケージらしいです。FedoraやCentOS5で使用できるそうです。CentOS4ではパッケージではなくプラグインなのでyum-plugin-fastestmirrorという名前だそうです。
上記のコマンドを実行した後に、yum-fastestmirrorが動作しているかどうかはyum check-updateコマンドで確認できます。実行結果のサンプルは以下のようになっています。
# yum check-update Loading "fastestmirror" plugin Determining fastest mirrors * fedora: ftp.riken.jp * updates: ftp.riken.jp
yumで速いリポジトリを自動的に選択するには - @IT
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/903yumfastmirror.html
はじめての自宅サーバー構築 - yum plugin「fastestmirror」の導入 -
http://kajuhome.com/yum_fastestmirror.shtml
yum-fastestmirror(CentOS5) - tkoshima.net
http://tkoshima.net/wp/archives/259
G-chan Square - yum-fastestmirror
http://g-chan.dip.jp/square/archives/2007/08/yumfastestmirror.html
[VMware]iptablesを止めたらホスト(WinXP)からhttp接続ができた
前の記事で[VirtualBox]年末年始でわかったのは、ネットワークが面倒すぎる。というのを書きましたが、仮想のLinuxを立てて結局やりたかったのは、仮想のLinux上のWebサーバー(Apache httpd)のページを、ホストのブラウザで見れることでした。
で、今日はふとVMware Playerをインストールしてみたのですが、ネットワークアダプタ周りはあっさりやってくれましたね。自動でネットワークアダプタを追加して、IPを割り当てて、あとはpingもsshも通りました。ですが、やっぱりhttp接続はできません。そもそもエラーログにでてこないので、apache以前の問題だと思っていろいろと調べていてたら、iptablesっていうサービスを発見した。どうやらパケットフィルタリングのサービスらしいです。
iptablesの設定方法を調べてみたけど、100%は理解できない。オプションの指定の仕方が多いのと、インストール時に勝手にファイアウォールが有効になってたようで、pingとかsshとかは通るけど、httpは通らないのかもしれない。ウノウラボの名エントリーの1つ、ウノウラボ Unoh Labs: 専用サーバを構築するときにまず行う4つの設定にはiptablesの設定の仕方がのってるけど、とりあえず、iptablesが原因でhttp接続ができないのかどうかが調べたかったので、
# /etc/init.d/iptables stop
というコマンドでiptablesサービスを停止したところ、ローカルからhttpd接続できました。キタ━━━━(゚∀゚)━━━━!! これでもうやりたいことができる!すばらしい!
iptablesは有効のほうがいいのだろうけど、Vmware上の仮想のLinux環境だし、いいのかなぁっと安易な考えを抱いて、iptablesサービスを自動起動しないようにしました。
# chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off # chkconfig iptables off # chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
もしかして、VirtualBoxでhttp接続ができなかったのも、もしかして?
No comments