出于测试目的,我想在本地运行 Apache(最终以非 root 用户身份)并将 Apache 配置文件保存在我的中央存储库中。根据 Apache 文档(http://httpd.apache.org/docs/2.2/configuring.html),我可以使用开关设置配置文件,使用-f
开关设置 ServerRoot -d
(http://httpd.apache.org/ docs/2.2/programs/httpd.html)。
现在我的问题是,当我尝试启动 Apache 时
sudo apache2 -d $(pwd)/testApacheRootDir/ -f $(pwd)/testApacheRootDir/testingApacheConf -k start
该进程在没有实际启动 Apache(并且没有任何)错误消息的情况下退出。
我知道配置文件已被读取,因为如果文件中有错误,上述命令将打印错误消息。Apache 实际上也使用 ServerRoot 目录,因为(空)error_log
文件是在$(pwd)/testApacheRootDir/logs/
.
我的 Apache 配置文件如下所示:
Listen 80
NameVirtualHost localhost:80
<VirtualHost localhost:80>
DocumentRoot /var/www/cms
ServerName cms.testing
</VirtualHost>
<VirtualHost localhost:80>
DocumentRoot /var/www/vendor
ServerName vendor.testing
</VirtualHost>
并apache2 -V
打印:
Server version: Apache/2.2.22 (Ubuntu)
Server built: Nov 6 2012 20:27:25
Server's Module Magic Number: 20051115:30
Server loaded: APR 1.4.6, APR-Util 1.4.1
Compiled using: APR 1.4.6, APR-Util 1.4.1
Architecture: 64-bit
Server MPM: Worker
threaded: yes (fixed thread count)
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/worker"
-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 APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/apache2"
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="mime.types"
-D SERVER_CONFIG_FILE="apache2.conf"
你有什么建议可能是错的吗?