ラベル apache の投稿を表示しています。 すべての投稿を表示
ラベル apache の投稿を表示しています。 すべての投稿を表示

2015年1月30日金曜日

CentOS6.5でapache 2.4.12のrpm化&インストール

WordPressを構築してみるために、最新のapache 2.4.12をインストールする。rpmがないので、rpm作成から試してみる。
※rpm作成環境の構築はこちら ソースコードを入手し、さくっとrpmを作成してみる。
$ mkdir  ~/rpmbuild/SOURCES/httpd-2.4.12-1.src
$ cd ~/rpmbuild/SOURCES/httpd-2.4.12-1.src
$ wget http://ftp.riken.jp/net/apache//httpd/httpd-2.4.12.tar.bz2
$ rpmbuild --clean -tb ~/rpmbuild/SOURCES/httpd-2.4.12-1.src/httpd-2.4.12.tar.bz2

error: Failed build dependencies:
        zlib-devel is needed by httpd-2.4.12-1.x86_64
        libselinux-devel is needed by httpd-2.4.12-1.x86_64
        libuuid-devel is needed by httpd-2.4.12-1.x86_64
        apr-devel >= 1.4.0 is needed by httpd-2.4.12-1.x86_64
        apr-util-devel >= 1.4.0 is needed by httpd-2.4.12-1.x86_64
        pcre-devel >= 5.0 is needed by httpd-2.4.12-1.x86_64
        openldap-devel is needed by httpd-2.4.12-1.x86_64
        lua-devel is needed by httpd-2.4.12-1.x86_64
        libxml2-devel is needed by httpd-2.4.12-1.x86_64
        distcache-devel is needed by httpd-2.4.12-1.x86_64
        openssl-devel is needed by httpd-2.4.12-1.x86_64
まぁ、足りませんね。ということで、確認してみます。
$ sudo yum install zlib-devel libselinux-devel libuuid-devel apr-devel apr-util-devel pcre-devel openldap-devel lua-devel libxml2-devel distcache-devel openssl-devel

Dependencies Resolved

========================================================================================================================
 Package                            Arch                  Version                          Repository              Size
========================================================================================================================
Installing:
 apr-devel                          x86_64                1.3.9-5.el6_2                    base                   176 k
 apr-util-devel                     x86_64                1.3.9-3.el6_0.1                  base                    69 k
 libselinux-devel                   x86_64                2.0.94-5.8.el6                   base                   137 k
 libuuid-devel                      x86_64                2.17.2-12.18.el6                 base                    85 k
 libxml2-devel                      x86_64                2.7.6-17.el6_6.1                 updates                1.1 M
 lua-devel                          x86_64                5.1.4-4.1.el6                    base                    20 k
 openldap-devel                     x86_64                2.4.39-8.el6                     base                   1.1 M
 openssl-devel                      x86_64                1.0.1e-30.el6_6.5                updates                1.2 M
 pcre-devel                         x86_64                7.8-6.el6                        base                   318 k
 zlib-devel                         x86_64                1.2.3-29.el6                     base                    44 k
Installing for dependencies:
 cyrus-sasl-devel                   x86_64                2.1.23-15.el6_6.1                updates                303 k
 db4-cxx                            x86_64                4.7.25-18.el6_4                  base                   588 k
 db4-devel                          x86_64                4.7.25-18.el6_4                  base                   6.6 M
 expat-devel                        x86_64                2.0.1-11.el6_2                   base                   120 k
 keyutils-libs-devel                x86_64                1.4-5.el6                        base                    29 k
 krb5-devel                         x86_64                1.10.3-33.el6                    base                   498 k
 libcom_err-devel                   x86_64                1.41.12-21.el6                   base                    32 k
 libsepol-devel                     x86_64                2.0.41-4.el6                     base                    64 k
