我已经设置了一个虚拟 Debian 机器,在我的 Windows 机器上运行(使用 VirtualBox)用于开发 LAMP 堆栈。今天,当我尝试从我的 Windows 机器加载开发网站时,浏览器没有从我的 VM 获得响应。我不太擅长 Linux 管理员;以下是我可以告诉你的:
- 浏览器从未收到响应,但也没有收到任何 500 错误。它只是在原地打转。
昨天我在虚拟机上做了一些工作,构建了 php imagick.so 可执行文件,以便我可以使用一些 pdf 编辑库。更改(最终)基本上是这些:
- $ apt-get 更新 php5-devel
- $ apt-get 更新 make
- $ apt-get 安装 php-pear
- $ apt-get 安装 libmagickwand-dev
- $ pecl 安装 imagick
在进行这些更改之前,我制作了工作虚拟机的快照。当我遇到此问题时,我关闭了修改后的虚拟机并启动了之前的快照。这没什么区别 - 同样的 Web 服务器问题。
- 从我的 Windows 机器上,我可以在预期的 IP (192.168.1.222) 上 ping 我的虚拟机
- 但是,我不能ping 端口 80。我收到“无法找到主机 192.168.1.222:80”的响应。
- 以前,我可以重新启动 apache 而没有任何明显的问题,但是刚才当我执行 /etc/init.d/apache2 stop 然后启动时,我第一次得到了这个:
编辑:以 root 身份重新启动 apache 后更新问题
停止/启动服务器:
root@debian:/home/brd# /etc/init.d/apache2 stop
Stopping web server: apache2 ... waiting .
root@debian:/home/brd# /etc/init.d/apache2 start
Starting web server: apache2.
Apache 似乎毫无怨言地重启了
root@debian:/home/brd# tail /var/log/apache2/error.log
Failed loading /usr/lib/php5# ls 20090626+lfs/xdebug.so: /usr/lib/php5# ls 20090626+lfs/xdebug.so: cannot open shared object file: No such file or directory
Failed loading /usr/lib/php5# ls 20090626+lfs/xdebug.so: /usr/lib/php5# ls 20090626+lfs/xdebug.so: cannot open shared object file: No such file or directory
[Thu Mar 14 09:27:16 2013] [notice] caught SIGTERM, shutting down
Failed loading /usr/lib/php5# ls 20090626+lfs/xdebug.so: /usr/lib/php5# ls 20090626+lfs/xdebug.so: cannot open shared object file: No such file or directory
[Thu Mar 14 09:27:22 2013] [error] python_init: Python version mismatch, expected '2.6.5+', found '2.6.6'.
[Thu Mar 14 09:27:22 2013] [error] python_init: Python executable found '/usr/bin/python'.
[Thu Mar 14 09:27:22 2013] [error] python_init: Python path being used '/usr/lib/python2.6/:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib-tk:/usr/lib/python2.6/lib-old:/usr/lib/python2.6/lib-dynload'.
[Thu Mar 14 09:27:22 2013] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Thu Mar 14 09:27:22 2013] [notice] mod_python: using mutex_directory /tmp
[Thu Mar 14 09:27:22 2013] [notice] Apache/2.2.16 (Debian) PHP/5.3.3-7+squeeze15 with Suhosin-Patch mod_python/3.3.1 Python/2.6.6 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
- 这个 Python 错误似乎无害(参见Python 版本不匹配,预期为“2.6.5+”,但发现为“2.6.6”)。
- xdebug 错误很可疑,但 xdebug 在我进行更改之前一直运行良好,似乎没有问题:
xdebug 似乎存在错误:
root@debian:/home/brd# ls /usr/lib/php5/20090626+lfs/ -al
total 1836
drwxr-xr-x 2 root root 4096 Mar 13 15:29 .
drwxr-xr-x 5 root root 4096 Mar 12 17:07 ..
-rw-r--r-- 1 root root 866513 Mar 13 15:29 imagick.so
-rw-r--r-- 1 root root 109220 Mar 4 09:23 mysqli.so
-rw-r--r-- 1 root root 42352 Mar 4 09:23 mysql.so
-rw-r--r-- 1 root root 26116 Mar 4 09:23 pdo_mysql.so
-rw-r--r-- 1 root root 87588 Mar 4 09:23 pdo.so
-rw-r--r-- 1 root root 141336 Aug 19 2010 suhosin.so
-rw-r--r-- 1 root root 561230 Jul 8 2010 xdebug.so
Apache 似乎正在运行..
root@debian:/home/brd# ps aux | grep apache
root 2338 0.0 0.6 45448 12696 ? Ss 10:51 0:00 /usr/sbin/apache2 -k start
www-data 2346 0.0 0.3 45448 6536 ? S 10:51 0:00 /usr/sbin/apache2 -k start
www-data 2347 0.0 0.3 45448 6536 ? S 10:51 0:00 /usr/sbin/apache2 -k start
www-data 2348 0.0 0.3 45448 6536 ? S 10:51 0:00 /usr/sbin/apache2 -k start
www-data 2349 0.0 0.3 45448 6540 ? S 10:51 0:00 /usr/sbin/apache2 -k start
www-data 2350 0.0 0.3 45448 6536 ? S 10:51 0:00 /usr/sbin/apache2 -k start
root 2358 0.0 0.0 3304 764 pts/0 S+ 10:52 0:00 grep apache
httpd 正在监听 80 端口吗?
root@debian:/home/brd# ss -nal | grep 80
0 128 :::80 :::*
检查防火墙
root@debian:/home/brd# iptables -n -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
/etc/apache2/ports.conf 中的“监听”指令 (/etc/apache2/apache2.conf 中没有 Listen 指令)
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
但是..
我仍然无法从我的 Windows 机器 ping 端口 80。从这里,我不知道该去哪里。有什么建议吗?
答案1
启动 apache2 时看一下这一行:
权限被拒绝:make_sock:无法绑定到
您需要具有 root 权限才能启动守护进程,该守护进程绑定到小于 1024 的端口号。
尝试sudo /etc/init.d/apache2 start
答案2
您没有停止/启动 Apache,因为您是以普通用户身份登录的,或者有另一个 Web 服务器在端口 80 上运行。