The wikis are now using the new authentication system.
If you did not migrate your account yet, visit https://idp-portal-info.suse.com/

Apache Quickstart HOWTO

移動先: 案内, 検索

{{Intro-frame| このドキュメントには一番シンプルな状態で、手っ取り早くインストールする方法がかかれています。つまり、拡張とか、応用については書いていません} 以下に書いてあるコマンドには(デフォルトの設定だと)ルート権限が必要なものがあるので適当にルート権限になって実行してください。}


設定する前に:

  • ネットワークの設定をしておいてください。
  • セキュリティについて、yast等で、定期的にアップデートを行って、それぞれのソフトウェア等について、最新版にしておいてください。

時間を正しい時間に同期しましょう

HTTPプロトコルはローカルマシンの時刻に動作が影響されるものがあります。

  • NTPのクライアントになるように設定しよう。
    • 方法はYaSTを利用するか

コマンド上からyastを使うなら以下のコマンド

yast2 ntp-client
    • 直接/etc/ntp.conf を編集しましょう。
vi /etc/ntp.conf --(編集して、ntpサーバを追加)
rcntp start --ntpデーモンを実行開始
chkconfig -a ntp --サービスとしてntpを登録(PC起動時(ブートした時)に、自動起動する為)

ファイアウォール

  • 80番ポートの設定を確認しておきましょう。(外部から接続するならば80番ポートの設定を直す必要有)

インストール

Yastのソフトウェアの管理からインストールもしくは

zypper install apache2

でインストールする。

実行方法:

  • apache2の実行
rcapache2 start
  • サービスに登録(PC起動時(ブートした時)に、自動起動する為)
chkconfig -a apache2

ページの追加:

  • 初期設定のDocumentRootは
/srv/www/htdocs
  • DocumentRoot以外の場所にファイルを置きたい場合は AliasとDirectoryを設定してください。

(設定ファイル(httpd.conf)の位置等は"設定の変更方法"をご覧ください。)
リンクの設定

Alias someplace "/path/to/someplace" 

参照:http://httpd.apache.org/docs/2.2/mod/mod_alias.html#alias
パーミッションの設定

<Directory /path/to/someplace> ... </Directory>

参照:http://httpd.apache.org/docs-2.2/mod/core.html#directory

※ (SuSE Linux 9.0から) 初期設定では、DocumentRoot以外の場所にファイルを置く場合のディレクトリはブロックされる形になってます。

Go through /etc/sysconfig/apache2:

  • check loaded modules (APACHE_MODULES="..."). (Can also be seen with the command "a2enmod -l".)
  • add "php5", "perl", or other needed modules to APACHE_MODULES al gusto. Modules can be enabled/disabled in a simple (Debian-compatible ;) way from the command line like this:
a2enmod php5
a2dismod php5
  • there is also a command a2enflag, to change APACHE_SERVER_FLAGS
  • restart the server ('rcapache2 restart')

設定の変更方法:

  • 独自設定ファイルの追加
/etc/apache2/httpd.conf.local

を追加(ファイル名は例です。)

    • sysconfigを設定していない場合
/etc/apache2/httpd.conf

の最後に

Include /etc/apache2/httpd.conf.local

を追記

    • sysconfigを設定している場合
/etc/sysconfig/apache2

を編集

APACHE_CONF_INCLUDE_FILES="httpd.conf.local"
  • to understand the hierarchy and layout of all include files, read the comments at the top of httpd.conf
  • if you strongly prefer the old, single, 40K, monolithic configuration file, it's there! Just use it:
# mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf.dist                                                                                                                                                                                 
# cp /usr/share/doc/packages/apache2/httpd-std.conf-prefork /etc/apache2/httpd.conf                                                                                                                                                       
# rcapache2 restart

Add virtual hosts:

see here http://httpd.apache.org/docs/2.2/vhosts/name-based.html

  • edit /etc/apache2/listen.conf. It is a suitable place to add NameVirtualHost directives.
  • copy the commented template /etc/apache2/vhosts.d/vhost.template to /etc/apache2/vhosts.d/yourhost.conf
  • edit /etc/apache2/vhosts.d/yourhost.conf to suit your needs
  • alternative approach: simply append the NameVirtualHost directive and the <VirtualHost> container to your single local configuration file, if you have one (like httpd.conf.local, as described above)
  • if in doubt about how apache interprets your vhost setup, always use httpd2 -S. If SSL is involved you will need to run httpd2 -S -DSSL instead -- likewise for other needed defines.
  • the "default" server, which responds to requests not handled by other vhosts, is always the one which is defined first. If you want a dedicated "default" server for such requests, you need to put it first in the configuration. Consequently, if the configuration is in multiple files, like /etc/apache2/vhosts.d/*.conf, then simply name it _default.conf, or e.g. _192.168.0.1.conf if you do it per IP address. Then it is read first.

TROUBLESHOOTING -- if all does not work:

  • fire up "tail -F /var/log/apache2/*_log &" in a root shell
  • reproduce what is not working (by starting apache, doing client requests, or whatever), and see how it is reflected in the logs
  • if you suspect a bug, please make use of http://bugzilla.novell.com

To learn more about configuration

building 3rd party modules:

  • install apache2-devel (and of course gcc as well as other needed development tools)
  • use one of the following:
apxs2          -- to build a module for all MPM types, or
apxs2-prefork  -- to build a module for the Prefork MPM, or
apxs2-worker   -- to build a module for the Worker MPM

(see man 8 apxs2). In most cases you can just use "apxs2", the most notably exception being mod_php4. Using apxs2-prefork then will prevent you from accidentally trying to use the module with the Worker MPM. Also, very few modules need to know interna from the MPMs, trying to include mpm.h and they will need to be built with apxs2-<mpmname>.

Typical example:

# apxs2 -c -i -a mod_foo.c                                                                                                                                                                                                                
-c does compile the module
-i installs it in the right place
-a activates it by running 'a2enmod mod_foo'
  • if the module's build system does not allow to use apxs, use at least CFLAGS=$(apxs2 -q CFLAGS) to determine the right compiler flags for your apache installation.

See Also

  • Apache more HOWTOs about Apache web server

External Links