Updating for dependencies:
 cyrus-sasl                         x86_64                2.1.23-15.el6_6.1                updates                 78 k
 cyrus-sasl-lib                     x86_64                2.1.23-15.el6_6.1                updates                136 k
 e2fsprogs                          x86_64                1.41.12-21.el6                   base                   553 k
 e2fsprogs-libs                     x86_64                1.41.12-21.el6                   base                   121 k
 keyutils                           x86_64                1.4-5.el6                        base                    39 k
 keyutils-libs                      x86_64                1.4-5.el6                        base                    20 k
 krb5-libs                          x86_64                1.10.3-33.el6                    base                   765 k
 libblkid                           x86_64                2.17.2-12.18.el6                 base                   116 k
 libcom_err                         x86_64                1.41.12-21.el6                   base                    37 k
 libselinux                         x86_64                2.0.94-5.8.el6                   base                   108 k
 libselinux-utils                   x86_64                2.0.94-5.8.el6                   base                    82 k
 libss                              x86_64                1.41.12-21.el6                   base                    41 k
 libuuid                            x86_64                2.17.2-12.18.el6                 base                    69 k
 libxml2                            x86_64                2.7.6-17.el6_6.1                 updates                801 k
 openldap                           x86_64                2.4.39-8.el6                     base                   280 k
 openssl                            x86_64                1.0.1e-30.el6_6.5                updates                1.5 M
 util-linux-ng                      x86_64                2.17.2-12.18.el6                 base                   1.6 M

Transaction Summary
========================================================================================================================
Install      18 Package(s)
Upgrade      17 Package(s)
・
・
apr-develapr-util-develについては、レポジトリ上のものが古いみたい。 ということで、こちらもソースからrpm化をして、インストールしてみる。 入手先はこちら
$ cd ~/rpmbuild/SOURCES/
$ wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.5.1.tar.bz2
$ wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.4.tar.bz2

$ rpmbuild --clean -tb ~/rpmbuild/SOURCES/apr-1.5.1.tar.bz2

error: Failed build dependencies:
        doxygen is needed by apr-1.5.1-1.x86_64

$ sudo yum install doxygen -y

$ rpmbuild --clean -tb ~/rpmbuild/SOURCES/apr-1.5.1.tar.bz2
 ・
 ・
 ・
$ ll ../RPMS/x86_64/

total 1320
-rw-rw-r-- 1 hayashi hayashi  93308 Jan 30 14:34 apr-1.5.1-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 416372 Jan 30 14:34 apr-debuginfo-1.5.1-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 839308 Jan 30 14:34 apr-devel-1.5.1-1.x86_64.rpm

出来上がり!つぎに進む。
$ rpmbuild --clean -tb ~/rpmbuild/SOURCES/apr-util-1.5.4.tar.bz2

error: Failed build dependencies:
        apr-devel >= 1.4.0 is needed by apr-util-1.5.4-1.x86_64
        expat-devel is needed by apr-util-1.5.4-1.x86_64
        libuuid-devel is needed by apr-util-1.5.4-1.x86_64
        db4-devel is needed by apr-util-1.5.4-1.x86_64
        postgresql-devel is needed by apr-util-1.5.4-1.x86_64
        mysql-devel is needed by apr-util-1.5.4-1.x86_64
        sqlite-devel >= 3.0.0 is needed by apr-util-1.5.4-1.x86_64
        freetds-devel is needed by apr-util-1.5.4-1.x86_64
        unixODBC-devel is needed by apr-util-1.5.4-1.x86_64
        openldap-devel is needed by apr-util-1.5.4-1.x86_64
        openssl-devel is needed by apr-util-1.5.4-1.x86_64
        nss-devel is needed by apr-util-1.5.4-1.x86_64
とりあえず、apr-develは先ほどのやつをインストール。
$ sudo rpm -ivh ../RPMS/x86_64/apr-1.5.1-1.x86_64.rpm ../RPMS/x86_64/apr-devel-1.5.1-1.x86_64.rpm

        file /usr/lib64/libapr-1.so.0 from install of apr-1.5.1-1.x86_64 conflicts with file from package apr-1.3.9-5.el6_2.x86_64

失敗・・気を取り直して、、
$ sudo rpm -Uvh ../RPMS/x86_64/apr-1.5.1-1.x86_64.rpm ../RPMS/x86_64/apr-devel-1.5.1-1.x86_64.rpm

成功。それ以外をチェック
$ sudo yum install expat-devel libuuid-devel db4-devel postgresql-devel mysql-devel sqlite-devel freetds-devel unixODBC-devel openldap-devel openssl-devel nss-devel

Dependencies Resolved

========================================================================================================================
 Package                               Arch                Version                           Repository            Size
