我刚在家里build立了一个Wi-Finetworking。 我的桌面计算机上有所有的文件(192.168.1.56),并且要从另一台计算机(192.168.1.2)上访问本地主机。 在我的桌面上,我可以通过正常的http:// localhost访问本地主机 。 Apache像往常一样在端口80上运行。 到底要做什么才能做到这一点? 网上有文档,但是他们要么不工作,要么太碎片化,难以理解。 我想我必须改变我的Apache的httpd.conf文件和hosts文件。 任何想法,作出什么样的改变?
我只是无法弄清楚。 我在Ubuntu 10.04 i386服务器上运行apache2。 每当我访问我的服务器(有一个IP地址,并连接到互联网与静态IP xxx.xxx.xxx.xxx),这不是问题)在浏览器, mysub.domain.edu (在这里重命名),我得到以下: Forbidden You don't have permission to access /index.html on this server apache2错误日志证实了这一点: [Mon Apr 18 02:38:20 2011] [error] [client zzz.zzz.zzz.zzz] (13)Permission denied: access to / denied 我会尽力在下面提供所有必要的信息: 1)/etc/apache2/httpd.conf的内容 DirectoryIndex index.html index.php 2)/ etc / apache2 / sites-available / default的内容 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /home/myusername/htdocs <Directory /> […]
我没有太多的PHP / mod_phppipe理经验,所以我很抱歉,如果这是一个非常简单的问题。 我的问题是 – 为什么不能通过exec()调用从PHP脚本产生的进程正确接收报警中断? 我的问题的长版: 今天早上,我在一个现有的PHP脚本中递交了一个bug。 经过一番调查,我已经把它追溯到php正在使用exec()来运行一个subprocess的事实,subprocess依靠一个SIGALRM来逃避一个循环,并且它从来没有收到警报。 我不认为这很重要,但具体的subprocess是/ bin / ping。 当ping一个不返回任何数据包的设备时(例如一个带有放弃ICMP回应请求而不是返回目标主机不可达的防火墙的设备),你必须使用-w选项来设置一个定时器来允许程序退出(因为-c计数返回数据包 – 如果目标永远不会返回数据包,并且不使用-w,则会陷入无限循环)。 当从PHP调用时, ping -w依赖的警报处理程序不会触发。 这里有一些有趣的使用strace来跟踪从命令行(警报处理程序工作)的ping调用: (snip) setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={1, 0}}, NULL) = 0 (snip) — SIGALRM (Alarm clock) @ 0 (0) — rt_sigreturn(0xe) = -1 EINTR (Interrupted system call) 当我插入一个shell包装,允许我从网上调用时运行strace,我发现setitimer调用存在(并似乎运行成功),但SIGALRM行和rt_sigreturn()行不当下。 ping然后继续运行sendmsg()和recvmsg(),直到我手工杀死它。 试图减lessvariables,然后我把它切出来,写下面的Perl: [jj33@g3 t]# cat /tmp/toperl #!/usr/bin/perl $SIG{ALRM} = […]
我知道有很多不同的方法来做到这一点,但我不确定“最好”的方式是否适合我的特殊情况: 每个网站应该有自己的用户帐户(网站用户) 虚拟主机指向站点用户的主目录内的目录 Apache作为站点用户的用户:组执行每个站点 CLI命令可以作为站点用户在站点上执行 各承包商负责维护一个或多个地点,每个承包商应有自己的账户用户账号 联系人也将拥有他们mainatian每个网站帐户的帐户信息。 他们将以站点用户身份login,以便维护每个站点 – 使用ssh直接访问该站点帐户,或login到其承包商帐户,然后切换用户。 我的第一个想法是使用mod_fcgi因为我认为这是通常在我使用的一些共享服务器环境中完成的方式。 我当然search了这个设置,但是我发现的大多数指南都是随机的博客文章。 我想要的是更有信誉的东西(如VPS公司的howto KB或distro wiki)。 通过这种方式,我可以将pipe理员指向它作为一般指导,以确定他将适应如何设置此特定服务器。
我试图改变Apache端口为82(confugure nginx):我改变了: NameVirtualHost 94.198.110.11:80到NameVirtualHost 94.198.110.11:82在apache2.conf 听94.198.110.11:80在ports.conf中监听94.198.110.11:82 VirtualHost 94.198.110.11:80到虚拟主机94.198.110.11:82在站点可用/默认 并在每个虚拟主机中手动更改端口。 但是,当我创build新的主机,它创build80默认端口,并在prev。 configuration文件添加了80端口的线路。我怎样才能更改默认端口?
我有一种情况,我需要促进200M的file upload到与主网站服务器分离的公用事业服务器。 这是我的configuration: Authenticated Client on Public Internet /\ \ | \_____ 200M | \_____ | \_____ VV Authenticating <——-> Utility Server Web Site (EC2, Windows, Apache, Python, Django) Server (EC2 LAMP) 我目前的解决scheme仅仅是让我的Web服务器通过实用程序服务器的EC2 URL,并允许客户端直接与实用程序服务器通信。 这有两个缺陷 – 它暴露未经身份validation的实用程序服务器的URL,它需要客户端上的跨域技巧来将POST上载路由到实用程序服务器。 问题是什么是从客户端隐藏实用程序服务器的最佳方式,而不通过Web服务器推送file upload数据? 这些是我想要尝试的想法: DNS将实用程序服务器与子域别名。 这可能会修复我的跨域脚本问题,但我不确定它是否有助于保护公用事业服务器。 也许我可以从实用程序服务器检查Web服务器的身份validationCookie? 在网站的Apacheconfiguration中重写规则。 我不清楚这是如何影响POST的数据实际上被路由的。 在网站的Apacheconfiguration中redirect。 我不确定是否可以使用redirect来隐藏用户的实用程序服务器URL。 从网站的控制器代码redirect。 与#3相同的问题,但我认为这可能比#3更好,因为它会通过PHP身份validation层传递请求。 更好的东西?? 笔记: 实用程序服务器的不寻常configuration是需要执行的实用程序的可用软件的交集的function。 实用程序服务器不是严重恶作剧的高价值目标。 只要把前门锁上就足够了,但是我想避免把钥匙留在垫子下面。
我一直在尝试将build议的修复程序应用于Apache的CVE-2011-3192,这是要添加到httpd.conf # Drop the Range header when more than 5 ranges. # CVE-2011-3192 SetEnvIf Range (,.*?){5,} bad-range=1 RequestHeader unset Range env=bad-range 但是,在Apache 2.0.59中,configtest说 Syntax error on line …. header unset takes two arguments 我们仍然需要使用范围标题,以便取消整个范围部分不是真正的select。 任何想法得到这个工作?
我正在开发一个Ruby on Rails应用程序,并有一个登台服务器。 但是这个登台服务器不会发送任何电子邮件,而是丢弃它们。 为了testing我们发送的电子邮件,以及这些电子邮件的样子(所以我们可以使用登台服务器进行质量保证),我find了MailCatcher 。 但是目前它专注于开发环境,所以既不支持HTTPS也不支持authentication,而且我也不想公开所有人的MailCatcher电子邮件。 有没有办法通过Apache或Nginx提供HTTPS和基本身份validation? 也许是一个反向代理?
我有我的httpd.conf中的以下内容 <VirtualHost *:80> ServerName foo.org ServerAlias www.foo.org <Proxy *> Options FollowSymLinks MultiViews Order allow,deny Allow from all AllowOverride All </Proxy> ProxyPass / http://127.0.0.1:5012/ ProxyPassReverse / http://127.0.0.1:5012/ </VirtualHost> 这可以很好地工作,因为http://foo.org的所有请求都使用不同的Web服务器从端口5012提供。 不过,我想通过Apache从端口80只服务于http://foo.org/lib 。我该怎么做? 将下面的行添加到conf中并没有帮助 Alias /lib /path/to/lib <Directory "/path/to/lib"> AllowOverride None Options None Order allow,deny Allow from all </Directory>
我可以使用下面的命令看到apache加载的核心和其他模块的列表: $ apache2ctl -t -D DUMP_MODULES Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) auth_basic_module (shared) auth_digest_module (shared) 为了优化服务器的性能(本质上节省每个Apache线程的内存),我想禁用未使用的模块。 Apache文档在下一页提供了有关这些模块的信息。 大多数情况下,为每个模块提供的信息足以确定是否应禁用模块。 例如,我知道我不使用LDAP身份validation,所以我可以安全地禁用authnz_ldap_module 。 然而,对于一些模块来说,这是不太明显的。 例如,对于mod_mime无法parsing的情况, mime_magic模块被用作“第二道防线”,这在理论上不能确定,因为它取决于Apache将提供哪些文件。 问:是否有办法将Apache有效用于处理请求的模块列表logging到文件中? 如果我可以logging这些信息,那么我只需让Web服务器运行一段时间,然后获取用于处理同时收到的所有请求的模块列表,并禁用那些不在列表中出现的请求。