遭遇EADDRINUSE错误求助:不知何处创建配置文件
搞定EADDRINUSE错误 & 配置文件位置指南
嘿,我来帮你解决这个EADDRINUSE的麻烦!首先得明确,这个错误本质是你要启动的程序想用的端口已经被别的进程占了。你提到的“带脚本的配置文件”,应该是用来自动处理端口占用,或者指定程序用其他空闲端口的配置。下面分不同场景告诉你配置文件该放哪儿:
1. Node.js 项目场景
如果是Node.js服务报的错,配置文件直接放项目根目录(和package.json同一层)就行:
- 比如整个
.env文件来指定端口:
然后在你的入口文件(比如PORT=3001 # 换个没被占用的端口就行,比如3001、8080server.js)里读这个配置:const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`服务跑在端口 ${port} 啦`); }); - 要是想加个一键杀占用端口的脚本,直接在
package.json里加就行(这也算一种配置哦):
之后跑"scripts": { "start": "node server.js", "kill-port": "npx kill-port 3000", "start-clean": "npm run kill-port && npm start" }npm run start-clean就能先清端口再启动服务。
2. Nginx/Apache 这类Web服务器场景
如果是Web服务器报的错,配置文件位置是固定的:
- Nginx:
- Linux系统一般在
/etc/nginx/nginx.conf,或者/etc/nginx/sites-available/下面的站点配置文件 - Windows系统通常在
C:\nginx\conf\nginx.conf
找到listen那一行,把默认的80端口换成别的,比如listen 8080;就行
- Linux系统一般在
- Apache:
- Linux系统在
/etc/apache2/apache2.conf或者/etc/apache2/sites-available/ - Windows系统一般在
C:\Program Files\Apache Group\Apache2\conf\httpd.conf
修改Listen 80为Listen 8080就搞定了
- Linux系统在
3. 自定义脚本/本地小服务场景
如果是你自己写的脚本需要配置文件,位置完全可以自己定:
- 最方便的是和脚本放在同一个文件夹里,这样脚本读取配置的时候路径好写;
- 要是这个脚本是全局运行的,也可以放在用户目录的隐藏文件夹里,比如
~/.my-service/config.json,这样不会乱占地方。 - 举个例子,你的脚本叫
my-service.sh,配置文件config.json和它放一起,脚本里这么读配置:PORT=$(jq -r '.port' config.json) # 后面用这个PORT启动服务就行
另外,给你个快速解决的小技巧:先查清楚哪个进程占了你的端口,直接杀掉它就行:
- Linux/macOS:跑
lsof -i :3000(把3000换成你的端口),找到PID后用kill -9 <PID>杀掉 - Windows:打开命令提示符,跑
netstat -ano | findstr :3000,找到PID后用taskkill /F /PID <PID>强制杀掉
内容的提问来源于stack exchange,提问作者T.P
相关产品推荐
相关产品推荐