========================================================================================================================
Installing:
 db4-devel                             x86_64              4.7.25-18.el6_4                   base                 6.6 M
 expat-devel                           x86_64              2.0.1-11.el6_2                    base                 120 k
 freetds-devel                         x86_64              0.91-2.el6                        epel                  39 k
 libuuid-devel                         x86_64              2.17.2-12.18.el6                  base                  85 k
 mysql-devel                           x86_64              5.1.73-3.el6_5                    base                 129 k
 nss-devel                             x86_64              3.16.2.3-3.el6_6                  updates              198 k
 openldap-devel                        x86_64              2.4.39-8.el6                      base                 1.1 M
 openssl-devel                         x86_64              1.0.1e-30.el6_6.5                 updates              1.2 M
 postgresql-devel                      x86_64              8.4.20-1.el6_5                    base                 815 k
 sqlite-devel                          x86_64              3.6.20-1.el6                      base                  81 k
 unixODBC-devel                        x86_64              2.2.14-14.el6                     base                  53 k
Installing for dependencies:
 cyrus-sasl-devel                      x86_64              2.1.23-15.el6_6.1                 updates              303 k
 db4-cxx                               x86_64              4.7.25-18.el6_4                   base                 588 k
 freetds                               x86_64              0.91-2.el6                        epel                 568 k
 keyutils-libs-devel                   x86_64              1.4-5.el6                         base                  29 k
 krb5-devel                            x86_64              1.10.3-33.el6                     base                 498 k
 libcom_err-devel                      x86_64              1.41.12-21.el6                    base                  32 k
 libselinux-devel                      x86_64              2.0.94-5.8.el6                    base                 137 k
 libsepol-devel                        x86_64              2.0.41-4.el6                      base                  64 k
 libtool-ltdl                          x86_64              2.2.6-15.5.el6                    base                  44 k
 mysql                                 x86_64              5.1.73-3.el6_5                    base                 894 k
 nspr-devel                            x86_64              4.10.6-1.el6_5                    base                 111 k
 nss-softokn-devel                     x86_64              3.14.3-22.el6_6                   updates               14 k
 nss-softokn-freebl-devel              x86_64              3.14.3-22.el6_6                   updates              139 k
 nss-util-devel                        x86_64              3.16.2.3-2.el6_6                  updates               68 k
 postgresql                            x86_64              8.4.20-1.el6_5                    base                 2.6 M
 postgresql-libs                       x86_64              8.4.20-1.el6_5                    base                 201 k
 unixODBC                              x86_64              2.2.14-14.el6                     base                 378 k
Updating for dependencies:
 cyrus-sasl                            x86_64              2.1.23-15.el6_6.1                 updates               78 k
 cyrus-sasl-lib                        x86_64              2.1.23-15.el6_6.1                 updates              136 k
 e2fsprogs                             x86_64              1.41.12-21.el6                    base                 553 k
 e2fsprogs-libs                        x86_64              1.41.12-21.el6                    base                 121 k
 keyutils                              x86_64              1.4-5.el6                         base                  39 k
 keyutils-libs                         x86_64              1.4-5.el6                         base                  20 k
 krb5-libs                             x86_64              1.10.3-33.el6                     base                 765 k
 libblkid                              x86_64              2.17.2-12.18.el6                  base                 116 k
 libcom_err                            x86_64              1.41.12-21.el6                    base                  37 k
 libselinux                            x86_64              2.0.94-5.8.el6                    base                 108 k
 libselinux-utils                      x86_64              2.0.94-5.8.el6                    base                  82 k
 libss                                 x86_64              1.41.12-21.el6                    base                  41 k
 libuuid                               x86_64              2.17.2-12.18.el6                  base                  69 k
 mysql-libs                            x86_64              5.1.73-3.el6_5                    base                 1.2 M
 nspr                                  x86_64              4.10.6-1.el6_5                    base                 113 k
 nss                                   x86_64              3.16.2.3-3.el6_6                  updates              834 k
 nss-softokn                           x86_64              3.14.3-22.el6_6                   updates              262 k
 nss-softokn-freebl                    x86_64              3.14.3-22.el6_6                   updates              167 k
 nss-sysinit                           x86_64              3.16.2.3-3.el6_6                  updates               44 k
 nss-tools                             x86_64              3.16.2.3-3.el6_6                  updates              427 k
 nss-util                              x86_64              3.16.2.3-2.el6_6                  updates               66 k
 openldap                              x86_64              2.4.39-8.el6                      base                 280 k
 openssl                               x86_64              1.0.1e-30.el6_6.5                 updates              1.5 M
 util-linux-ng                         x86_64              2.17.2-12.18.el6                  base                 1.6 M

