LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1015|回复: 11

问题:slackware下的apache

[复制链接]
发表于 2004-2-9 17:30:35 | 显示全部楼层 |阅读模式
请问在slackware下用apache非root用户不可吗?
如果哪位知道非root用户用apache能不能告诉我?
谢谢!

在我的机器下非root用户用apache,我试了:
bash-2.05b$ httpd
Syntax error on line 205 of /etc/apache/httpd.conf:
Cannot load /usr/libexec/mod_vhost_alias.so into server: /usr/libexec/mod_vhost_alias.so: cannot open shared object file: No such file or directory
bash-2.05b$ httpd
fopen: Permission denied
httpd: could not open error log file /var/log/apache/error_log.
error_log:
[Mon Feb  9 00:19:14 2004] [notice] Apache/1.3.28 (Unix) configured -- resuming normal operations
[Mon Feb  9 00:19:14 2004] [notice] Accept mutex: sysvsem (Default: sysvsem)
[Mon Feb  9 00:19:44 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80
[Mon Feb  9 00:21:24 2004] [notice] caught SIGTERM, shutting down
发表于 2004-2-9 17:51:20 | 显示全部楼层
和Slackware没什么关系,apache本身要root用户权限才能执行
发表于 2004-2-9 18:55:13 | 显示全部楼层
可以做为系统服务启动撒。。
 楼主| 发表于 2004-2-9 19:21:00 | 显示全部楼层
在sun solaris的机器下就能用权限极低的用户来运行apache,但apache是装在~user/apache目录下的,(我试过的)
但我不想再装一遍apache...
我觉得apache最好是用权限极低的用户来运行,因为比较安全,(apache至少是支持script)如果用root来运行的话,那就应该是个root 进程,用root 进程来运行一个script,那就能干很多坏事。。。(纯属个人观点)
 楼主| 发表于 2004-2-9 19:23:37 | 显示全部楼层
struggle大哥,系统服务启动是不是指inetd?
谢谢各位大哥的回复
发表于 2004-2-9 19:44:23 | 显示全部楼层
对头。

启动Apache服务器的另一种方式是inet方式,使用超级服务器inetd监视连接请求并启动服务器。当需要使用inetd启动方式时,便需要更改为这个设置,并屏蔽/etc/rc.d/rc.local/init.d/apache文件,以及更改/etc/inetd.conf并重起inetd,那么Apache就能从inetd中启动了。

两种方式的区别是独立方式是由服务器自身管理自己的启动进程,这样在启动时能立即启动服务器的多个副本,每个副本都驻留在内存中,一有连接请求不需要生成子进程就可以立即进行处理,对于客户浏览器的请求反应更快,性能较高。而 inetd方式要由inetd发现有连接请求后才去启动http服务器,由于inetd 要监听太多的端口,因此反应较慢、效率较低,但节约了没有连接请求时Web服务器占用的资源。因此inetd方式只用于偶尔被访问并且不要求访问速度的服务器上。事实上inetd方式不适合http的突发和多连接的特性,因为一个页面可能包含多个图象,而每个图象都会引起一个连接请求,即使虽然访问人数造成教少,但瞬间的连接请求并不少,这就受到inetd性能的限制,甚至会影响由inetd启动的其他服务器程序。
 楼主| 发表于 2004-2-10 00:40:49 | 显示全部楼层
所以一般apache不用inet方式运行,是用一个非常受限制的用户来运行的,不过崭时先用inet方式吧。
我再试试,如果成功的话,再告诉大家
发表于 2004-2-10 01:19:23 | 显示全部楼层
自带apache’的话,不用那么麻烦吧?
root下chmod 755 /etc/rc.d/rc.httpd就可以了
以后apache就会随机器运行
 楼主| 发表于 2004-2-10 07:28:45 | 显示全部楼层
一个软件有漏洞是难免的。
常常听到因为apache漏洞而得到root权限的,这些漏洞可能是利用apache用来执行某些服务器的命令(应该是作得到的,因为它的功能很强,),root用户可以执行服务器的所有命令,所以控制了apache=控制了root用户,如果用一个非常受限制的用户的话,那就好多了,入侵者还要用这个非常受限制的用户来偷窃root用户的密码,那就比较难了。
以上只是个人看法,不作数的。
不过是有很多网站不用端口80来作web服务是因为没有用root账户来运行web服务软件(非root用户只能用>1023端口)
 楼主| 发表于 2004-2-10 07:36:38 | 显示全部楼层
非root用户在slackware下运行apache:
先把slackware自带apache给删了,以后下载apache的源代码,./configure --prefix="用户的文件夹"...
编译以后就可以用了(make make install)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表