更改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) 这样的包,这还不错。

你基本上需要做三件事来做到这一点:

  1. 为 httpd 安装依赖项
  2. httpd 的源 RPM 版本
  3. rpmbuild 区域

依赖关系

您可以使用该工具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 一样安装它。

参考

相关内容