Transaction Summary
========================================================================================================================
Install      28 Package(s)
Upgrade      24 Package(s)

Total download size: 25 M
Is this ok [y/N]: y
・
・
・

$ rpmbuild -tb ~/rpmbuild/SOURCES/apr-util-1.5.4.tar.bz2

$ ll ../RPMS/x86_64/
total 2428
-rw-rw-r-- 1 hayashi hayashi  93308 Jan 30 14:34 apr-1.5.1-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 416372 Jan 30 14:34 apr-debuginfo-1.5.1-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 839308 Jan 30 14:34 apr-devel-1.5.1-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  77904 Jan 30 14:56 apr-util-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi   7100 Jan 30 14:56 apr-util-dbm-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 433820 Jan 30 14:56 apr-util-debuginfo-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 489180 Jan 30 14:56 apr-util-devel-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  12184 Jan 30 14:56 apr-util-freetds-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi   9032 Jan 30 14:56 apr-util-ldap-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  14872 Jan 30 14:56 apr-util-mysql-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  11052 Jan 30 14:56 apr-util-nss-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  20600 Jan 30 14:56 apr-util-odbc-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  10328 Jan 30 14:56 apr-util-openssl-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  14816 Jan 30 14:56 apr-util-pgsql-1.5.4-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  11376 Jan 30 14:56 apr-util-sqlite-1.5.4-1.x86_64.rpm
出来上がり!ということで、必要なものをインストールして、再度apacheにチャレンジ。
$ sudo rpm -Uvh ../RPMS/x86_64/apr-util-1.5.4-1.x86_64.rpm ../RPMS/x86_64/apr-util-devel-1.5.4-1.x86_64.rpm
$ sudo yum install zlib-devel libselinux-devel libuuid-devel pcre-devel openldap-devel lua-devel libxml2-devel distcache-devel openssl-devel
・
・
No package distcache-devel available.
・
・
よく見たらdistcache-develがレポジトリにないらしい。
$ cd ~/rpmbuild/SOURCES/
$ wget http://ftp.riken.jp/Linux/fedora/releases/18/Everything/source/SRPMS/d/distcache-1.4.5-23.src.rpm
$ rpmbuild --clean --rebuild ~/rpmbuild/SOURCES/distcache-1.4.5-23.src.rpm
$ ll ~/rpmbuild/RPMS/x86_64/distcache-*

・
・
rw-rw-r-- 1 hayashi hayashi 114528 Jan 30 15:51 distcache-1.4.5-23.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 197836 Jan 30 15:51 distcache-debuginfo-1.4.5-23.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  59216 Jan 30 15:51 distcache-devel-1.4.5-23.x86_64.rpm

$ sudo rpm -ivh ~/rpmbuild/RPMS/x86_64/distcache-1.4.5-23.x86_64.rpm ~/rpmbuild/RPMS/x86_64/distcache-devel-1.4.5-23.x86_64.rpm

$ rpmbuild --clean -tb ~/rpmbuild/SOURCES/httpd-2.4.12-1.src/httpd-2.4.12.tar.bz2

$ ll ~/rpmbuild/RPMS/x86_64/

・
・
-rw-rw-r-- 1 hayashi hayashi 1165260 Jan 30 15:57 httpd-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 3448912 Jan 30 15:57 httpd-debuginfo-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi  188052 Jan 30 15:57 httpd-devel-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi 3320124 Jan 30 15:57 httpd-manual-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi   69988 Jan 30 15:57 httpd-tools-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi   44376 Jan 30 15:57 mod_authnz_ldap-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi   43448 Jan 30 15:57 mod_lua-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi   22308 Jan 30 15:57 mod_proxy_html-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi    5648 Jan 30 15:57 mod_socache_dc-2.4.12-1.x86_64.rpm
-rw-rw-r-- 1 hayashi hayashi   81724 Jan 30 15:57 mod_ssl-2.4.12-1.x86_64.rpm

