My Photo

« November 2014 | Main | January 2015 »

December 14, 2014

Apacheとiptalbesの設定

関連記事:
インストールした覚えがないのにApacheがインストールされていた
serviceコマンドとchkconfigコマンド

前記事に書いたように、Apacheはインストール済みだったので、設定をした。

バージョンの確認

"httpd -v" か "apachectl -v"でバージョンが表示される。

# which httpd
/usr/sbin/httpd
# /usr/sbin/httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Oct 16 2014 14:48:21
# which apachectl
/usr/sbin/apachectl
# /usr/sbin/apachectl -v
Server version: Apache/2.2.15 (Unix)
Server built:   Oct 16 2014 14:48:21

起動スクリプトの設定

chkconfigコマンドでApacheがOS起動時に自動的に起動するように設定する。

# chkconfig --list httpd
httpd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
# chkconfig httpd on
# chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off

iptablesの設定を変更して80番ポートを開ける

apacheを起動して、ブラウザから "http://<サーバのIPアドレス>/index.html" にアクセスしてもタイムアウトしてしまう。これは iptables で80番ポートが閉じられているため。よって、iptablesの設定を変更する。
設定ファイルは /etc/sysconfig/iptables。以下の11行目を追加してiptables をserviceコマンドで再起動すると、ブラウザから前記のURLにアクセス可能となる。
#10行目をコピペし22を80行に変えただけ。-A だの INPUT だのの意味は調べていない。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

"service iptables status" とすると、以下のように表示される。

# service iptables status
テーブル: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 
6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         

httpd.conf

Apacheの設定ファイルは /etc/httpd/conf/httpd.conf。DefaultLanguage くらい設定しようかと思ったが、とりあえずそのままでも不都合ないので変更しないでおく。

参考ページ:
Apacheのバージョン確認方法 | CentOSサーバ構築術 文具堂
PHP + Apacheのインストール - Linux環境 - CentOS - PHP入門 - Webkaru
Web サーバー(Apache, httpd)のインストールと設定 - CentOS6 | EasyRamble
Linux(CentOS)へApache HTTP Serverをインストール
CentOS - メモ:Apacheの設定ファイル(http.conf)を確認する (3) - Qiita

December 04, 2014

インストールした覚えがないのにApacheがインストールされていた

関連記事:
CentOS 6.5にX Window Systemのインストール

いよいよサーバのインストール。まずApacheから。
と思ったが、既にインストールされていた。入れた覚えはないだが。CentOS は minimal をインストールしたので始めから入っていたということはないはず。
yum.log を調べると、X Window System をインストールしたときに一緒にインストールされたっぽい。なんで?
X のインストールは、正確には

  • X Window System
  • Desktop
  • General Purpose Desktop
  • Japanese Support

の4つのパッケージグループをインストールした。これらのうちどれか apache が含まれていたのだろう。
とりあえず1個ずつインストールしてはログを確認し、スナップショットで元に戻すということをやった。結果、"General Purpose Desktop" のインストールで Apache がインストールされることがわかった。名前に「デスクトップ」を含むものにサーバが含まれてるのって、どうなの?

General Purpose Desktop に含まれるパッケージは以下。

読み込んだプラグイン:downloadonly, fastestmirror, refresh-packagekit
グループ処理の設定をしています
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp

グループ: 汎用デスクトップ(GNOMEデスクトップ)
 説明: Desktop への追加により全面的な GNOME の機能を提供する汎用デスクトップです。
 標準パッケージ:
   PackageKit-gstreamer-plugin
   authconfig-gtk
   brasero-nautilus
   cheese
   compiz-gnome
   evince
   evince-dvi
   file-roller
   gcalctool
   gedit
   gnome-backgrounds
   gnome-bluetooth
   gnome-disk-utility
   gnome-power-manager
   gnome-system-monitor
   gnome-themes
   gnome-user-docs
   gnome-user-share
   gnome-utils
   gnote
   gthumb
   gucharmap
   gvfs-afc
   gvfs-gphoto2
   gvfs-obexftp
   mousetweaks
   nautilus-open-terminal
   nautilus-sendto
   rhythmbox
   scenery-backgrounds
   seahorse
   sound-juicer
   system-config-firewall
   system-config-users
   totem
   totem-nautilus
 オプション パッケージ:
   alacarte
   byzanz
   dvgrab
   gconf-editor
   gedit-plugins
   gnome-games
   gnome-pilot
   gnome-pilot-conduits
   krb5-auth-dialog
   rhythmbox-upnp
   seahorse-plugins
   totem-upnp
   vim-X11

