运行脚本时出错.php:端口 9000 正忙

2022-08-30 23:02:30

我设置和在.尝试使用以下命令调试 phpstorm 事件日志中的 php 脚本输出:php.iniDebug configphpstorm

"Error running script.php: Port 9000 is busy"

php.ini结束:

        [XDebug]
        zend_extension="/usr/lib/php5/20090626+lfs/xdebug.so"
        xdebug.remote_enable=1
        xdebug.remote_port="9000" (the default port is 9000)
        xdebug.profiler_enable=1
        xdebug.profiler_enable_trigger = 1
        xdebug.profiler_output_dir="/etc/php5/xdebug/profiler_output_dir"

pStorm 中的调试端口也设置为 9000。 输出:netstat -na

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN 

如果我设置为其他端口怎么办。例如,将其设置为似乎可以完成工作。或者只是如何使其正常工作。我不确定我是否理解这些工作原理。它就像在phpstorm中运行,并在文件中设置断点?10001xDebugDebug("script.php")(Shift+F9)

有人有想法吗?

编辑:

寄件人: http://xdebug.org/docs/remote

xdebug.remote_port
Type: integer, Default value: 9000
The port to which Xdebug tries to connect on the remote host. Port 9000 is the default for both the client and the bundled debugclient. As many clients use this port number, it is best to leave this setting unchanged.

如果我将端口更改为 9000 以外的端口,该怎么办?也许超过50k的东西。


答案 1

该进程在端口 9000 上运行,可能是 PhpStorm 本身。

检查当前使用的端口,如Jacob提到的(在Windows cmd上:):netstat -a -benter image description here

如果PhpStorm.exe列在:9000下,你只需要在“构建,执行,部署>调试器”>设置中将内置服务器的端口更改为例如63342(这是我的队友PhpStorm安装的默认设置)。


答案 2

GNU/Linux解决方案(因为Windows之外还有生命):

遵循@aqm

首先使用端口 9000 查找进程。

netstat -tulpn | grep :9000

您将获得如下输出:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      3993/programname

您需要 PID 才能使用以下命令终止进程:

kill -9 3993

注意:也许您的进程未显示他的PID,可能是您正在运行用作默认端口9000的PHP-FPM,在这种情况下,您可以更改PHP-FPM端口或PHP Xdebug端口。


解决方案 1 - 更改 Xdebug 配置:

编辑/etc/php/php.ini

搜索并替换为您的新端口xdebug.remote_port=9000


解决方案 2 - 更改 PHP-FPM 端口:

编辑/etc/php/php-fpm.conf

搜索 9000 行,并将 9000 替换为新端口listen = 127.0.0.1:9000

然后重新加载服务:

systemctl reload php-fpm

然后编辑您的nginx或apache配置以告诉这个新端口,在中搜索或将其替换为新端口127.0.0.1:9000/etc/httpd/httpd.conf/etc/nginx/nginx.conf

重新加载服务器:

systemctl reload nginx

systemctl reload httpd

我希望它能帮助:),

namaste.


推荐