最近Centos 6サーバーにhttpdをインストールしました。私が知る限り、suEXECは次の値にコンパイルされます。
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="apache"
-D AP_LOG_EXEC="/var/log/httpd/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=500
-D AP_USERDIR_SUFFIX="public_html"
Apacheを最初からコンパイルせずにこれらの値を変更する方法があるかどうか疑問に思います。
答え1
ツールが従うオプションを増やすことは不可能であるため、追加オプションを追加する必要がある場合は、直接再コンパイルする必要があります。 RedHatベースのディストリビューションでhttpd(Apache)などのパッケージを使用することは悪くありません。
これを行うには、基本的に3つのことを行う必要があります。
- httpdの依存関係のインストール
- httpdのソースRPMバージョン
- rpmビルド領域
依存関係
このツールを使用してyum-builddep
作業を支援できます。このツールは、特定のRPMを構築してインストールするために必要なすべてのパッケージをダウンロードします。したがって、httpdのRPMバージョンを入手する必要があります。ただし、通常はsrc.rpmファイルと呼ばれるソースバージョンを入手する必要があります。たとえば、
mypackage-1.0.0-1.src.rpm
ソース速度
CentOS 6.2では、次のソースRPMをダウンロードできます。http://vault.centos.org/6.2/os/Source/SPackages/httpd-2.2.15-15.el6.centos.src.rpm
ビルド環境
私は通常ツールを使って私のために設定しますrpmdev-setuptree
。
$ yum install rpmdevtools
$ rpmdev-setuptree
これで、新しく構築されたrpmbuildゾーンにディレクトリを変更し、ソースRPMをインストールしてビルド方法の変更を開始できます。
$ cd ~/rpm
$ rpm -ivh httpd-2.2.15-15.el6.centos.src.rpm
httpd.spec
このファイルをどのように編集するのですか?このファイルでは、最終バイナリRPMを構築する方法について詳しく説明します。
$ nano SPEC/httpd.spec
このファイルで構成を呼び出すセクションを見つける必要があります。私は通常文字列を検索します--prefix
。次のステップは、修正を追加してsuexec
getの構築方法を変更することです。
構成セクションは以下から抜粋した。httpd.spec
../configure \
--prefix=%{_sysconfdir}/httpd \
--exec-prefix=%{_prefix} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir}/httpd/conf \
--includedir=%{_includedir}/httpd \
--libexecdir=%{_libdir}/httpd/modules \
--datadir=%{contentdir} \
--with-installbuilddir=%{_libdir}/httpd/build \
--with-mpm=$mpm \
--with-apr=%{_prefix} --with-apr-util=%{_prefix} \
--enable-suexec --with-suexec \
--with-suexec-caller=%{suexec_caller} \
--with-suexec-docroot=%{contentdir} \
--with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-uidmin=500 --with-suexec-gidmin=100 \
--enable-pie \
--with-pcre \
$*
ファイルを保存すると、httpdバージョンをビルドできるようになりました。
ソースRPMのビルド
次のコマンドはRPMを構築します。
$ rpmbuild -ba SPEC/httpd.spec
すべてが順調に進む場合は、RPMディレクトリに新しいバージョンのRPMが残っている必要がありますRPM/httpd-2.2.15-15.el6.centos.x86_64.rpm
。
これで、他の通常のRPMのようにインストールできます。