上記のパッケージを1個ずつインストールしてみたら、gnome-user-share というパッケージで Apache がインストールされた。このパッケージの依存関係を表示すると、こうなっていた。

依存性の検索中: 
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
パッケージ    : gnome-user-share.x86_64 2.28.2-3.el6
  依存性      : libcairo.so.2()(64bit)
   provider: cairo.x86_64 1.8.8-3.1.el6
  依存性      : libgdk-x11-2.0.so.0()(64bit)
   provider: gtk2.x86_64 2.24.23-6.el6
  依存性      : libglib-2.0.so.0()(64bit)
   provider: glib2.x86_64 2.28.8-4.el6
  依存性      : libunique-1.0.so.0()(64bit)
   provider: unique.x86_64 1.1.4-2.el6
  依存性      : librt.so.1()(64bit)
   provider: glibc.x86_64 2.12-1.149.el6
  依存性      : libpangoft2-1.0.so.0()(64bit)
   provider: pango.x86_64 1.28.1-10.el6
  依存性      : libgio-2.0.so.0()(64bit)
   provider: glib2.x86_64 2.28.8-4.el6
  依存性      : libatk-1.0.so.0()(64bit)
   provider: atk.x86_64 1.30.0-1.el6
  依存性      : libnotify.so.1()(64bit)
   provider: libnotify.x86_64 0.5.0-1.el6
  依存性      : obex-data-server >= 0.3
   provider: obex-data-server.x86_64 1:0.4.3-4.el6
  依存性      : libpango-1.0.so.0()(64bit)
   provider: pango.x86_64 1.28.1-10.el6
  依存性      : libpangocairo-1.0.so.0()(64bit)
   provider: pango.x86_64 1.28.1-10.el6
  依存性      : libfreetype.so.6()(64bit)
   provider: freetype.x86_64 2.3.11-14.el6_3.1
  依存性      : libgconf-2.so.4()(64bit)
   provider: GConf2.x86_64 2.28.0-6.el6
  依存性      : libX11.so.6()(64bit)
   provider: libX11.x86_64 1.6.0-2.2.el6
  依存性      : libgdk_pixbuf-2.0.so.0()(64bit)
   provider: gdk-pixbuf2.x86_64 2.24.1-5.el6
  依存性      : httpd >= 2.2.0
   provider: httpd.x86_64 2.2.15-39.el6.centos
  依存性      : libdbus-1.so.3()(64bit)
   provider: dbus-libs.x86_64 1:1.2.24-7.el6_3
  依存性      : mod_dnssd
   provider: mod_dnssd.x86_64 0.6-2.el6
  依存性      : libfontconfig.so.1()(64bit)
   provider: fontconfig.x86_64 2.8.0-5.el6
  依存性      : libselinux.so.1()(64bit)
   provider: libselinux.x86_64 2.0.94-5.8.el6
  依存性      : libc.so.6(GLIBC_2.4)(64bit)
   provider: glibc.x86_64 2.12-1.149.el6
  依存性      : rtld(GNU_HASH)
   provider: glibc.x86_64 2.12-1.149.el6
   provider: glibc.i686 2.12-1.149.el6
  依存性      : libcanberra.so.0()(64bit)
   provider: libcanberra.x86_64 0.22-1.el6.centos
  依存性      : /bin/sh
   provider: bash.x86_64 4.1.2-29.el6
  依存性      : libpthread.so.0()(64bit)
   provider: glibc.x86_64 2.12-1.149.el6
  依存性      : scrollkeeper
   provider: rarian-compat.x86_64 0.8.1-5.1.el6
  依存性      : libpthread.so.0(GLIBC_2.2.5)(64bit)
   provider: glibc.x86_64 2.12-1.149.el6
  依存性      : libdbus-glib-1.so.2()(64bit)
   provider: dbus-glib.x86_64 0.86-6.el6
  依存性      : libgobject-2.0.so.0()(64bit)
   provider: glib2.x86_64 2.28.8-4.el6
  依存性      : libgmodule-2.0.so.0()(64bit)
   provider: glib2.x86_64 2.28.8-4.el6
  依存性      : libcanberra-gtk.so.0()(64bit)
   provider: libcanberra-gtk2.x86_64 0.22-1.el6.centos
  依存性      : libgnome-bluetooth.so.7()(64bit)
   provider: gnome-bluetooth-libs.x86_64 2.28.6-8.el6
  依存性      : libgtk-x11-2.0.so.0()(64bit)
   provider: gtk2.x86_64 2.24.23-6.el6
  依存性      : GConf2
   provider: GConf2.x86_64 2.28.0-6.el6
   provider: GConf2.i686 2.28.0-6.el6
  依存性      : libnautilus-extension.so.1()(64bit)
   provider: nautilus-extensions.x86_64 2.28.4-19.el6

