如何将 suexec 根目录从“/var/www”更改为“/home”?

Oud*_*din 6 mod-fcgid suexec apache-2.2

嗨,我已经在 ubuntu 12.04 上安装了 suexec:

apt-get install apache2 apache2-suexec libapache2-mod-fcgid php5-cgi
Run Code Online (Sandbox Code Playgroud)

但是,当我运行以下命令时:

sudo /usr/lib/apache2/suexec -V
Run Code Online (Sandbox Code Playgroud)

我得到以下信息:

 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"
Run Code Online (Sandbox Code Playgroud)

我正在使用“/home/user/public_html”来为用户提供网络上的内容而不是“/var/www” 如何将根目录更改为“/home”?

小智 16

或者你可以

apt-get install apache2-suexec-custom
Run Code Online (Sandbox Code Playgroud)

安装后转到

cd /etc/apache2/suexec
Run Code Online (Sandbox Code Playgroud)

编辑文件 vi www-data

您可以看到前两行,进行更改:替换/var/www/home

esc 
:wq
Run Code Online (Sandbox Code Playgroud)

之后,重启apache

/etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

  • 确保也**删除** apache2-suexec 和 apache2-suexec-pristine 否则这将不起作用。 (2认同)

rus*_*ush 5

您正在使用 ubuntu。因此重新编译非常简单。

将源存储库添加到您的 /etc/apt/sources.list 。对于 12.04 运行

echo "deb-src http://de.archive.ubuntu.com/ubuntu/ precise main"|sudo tee -a /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

更改de.archive.ubuntu.com为您所在的任何国家/地区。之后更新您的存储库。

apt-get update
Run Code Online (Sandbox Code Playgroud)

更改目录和下载源:

mkdir ~/apache_new  ; cd ~/apache_new
apt-get source apache2
apt-get build-dep apache2
Run Code Online (Sandbox Code Playgroud)

它将下载并提取 apache 源并安装所有依赖项,因此您将能够构建 apache。但是您需要修复 AP_DOC_ROOT。所以cd到带有apache源的目录并--with-suexec-docrootdebian/rules文件中的选项中更改目录路径。所以现在你需要构建包。你可以用

debuild -us -uc
Run Code Online (Sandbox Code Playgroud)

就是这样。现在你有了固定路径的 apache deb 包。只需安装它sudo dpkg -i。但要注意更新。更新会抹去你所有的努力。所以运行aptitude hold apache2以禁止更新并且不要忘记每次手动重新编译它(或编写脚本 fpr )。

祝你好运。