ようやくできました!でインストールをしてみます。
$ rpm -ivh  ~/rpmbuild/RPMS/x86_64/httpd-2.4.12-1.x86_64.rpm

error: Failed dependencies:
        /etc/mime.types is needed by httpd-2.4.12-1.x86_64
まだあったか・・
$ yum provides /etc/mime.types

Loaded plugins: fastestmirror, versionlock
Determining fastest mirrors
 * base: www.ftp.ne.jp
 * epel: ftp.kddilabs.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
mailcap-2.1.31-2.el6.noarch : Helper application and MIME type associations for file types
Repo        : base
Matched from:
Filename    : /etc/mime.types

$ sudo yum install mailcap

$ rpm -ivh  ~/rpmbuild/RPMS/x86_64/httpd-2.4.12-1.x86_64.rpm

できました!最後にwordpressでphpということもあり、以下の対応をする。
MPMの変更
phpの場合は、2.4から標準のeventや、workerだと挙動が不安定になる(threadsafeではない)ため、preworkで変更 ⇒2.4からはmod_proxy_fcgiを使うことでeventでも問題ない?(ここ
#LoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.so
LoadModule mpm_prefork_module lib64/httpd/modules/mod_mpm_prefork.so
$ sudo service httpd start
$ /usr/sbin/apachectl -V

Server version: Apache/2.4.12 (Unix)
Server built:   Jan 30 2015 15:55:16
Server's Module Magic Number: 20120211:41
Server loaded:  APR 1.5.1, APR-UTIL 1.5.4
Compiled using: APR 1.5.1, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/httpd/conf/mime.types"
 -D SERVER_CONFIG_FILE="/etc/httpd/conf/httpd.conf"
お~。次はphp。

2014年9月15日月曜日

WordPress3.9.1 + CentOS6.4 を構築してみる(その0)

今後WordPressを使うかもしれない。いまどきAWSとかAzureではイメージを展開するだけで
使えてしまうご時世だが、それだと面白くないし、最新バージョンが使えるようしたほうがよいと
思い立ち、いちから自前で作ってみる(スキルアップ)。

 ・Apache or nginx
  WordPressのサイトに、nginxよりはapacheを推奨するとの記載があったのでapache
  にしてみる。実際にplug-inによっては、nginxで使うにあたり修正をする必要がある
  ケースもありそうだった。今後、脆弱性対応でVerUPも必要そうだし、なるべく推奨
  がよさそう。最後にnginxにしてみても面白いかも。
 
 ・各コンポーネントのバージョン 
  安定版レベルで最新版を使う(ベータ版は避ける)。
  CentOS 6.4 (x64_64)  ※ちょっと古い・・
  WordPress 3.9.1
   Apache 2.4.9 + fastcgi
  PHP 5.5.12 + PHP-frm
  MySQL 5.6.19

 ・WordPressのPlug-in
   バックアップ
   セキュリティ
   冗長化
   パフォーマンス改善
  に関するものを、使ってみる。

 ・可用性
  各コンポーネント(Web/DB)も冗長化をしてみる。

このあたりをやってみたいと思う。進め方としては、

 1.1台のOS上にすべてを入れてみる(シングル構成)
 2.冗長化をしてみる
 3.Plug-inを入れてみる
 4.バージョンアップをしてみる

とする。また構築するにあたり、今度の配布などを考えて、各コンポーネントをrpm化しインストールする。
長くなるので別の記事で残す。
 

2013年6月21日金曜日

apacheでWebDAV(その3)

いよいよapache + WebDAVの設定に入ります。

まずはデフォルトで用意されているWebDAの設定を使ってみる。

1.httpd.confの修正

 httpd.confにてWebDAV用モジュールと設定ファイル、あとそのWebDAV設定ファイルに記載
 されている、必要モジュールの有効化をする(コメントを外す)。

>>
LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so



LoadModule auth_digest_module modules/mod_auth_digest.so

Include conf/extra/httpd-dav.conf
<<

2.WebDAVのデフォルト設定ファイル(httpd-dav.conf)の確認

httpd-dav.confを見ると、
 ・対象フォルダをDocumentRoot外のフォルダ(/usr/local/apache2/uploads)をAliasで
  /uploadsと見せかけている
 ・Digest認証が設定されている。プロバイダはファイル。
 ・以下の条件をいずれかを満たせばアクセスOK。
  -メソッドがGET POST OPTIONSであること
  -userはadminであること
となっていますね。この設定のまま使ってみよう。

3.ディレクトリの作成

httpd-dav.confにあったディレクトリを作成する。まずはDavLockDB用のディレクトリ。

# mkdir /usr/local/apache2/var

# chown apache:apache /usr/local/apache2/var

次はWebDAV用のディレクトリ。

# mkdir /usr/local/apache2/uploads

# chown apache:apache /usr/local/apache2/uploads

4.Digest認証のアカウントの作成

# /usr/local/apache2/bin/htdigest -c "/usr/local/apache2/user.passwd" DAV-upload admin

でパスワードを求められるので設定。

これで完了いうことで、ブラウザからつついてみる。あれ??403が返ってくる。
認証の問題なのか?と思い、digest認証部分をすべて外してみるが、やはり変わらない。
ということで調査開始。

5.apacheのログをデバックモードに変更

httpd.confに記載されている個所を変更

>>
#LogLevel warn
LogLevel debug
<<

apacheを再起動。

# service httpd graceful

これで再度ブラウザから試してみると、ログ(/usr/local/apache2/logs/error_log)に以下の
エラーメッセージが出ていました。

Cannot serve directory /usr/local/apache2/uploads/: No matching DirectoryIndex (index.html) found, and server-generated directory index forbidden by Options directive

ディレクトリ参照が禁止されてとのことらしい。DocumentRootには

Options Indexes FollowSymLinks

がついているし、なぜディレクトリ参照が禁止されているのだろう。。。あっ!今回使ったapacheの
サンプルは、aliasを使ってDocumentRoot配下以外のディレクトリを参照させる設定になってまし
たね。ということは、そこにもOptionsを記載をしないと、そもそも参照ができないってことですね。

サンプルのhttpd-dav.confを使っているので、そこに追記し、再起動してみる。

>>
<Directory "/usr/local/apache2_2/uploads">
    Dav On

    AuthType Digest
    AuthName DAV-upload
    # You can use the htdigest program to create the password database:
    #   htdigest -c "/usr/local/apache2/user.passwd" DAV-upload admin
    AuthUserFile "/usr/local/apache2/user.passwd"
    AuthDigestProvider file

    # Allow universal read-access, but writes are restricted
    # to the admin user.
    <RequireAny>
        Require method GET POST OPTIONS
        Require user admin
    </RequireAny>
    Options Indexes FollowSymLinks ★
</Directory>
<<

再起動後にブラウザでアクセスすると、、無事アクセスができました。
そこで改めて、Windows8からWebDAVとしてアクセスをしてみると、認証後(admin)無事アクセスが
できました。

ちなみに、、上記の★が本当に必要なのか?今一度はずしてみると、ブラウザはアクセスはできませんが、WebDAVは参照できました!
ということで、デフォルトの設定でWebDAVをアクセスすることができました。

めでたしめでたし。

2013年6月14日金曜日

apacheでWebDAV(その2)

前回までは、コンパイルもできて、さぁ実行!というところで、httpd -lでモジュールが組み込まれているか?を確認してみた。

# /usr/local/apache2/bin/httpd -l

Compiled in modules:

  core.c
  mod_so.c
  http_core.c
  event.c

頭を浸してみた。そりゃそうか。sharedなんだから、組み込まれているはずがない。
ということで、念のため確認してみる。

# ./configure --enable-ssl=true --enable-dav=true --with-ssl=/opt/openssl-1.0.1e


# /usr/local/apache2/bin/httpd -l

Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  event.c

変わらん・・。ここでも10分ほど悩む・・・そうだ。2.4ではデフォルトがshared(dso)なのだから、
trueではいかんのでは?

# ./configure --enable-ssl=static --enable-dav=static --with-ssl=/opt/openssl-1.0.1e

でどうだろうか。

# /usr/local/apache2/bin/httpd -l

Compiled in modules:
  core.c
  mod_so.c
  http_core.c
  mod_ssl.c
  event.c
  mod_dav.c
  mod_dav_fs.c

おおーっ成功。振り返ってみれば、あたりまえだけど、、ちょっとうれしい(バージョンが変わる
って大変ですね)。
ということで、sharedにして以降進める。



2013年6月12日水曜日

apacheでWebDAV

apacheでWebDAVを実装してみよ~。今回の目的は以下の通り。

 ・SSLで安全に!
 ・htdocs配下にない、ディレクトリを参照させる(alias、シンボリック)
 ・日本語対応してみる

1.ソースからコンパイル

今回の目的に向けて、以下のようにapache2をコンパイルから始める。
もともとのインストールはここを参照。

# cd /usr/local/src/httpd-2.4.4
# ./configure --enable-ssl=shared --enable-dav=shared

オプションの意味としては、以下の通り

--enable-ssl=shared
 ApacheでSSLを処理するためのモジュール(mod-ssl)をDSOで利用可能(=shared)にする。

--enable-dav=shared
 WebDAVのためのフロントエンドモジュールmod-davと、バックエンドモジュールmod-dav-fsがインストールされ、DSOで
 利用可能にする。mod-dav-fsはファイルシステムをWebDAVで使うためのモジュール。

 ※mod-davとmod-dav-fsを分離する目的がよくわからなかったけど、バックエンドモジュールにはmod-dav-svnという
  バージョン管理モジュールを選択することもできるらしい。これは当然ファイルシステムではなく、BerkleyDBを使って
  バージョン管理ができるらしいです。今度やってみよう!
  
ということでコンパイルしてみたら、、

checking for OpenSSL version >= 0.9.7... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

ということで、OpenSSLのバージョンが古いらしい。

# yum info openssl

Name        : openssl
Arch        : x86_64
Version     : 1.0.0
Release     : 27.el6
・・・

Available Packages
Name        : openssl
Arch        : i686
Version     : 1.0.0
Release     : 27.el6_4.2
・・・

Name        : openssl
Arch        : x86_64
Version     : 1.0.0
Release     : 27.el6_4.2
・・・

となって、1.0.0が使えるようなので、これにUPGRADEしてみる。

# yum upgrade  openssl -y

・・・

Updated:
  openssl.x86_64 0:1.0.0-27.el6_4.2

Complete!

で、再度apacheのコンパイル。

checking for OpenSSL version >= 0.9.7... FAILED
configure: WARNING: OpenSSL version is too old
no
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures

あれ??変わってない。ということでopensslの参照先を指定しないといけないらしい。
でも、--with-sslで指定するにしても、どのディレクトリを指定すればよいのだろうか。。
ということで、opensslをソースからインストールしてみることにした(ここ)。

( ※デフォルトのopensslインストールではだめなのだろうか??どこかで検証したいところ)

で再度チャレンジ。

# ./configure --enable-ssl=shared --enable-dav=shared --with-ssl=/opt/openssl-1.0.1e

おおっ、、無事完了。ということで、make & make install。さぁ最後に確認してみよう。

# /usr/local/apache2/bin/httpd -l

Compiled in modules:

  core.c
  mod_so.c
  http_core.c
  event.c

あれっ??mod_dav.cとかmod_ssl.cとか出てこないし、、まだかかりそうです。。(次回に続く)




2013年5月23日木曜日

apacheのインストール(2)

ということで、apacheインストールのつづき。

1.自動起動設定

毎回PC落とすと落ちるのも面倒なので、自動起動設定を仕込む。

# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
# vi /etc/rc.d/init.d/httpd
>>
#!/bin/sh
#
# chkconfig:345 85 15
#
# Licensed to the Apache Software Foundation (ASF) under one or more
<<

起動シェルの先頭に追加して、、

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

これでばっちり。

次に、、前回の積み残しの、server-statusを解決する。

2.httpd.confの確認

# vi /usr/local/apache2/conf/httpd.conf
>>
LoadModule status_module modules/mod_status.so



Include conf/extra/httpd-info.conf
<<

3.httpd-info.confの確認

# vi /usr/local/apache2/conf/extra/httpd-info.conf
>>
<Location /server-status>
    SetHandler server-status
    Require ip 127.0.0.1
</Location>
<<

4.IPv6の無効化

変なところで引っかかるので無効に。手順はここ

5.ステータスの確認


# service httpd status
               Apache Server Status for localhost (via 127.0.0.1)

   Server Version: Apache/2.4.4 (Unix)
   Server Built: May 23 2013 00:41:30
     __________________________________________________________________

   Current Time: Thursday, 23-May-2013 01:52:09 JST
   Restart Time: Thursday, 23-May-2013 01:52:05 JST
   Parent Server Config. Generation: 2
   Parent Server MPM Generation: 1
   Server uptime: 3 seconds
   Server load: 0.00 0.03 0.01
   Total accesses: 0 - Total Traffic: 0 kB
   CPU Usage: u0 s0 cu0 cs0
   0 requests/sec - 0 B/second -
   1 requests currently being processed, 74 idle workers

   PID    Connections    Threads      Async connections
        total accepting busy idle writing keep-alive closing
   1194 0     yes       0    25   0       0          0
   1195 0     yes       1    24   0       0          0
   1196 0     yes       0    25   0       0          0
   Sum  0               1    74   0       0          0

_________________________W______________________________________
___________.....................................................
................................................................
................................................................
................................................................
................................................................
................

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of worker, "." Open slot with no current process


みれた!ふぅ。。次回は目的のWebDAVにチャレンジ。

apacheのインストール

お仕事で、apacheでwebdavを実装することになったので、せっかくなので記録を残しつつ。

1.apache実行ユーザの作成

# sudo su -
# useradd -s /sbin/nologin apache
# passwd apache

2.ツールのインストール

# yum install make
# yum install gcc

3.apacheのモジュール入手&展開

# cd /usr/local/src/
# wget http://ftp.kddilabs.jp/infosystems/apache//httpd/httpd-2.4.4.tar.gz
# tar xvfz httpd-2.4.4.tar.gz

4.apacheインストール1回目

# cd httpd-2.4.4
# ./configure --enable-dav-fs --enable-dav --enable-mods-shared=most



configure: error: APR not found.  Please read the documentation.

ありゃ。モジュールが足りんかったか。

5.aprモジュールのインストール

# cd srclib/
# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.4.6.tar.gz
# tar xvfz apr-1.4.6.tar.gz
# mv apr-1.4.6 apr
# cd apr
# ./configure
# make
# make install

# wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-util-1.5.2.tar.gz
# tar xvfz apr-util-1.5.2.tar.gz
# mv apr-util-1.5.2 apr-util
# cd apr-util
# ./configure



configure: error: APR could not be located. Please use the --with-apr option.

arpが見つからないってエラー。気を取り直して、

# ./configure --with-apr=/usr/local/apr
# make
# make install

6.apacheインストール2回目

さぁ、再度apacheをインストール。

# cd /usr/local/src/httpd-2.4.4
# ./configure --enable-shared=max --enable-module=all


configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/


おっとまた足りないものが。

7.pcreのインストール

# cd /usr/local/src/
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz
# tar xvfz pcre-8.31.tar.gz
# cd pcre-8.31
# ./configure
# make


libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
libtool: compile: Try `libtool --help' for more information.
make[1]: *** [pcrecpp.lo] エラー 1
make[1]: ディレクトリ `/usr/local/src/pcre-8.31' から出ます
make: *** [all] エラー 2

ググると、c++が必要とのこと。

# yum install gcc-c++
# make

おっうまくいった。

# make install

無事終了。

8.apacheインストール3回目(3度目の正直)

# cd httpd-2.4.4
# ./configure --enable-dav-fs --enable-dav --enable-mods-shared=most
# make
# make install


成功!

9.その他の準備&起動テスト

hostnameにFQDN(svr2.hayachi617.com)をつけないとapache起動時に怒られるので、

# vi /etc/hosts
>>
127.0.0.1   svr2.hayachi617.com localhost
<<

に追記し、さらに、

# vi /etc/sysconfig/network
>>
HOSTNAME=srv2.hayachi617.com
<<

で完了。サーバを再起動。次にちょっとapacheの設定を変更する

# vi /usr/local/apache2/conf/httpd.conf
>>

User apache

Group apache

ServerName srv2.hayachi617.com:80
<<

# cd /usr/local/apache2/bin
# ./apachectl start

ブラウザからアクセスしてみると、「It works!」と表示された。ようやく終わったと思ったら・・

# ./apachectl status
./apachectl: line 95: lynx: コマンドが見つかりません

だと。

# yum install lynx



The requested URL /server-status was not found on this server.

まだか。ちょっと疲れたので、また次回・・