httpd がある(39行目)。このパッケージはファイル共有とか、共有フォルダというか、ディレクトリを外部に開放するためのもの?たぶん自分には必要のないパッケージのような気がする。

こんなことを調査しても何の利益もない。でも、繰り返しになるが「デスクトップ」と名の付くものを入れたらWEBサーバが付いてくるということになんとも釈然としなかったので調べてみた。
「それが嫌ならグループインストールなどせずに1個ずつ必要なパッケージだけインストールしろよ」
ってこなんだろうけどさ。
全く納得は出来ないが、まあ原因がわかったので多少はモヤモヤが晴れた。

December 02, 2014

VirtualBoxをアップデート

VirtualBoxを起動すると「新しいバージョン出てるよ」というようなメッセージが表示されたので、バージョンアップした。
VirtualBoxのメニューの「ヘルプ」>「アップデートを確認」から新バージョンのインストーラをダウンロード。仮想マシン、VirtualBoxマネージャーを終了してからインストーラを起動して4.3.20にバージョンアップした。
#最初、VirtualBoxを終了せずにインストーラを起動してアップデートに失敗した。そらそうだろ^^;
バージョンアップ完了後にVirtualBoxを起動すると、今度は「古い拡張機能パックが入ってます。アップデートしますか?」みたいなメッセージが表示される。それで拡張機能パックも更新。しかし途中でエラーのダイアログが出て失敗。仮想マシンが起動してたからだろうか。仮想マシンを終了し、VirtualBoxも再起動してから拡張機能パックも更新をしたら今度はうまく行った。

Changelog - Oracle VM VirtualBox

December 01, 2014

serviceコマンドとchkconfigコマンド

関連記事:
Ubuntuサーバでのサービスの起動・停止

CentOSにこれからサーバアプリケーションをインストールしていこうと思うが、その前にサーバの管理に使うserviceコマンドとchkconfigコマンドについて調べた。
ただし、CentOS 7 では systemctl というコマンドに置き換わっている。

serviceコマンド

以前、Ubuntuサーバでserviceコマンドについて書いたが、CentOSでも同じ。

service <サービス名> <コマンド>
サービス名:/etc/rc.d/init.d にあるスクリプトのファイル名である。
コマンド:
 start:起動
 end:停止
 status:状態の表示

chkconfigコマンド

各ランレベルで起動時にサービス(デーモン)を起動するかどうかを設定するコマンドである。
各ランレベル毎に /etc/rc[0-6].d ディレクトリにサービスを起動するための起動スクリプトがある。
/etc/rc[0-6].d は実際は /etc/rc.d/rc[0-6].d ディレクトリへのシンボリックリンクである。起動スクリプトは /etc/init.d にあるスクリプトへのシンボリックリンクである。

chkconfig --list <起動スクリプト名>
サービスの各ランレベルでの設定を表示する。
chkconfig [--level <ランレベル>] <起動スクリプト名> {on|off|restart}
指定したランレベルでのサービスの起動・停止を設定する。
ランレベルを省略した場合はランレベル2~5の設定をする。
on:startという引数でスクリプトを起動する。
off:stopという引数でスクリプトを起動する。
reset:初期設定に戻す(初期設定はスクリプト内に書いてある)。

ランレベルはそれぞれ以下のような意味である。

ランレベル
ランレベル 意味
0 システムの停止
1 シングル・ユーザー
2 ネットワーク機能なしのマルチユーザー
3 CUIログインのマルチユーザー
4 カスタム
5 GUIログインのマルチユーザー
6 システムの再起動

参考ページ:
管理者必見! ネットワーク・コマンド集 - serviceコマンド:ITpro
デーモンの起動・終了にはserviceコマンドを利用しよう - インフラエンジニアway - Powered by HEARTBEATS
serviceコマンドの補完 | ねころくぶろぐ
管理者必見! ネットワーク・コマンド集 - chkconfigコマンド:ITpro
CentOS7ではserviceコマンドやchkconfigコマンドは使えません | ogatism

« November 2014 | Main | January 2015 »

May 2017
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof