我用Pedro的答案重写了这个问题。
当我尝试执行简单脚本时,我收到错误“no listening sockets available, shutting down”
:
$ apache2ctl -f `pwd`/conf/httpd.conf -d `pwd`
基于Ubuntu的Linux Mint。
我在/usr/www/apache3/site.toddle
目录中,
/usr/www/apache3/site.toddle/conf/httpd.conf
的内容是
User www-data
Group www-data
# added to get rid of apache2: Configuration error: No MPM loaded
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
#copied from 000-default.conf from /etc/apache2/sites-available
<VirtualHost *:1081>
ServerName my586
ServerAdmin webmaster@localhost
DocumentRoot /usr/www/apache3/site.toddle/htdocs/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我已经关注了佩德罗的回答和链接。
1)使用sudo gedit /etc/apache2/ports.conf
添加到/etc/apache2/ports.conf
行并保存文件:
#original: Listen 80
Listen 1081
2)使用$ sudo /etc/init.d/apache2 restart
3)使用Pedro示例为端口1081配置iptables:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 1081
sudo iptables-save
sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 1081
sudo iptables-save
但是运行命令:apache2ctl -f
pwd /conf/httpd.conf -d
pwd
给出错误
"no listening sockets available, shutting down
AH00015: Unable to open logs
Action '-f /usr/www/apache3/site.toddle/conf/httpd.conf -d /usr/www/apache3/site.toddle' failed."
使用netstat进行检查,让apache监听端口1081:
$ sudo netstat -ltnp | grep ':1081'
tcp6 0 0 :::1081 :::* LISTEN 3160/apache2
答案 0 :(得分:1)
对我来说,将端口80上的传入流量重定向到端口1080上的apache服务器的规则是:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 1080
sudo iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 1080
您可以通过在服务器上的端口1080上使用netcat进行侦听,并尝试使用来自其他计算机的netcat连接到端口80上的服务器来测试这些规则。
然后确保您的apache服务器将其配置设置为端口1080。
请参阅此帖子以设置Apache在不同端口上运行: Configure apache to listen on port other than 80