我最近在 Ubuntu 11.04 上从源代码发行版安装了 PHP 5.3.8。
这是我的配置指令的第一部分:
./configure --enable-fpm --with-fpm-user=php-fpm
--with-fpm-group=php-fpm --prefix=/usr/local/php-5.3.8
--exec-prefix=/usr/local/php-5.3.8
--with-config-file-path=/usr/local/php-5.3.8/etc
--with-config-file-scan-dir=/usr/local/php-5.3.8/etc
之后,我下载了用于 /etc/init.d/php-fpm 的 shell 脚本文件示例。我从这里获取了该脚本:http://svn.php.net/repository/php/php-src/branches/PHP_5_3/sapi/fpm/init.d.php-fpm.in。我编辑了该文件并添加了相关位置的路径,然后将内容复制到 /etc/init.d/php-fpm。
我 chmod +x php-fpm 然后尝试启动它,./php-fpm start
但出现以下错误:
Starting php-fpm [07-Sep-2011 02:55:34] ERROR: bind() for address '127.0.0.1:9000' failed: Address already in use (98)
我更改了 php-fpm.conf 中的监听端口号,但仍然出现同样的错误。
我注意到的一件事是似乎没有创建 php.ini 文件。我在我的前缀 php 目录和其他地方到处寻找它。我不确定这是否是导致问题的原因。
我将非常感激任何关于如何使 PHP 运行的指导。
谢谢。
编辑:这是我使用命令时得到的结果:lsof -i -P
sshd 2267 root 3u IPv4 3188 0t0 TCP *:22 (LISTEN)
sshd 2267 root 4u IPv6 3190 0t0 TCP *:22 (LISTEN)
sshd 12342 root 3r IPv4 408697 0t0 TCP WorbServer1:22->41.206.11.43.vgccl.net:30961 (ESTABLISHED)
php-fpm 12485 root 6u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12486 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12487 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12488 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12489 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12490 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12491 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12492 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12493 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12494 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12495 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12496 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12497 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12498 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12499 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12500 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12501 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12502 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12503 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12504 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
php-fpm 12505 php-fpm 0u IPv4 409587 0t0 TCP localhost:9000 (LISTEN)
我不确定为什么它们这么多,我必须看看 php-fpm.conf。
答案1
嗯,对于端口正在使用最简单的解释就是该端口实际上正在使用中。
你从中得到了什么lsof -i -P
?
答案2
您还可以使用
fuser 9000/tcp
这将列出该端口上运行的所有 pid。这是杀死它们的简单方法
fuser -k 9000/tcp