[Linux]manコマンドが便利すぎる

Posted under Linux by uechoco on 月曜日 12 1月 2009 at 14 : 49 : 14

ちょっと野暮用でLinux(gcc)でC言語プログラムを組んでいます。普段C言語を使っていないので、たまに書くとポインタの使い方が間違っていたり、関数の引数を間違えたり大変です。
いつもはネット可能環境にいるので、Google先生がなんでも答えてくれるのですが、たまにネットができないところに行くと関数の引数がわからなくなって、開発が中断してしまっていました。
さっきふとLinuxの中にマニュアルがあったらいいのになぁとか思って、「man memcpy」とかシェルに打ち込んだら、マニュアル出てくるじゃないですかww
今まで知らなくて損してましたね。自分が知ってる関数とかだったらmanコマンドの冒頭の関数宣言を見るだけですぐに使い方がわかるので、Google先生に聞くより早い。


[Linux]Apacheインストール後の簡易設定

Posted under Linux by uechoco on 火曜日 15 1月 2008 at 15 : 40 : 00

 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ディレクティブは、特定のディレクトリに対して、使用できる機能を指定できます。初期設定ではIndexesFollowSymLinksが有効になっていました。Indexesは、ディレクトリへのアクセス時にインデックスファイルがない場合にmod_autoindexにファイル一覧を自動生成してもらうオプションです。昔はよく使われていた機能ですが、最近ではあまり見かけなくなりました。思わぬセキュリティホールになりかねないのでこのオプションは無効にしておきましょう。FollowSymLinksは、このディレクトリ内でシンボリックリンクを辿ることを許可します。私はたまにシンボリックリンクを使うことがあるので、このオプションは残したままにします。これ以外のオプションはApacheのOptionsディレクティブの解説を参照のこと。

 AllowOverrideディレクティブは、.htaccessファイルを用意したときに、どの機能を許可するのかを指定できます。デフォルトではNoneになっているので、.htaccessファイルは無視されます。いくつかの指定できるキーワードがありますが、どの機能も使いそうな気がするので、ここではAllを指定してすべての機能が使用できるようにしておきます。

次は、AddDefaultCharsetディレクティブをオフにします。

#コメントアウト
#AddDefaultCharset UTF-8

 AddDefaultCharsetディレクティブは、ファイルのコンテントタイプがtext/plaintext/htmlのときに、強制的に文字エンコードを指定する機能です。<meta>タグで指定した文字エンコードも無効にする可能性があります。思わぬバグの原因になりかねないので、Offを指定するか、ディレクティブ自体をコメントアウトしてしまいます。昔はNoneというキーワードを指定する人が居たようですが、そのキーワードは定義されていないので指定できません。

 おまけで、phpのソースコードを表示するのによく用いられる拡張子phpsも有効にします。設定ファイルは、/etc/httpd/conf.d/php.confです。

#コメントアウトをはずす
AddType application/x-httpd-php-source .phps

 phpの設定ファイルが別途にあるのが少し戸惑いました。


[Linux]起動時に自動的に時刻を合わせる

Posted under Linux by uechoco on 金曜日 11 1月 2008 at 17 : 15 : 00

 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高速化

Posted under Linux by uechoco on 木曜日 10 1月 2008 at 10 : 10 : 00

 先日から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接続ができた

Posted under Linux by uechoco on 水曜日 9 1月 2008 at 00 : 30 : 00

 前の記事で[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接続ができなかったのも、もしかして?


« 前ページへ次ページへ »

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.