suEXECパス/ CentOS 6の変更

suEXECパス/ CentOS 6の変更

最近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つのことを行う必要があります。

  1. httpdの依存関係のインストール
  2. httpdのソースRPMバージョン
  3. 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。次のステップは、修正を追加してsuexecgetの構築方法を変更することです。

構成セクションは以下から抜粋した。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のようにインストールできます。

引用する

関連情報