众所周知,apache的80端口为系统保留端口,如果通过其他非root用户启动,会报错如下:
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
因为普通用户只能用1024以上的端口,1024以内的端口只能由root用户使用。
但是为了避免每次启动都通过root用户,可以通过set UID的方式来解决此问题。
一次性进行如下操作即可完成。
在root用户环境中做如下操作
cd ……/apache/bin
chown root httpd
chmod u+s httpd
再 su - USERNAME
到普通用户下,通过
……/apache/bin/apachectl start即可
为何不chmod u+s apachectl呢?
因为set UID这种方式只针对二进制文件有效,而tail一下apachectl发现:
apachectl是一个脚本文件,仔细查阅发现有如下一句
HTTPD='/home/……/apache/bin/httpd'
得出结论:apachectl脚本是通过启动httpd文件来启动整个httpd服务。
再次cat httpd,出现各种不可读乱码,ctrl+c结束输出之后,断定httpd为二进制文件。
最后chmod u+s httpd即可,当然得保证httpd的所属者为root用户,如果不是,执行:
chown root httpd即可。
同样,nginx启动也如此,用root用户进入....nginx/sbin
然后chown root nginx
chmod u+s nginx
然后通过普通用户就可以启动了。
再同样,tomcat也如此。
当然,修改默认端口到大于1024也是可以的。
分享到:
相关推荐
### 普通用户启动Nginx并使用80端口的方法详解 #### 背景介绍 在Linux系统中,默认情况下,只有root用户才能绑定1024以下的端口号,包括常用的Web服务端口80(HTTP)和443(HTTPS)。然而,在某些场景下,出于安全...
8. 启动Nginx: ```bash ./nginx_start.sh ``` 9. 访问网页检查是否成功启动。在浏览器输入服务器的IP地址,如果看到Nginx的欢迎页面,说明安装成功。 总结:在非root权限下安装Nginx,需要手动编译和配置所有...
首先,需要安装基本的软件包,然后是源码安装 Nginx,创建普通用户,配置环境,编译和安装 Nginx。最后,需要启动 Nginx、数据库服务和 PHP-FPM 服务。 Nginx 配置 Nginx 配置文件位于 `/usr/local/nginx/conf` ...
- 在大多数Linux发行版中,Nginx默认已经配置为开机自启动。 - 若要手动设置,请运行以下命令: ``` sudo systemctl enable nginx ``` - **配置HTTPS反向代理** - 同样地,在`nginx.conf`文件中配置反向代理...
7. **启动和管理**:安装完成后,你可以通过 `/usr/local/nginx/sbin/nginx` 命令启动 Nginx。使用 `nginx -s reload` 可以在不中断服务的情况下重新加载配置文件。若需停止服务,使用 `nginx -s stop`。 8. **验证...
普通用户在restart和reload nginx时,会报错: the user directive makes sense only if the master process runs with super-user privileges, ignored in /opt/nginx/conf/nginx.conf:1 我又不能给开发人员root...
在Linux环境下,可以通过普通的包管理器安装,也可以通过Docker进行安装,大大方便了不同环境下的部署。 配置文件方面,Nginx支持配置文件实例和基本规则的编写,可以通过Debugging方式来调试配置文件的正确性,...
#epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能 worker_connections 1024;#单个后台worker process进程的最大并发链接数 # multi_accept on; } #设定...
安装完成后,可以使用命令行工具启动Nginx,有普通启动和通过配置文件启动两种方式,确保无误后,可以检查Nginx是否已经成功运行。停止Nginx时,推荐使用“优雅关闭”以确保正在进行的请求得以完成,避免数据丢失,...
/bin:存放 Linux 系统中最基本的配置命令,普通用户也有权限执行。 /dev:存放 Linux 中的硬盘、键盘、鼠标、光驱等各种设备文件。 /etc:存放 Linux 系统中的各种配置文件,经常使用。 /home:普通用户的家目录,...
`chown`和`chgrp`改变文件的所有者和所属组,`sudo`允许普通用户以管理员权限执行命令。 五、服务器管理 Linux作为服务器操作系统,其服务器管理包括HTTP、FTP、DNS、DHCP等服务的配置和管理。例如,`apache`或`...
现在,普通用户可以使用`/path/to/nginx/sbin/nginx`来启动Nginx服务。 Tomcat的处理方式类似,但每个应用服务器的具体步骤可能略有不同。确保Tomcat的可执行文件(如`catalina.sh`)的所有权属于root,并设置相应...
9. **部署与运行**:在Linux环境下部署Nginx-http-flv服务器,需要安装Nginx,加载rtmp和http-flv模块,配置nginx.conf,然后启动Nginx服务。同时,可能还需要配置防火墙规则以允许相应的端口访问。 10. **测试与...
主要目录包括`/root`(超级用户目录)、`/home`(普通用户家目录)、`/etc`(配置文件目录)等。 **2.1.2 Linux常用命令** 常用的Linux命令包括: - `ls`:列出目录内容。 - `cd`:改变当前工作目录。 - `mkdir`:...
本指导书将深入探讨Linux的安装与配置过程,旨在帮助初学者和进阶用户更好地理解和操作Linux系统。 一、Linux安装准备 在开始Linux的安装前,你需要了解以下关键点: 1. 硬件兼容性:Linux支持多种硬件平台,确保你...
3. **用户管理**:Linux系统中有root用户和普通用户,root拥有最高权限。用户管理涉及用户账户的创建、删除和权限设置。su和sudo命令用于切换用户,尤其是以管理员身份执行任务。理解用户和组的概念,以及使用passwd...
- 配置sudo授权管理:sudo是Linux下一种权限管理机制,用于限制普通用户运行高权限命令。 - ssh服务优化:对SSH服务进行优化可以提高远程登录的安全性和效率。 - 修改Linux默认字符集:在多语言环境中,需要设置...
用户分为root(管理员)和其他普通用户,root拥有最高权限,可以管理整个系统。 6. **软件包管理**: Linux发行版通常有自己的软件包管理系统,如Debian的`apt`,Red Hat的`yum`或`dnf`。这些工具能方便地安装、...
最后,运行该程序并检查`ps aux | grep python`命令的输出,可以看到进程已成功切换到指定用户,如示例所示,其中有一个子进程的身份已变为nginx用户。 总的来说,通过Python在Linux下更改进程运行用户,可以有效地...