Articles of Apache

mod_perl无法在/ tmp中看到文件

我有一些mod_perl代码试图访问/ tmp下的文件…但它会抛出一个'没有这样的文件或目录'的错误。 我在代码中添加了一个'ls -al / tmp'来查看Perl在目录中看到的内容,它只给了我。 和..: drwxrwxrwt. 2 root root 6 Jan 21 13:36 . drwxrwxrwx. 18 root sysadmin 4096 Nov 22 22:14 .. 实际上,在/ tmp下有一些文件的混合,包括Apache用户拥有的文件。 将我的代码更改为'ls -al /'会给出一个正确的目录列表(没有丢失)。 我尝试sudo'ing到Apache用户,并可以看到下/ tmp文件,所以它必须是一些mod_perl相关的。 想法? 我在CentOS 7下运行mod_perl 2.0.8和Apache 2.4。SELinux设置为宽容。

我如何设置VirtualHosts指向同一IP上的两个端口到不同的ServerNames?

我已经build立了wiki软件Gitit在同一个Apache服务器(端口1848和4000)的两个独立的端口上运行。 我已经确认他们正在运行: http://wcaleb.rice.edu:4000 http://wcaleb.rice.edu:1848 现在我想代理这两个网站更漂亮的url,如http://wiki.wcaleb.rice.edu和http://hist118.wcaleb.rice.edu 。 两者的IP地址是128.42.173.84 我的服务器pipe理员添加了这些名字的DNS条目,但我似乎无法让我的Apacheconfiguration工作。 按照这里的说明 ,我试图build立一个像这样的VirtualHost: NameVirtualHost *:1848 <VirtualHost *:1848> ServerName hist118.wcaleb.rice.edu DocumentRoot /var/www/ RewriteEngine On ProxyPreserveHost On ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPassReverse / http://127.0.0.1:1848 RewriteRule ^(.*) http://127.0.0.1:1848$1 [P] ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost> 而另一个相似的虚拟主机在端口4000的http://wiki.wcaleb.rice.edu 。但是,当我然后发出service httpd restart ,我得到一个FAILED消息,当启动httpd,我的浏览器无法连接到http:/ / […]

如何在我的PHP应用程序中显示Web根目录以外的图像?

我有PHP使用Apache服务器,Linux的Web应用程序。 出于某种安全原因,我将文档和图像保存在Web根目录之外。 如何在用户login时显示这些图像。

清除大的Apache域日志

我有一个问题,Apache日志在多台服务器(Linux CentOS 5)上增长不成比例…我最终会完全禁用日志logging,但现在我需要快速修复硬盘空间。 我已经尝试使用echo " " > /path/to/log.log或* > /path/to/log.log但是它们花费的时间太长,几乎崩溃了服务器,因为日志大到100GB 删除文件的工作很快,但我的问题是,它会导致一个问题,当我重新启动Apache。 我的服务器是活的,充满了用户,所以我不能让他们崩溃。 你的帮助表示赞赏。

file_put_contents不创buildtxt文件

我目前有一个PHP脚本,当浏览器浏览器浏览到网页时正在运行。 我想要做的是编写一个文本文件,当脚本运行存储一个variables。 该文件夹的所有者是Apache,但每个人都已经阅读写,严格的testing目的。 (我认为这可能是一个权限问题)在服务器上启用SELINUX,当我从控制台运行脚本时,它会创build文本文件,并且在正确的目录中。 file_put_contents("My working file location", $myString); 我使用这一行来尝试编写和创build文本文件,我知道我的文件位置工作,因为我可以运行它,并在离线模式下创build它,IE通过控制台运行它。 问题是我试图写的variables是通过HTTP Post填充的,当我通过浏览器运行脚本,或者当Apache运行脚本时,它不会写入或创build文件。 我需要做什么来允许访问写/改变语法来获得这个脚本来写这个文本文件?

停止打印php错误信息到浏览器

我使用PHP 5.3,CentOS 6.2,httpd 2.2.15,NetBeans 7.0.1(通过ftp远程运行)。 我想停止向浏览器打印错误消息,这足以打印到httpd的error_log。 我认为做try / catch我会决定如何处理错误,但它仍然打印到error_log和浏览器。 function smic_gettext($phrase){ try{ $tr_text = $this->language_array[$phrase]; } catch(Exception $e){ error_log("Couldn't find any entry in the translation file for ".$phrase.". ".$e); return $phrase; } return $tr_text; } 我应该如何configuration才能阻止这种行为? 我曾尝试在php.ini中设置display_errors = Off和display_errors = 0。 没有区别(我没有重启httpd)。

Apache访问Linux中的NTFS链接文件夹

在Debian jessie中使用Apache2 / PHP,当我想在Apache(/ var / www)的文档文件夹中创build一个新的子节点时,我只需创build一个链接到一个外部文件夹,在这里我的PHP文件存在,只需更改所有者和权限文件夹如下,它的作品完美。 ln -s /home/myname/mynewcode /var/www/test1 chown -R www-data:www-data /home/myname/mynewcode chmod -R 755 /home/myname/mynewcode 然后我可以访问http:// localhost / test1 但是,当我想要链接它的实际文件夹是在NTFS分区,因为chown和chmod不起作用,所以我通过添加以下代码来修改/ etc / fstab,因此我的NTFS分区将以所需的权限所有者。 UUID=XXDDXDDXDDDXDDDD /media/myname/lable ntfs user,exec,uid=www-data,gid=www-data 0 2 ln -s /media/myname/lable/mynewcode2 /var/www/test2 但是,我仍然从Apache2获得许可错误,我不知道该怎么做! 被禁止 您无权访问此服务器上的/ test2。 本地端口80上的Apache / 2.4.10(Debian)服务器

(13)权限被拒绝:访问/cgi-bin/test.cgi被拒绝

我第一次尝试CGI脚本,但没有成功。 我已经阅读了许多教程,并在不同的论坛中遵循可能的线程,但是我无法使其工作。 我正在Fedora 10机器上使用Appache Web服务器。 我总是有问题 [Wed Oct 21 20:47:36 2009] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0 [Wed Oct 21 20:47:36 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Wed Oct 21 20:47:36 2009] [notice] Digest: generating secret for digest authentication … [Wed Oct 21 20:47:36 2009] [notice] Digest: done [Wed Oct 21 […]

将域映射到Tomcat应用程序

我有一台安装了CentOS和zpanel的服务器。 Zpanel沿许多其他模块安装了“Apache Httpd”。 我一直托pipe多个域没有任何问题。 我有两个问题: 移除端口8080并将所有呼叫指向80。 每个tomcat应用程序的适当的域,以及我现有的网站在Apache Http上独立运行。 我安装了Apache Tomcat 8并部署了多个应用程序,我可以像访问我的应用程序 http://example:8080/app1 http://example:8080/app2 http://example:8080/app3 我想要的是我的tomcat应用程序映射到我的域名,如此 http://example:8080/app1 => http://www.app1.com http://example:8080/app2 => http://www.app2.com http://example:8080/app3 => http://www.app3.com 我曾经尝试过这个教程 ,它有一些技巧,但不完全是我想要的。 即在执行他提到的步骤后,我打开我的example.comredirect到我的tomcat应用程序,如:example.com/app1。 [它删除了8080,并redirect到正确的应用程序]但如果从最后的应用程序被改变,即app1被更改为其他项目,由tomcat托pipe那么该项目打开。 编辑: 我的虚拟主机文件是 # DOMAIN: app1.com <virtualhost *:80> ServerName app1.com ServerAlias app1.com www.app1.com RewriteEngine On RewriteRule ^/$ app1/ [R=301] <Proxy *> Order allow,deny Allow from all </Proxy> ProxyRequests […]

Apache / httpd / var / www / html / .cgi脚本会引发500个内部服务器错误

我今天安装了一个新的CentOS 7 x86_64 LAMP服务器。 我在c中编译了一个简单的CGI脚本,我把它命名为test.cgi,并为.cgi脚本启用了AddHandler。 然而,每次我尝试从我的/ var / www / html目录加载/test.cgi页面时,任何简单的.cgi脚本都会给我一个500内部服务器错误页面。 我testing了脚本在/ var / www / cgi-bin目录下工作正常。 我的服务器正在运行selinux,而apache / httpd正在使用suEXEC。 编辑:也没有创build任何额外的用户灯安装后,所以在这里我使用root来做所有的事情。 然而,我试图修复给Apache的用户/ var / www / html目录的所有权,这并没有修复悲伤。 这里是错误日志,你可以看到它给了我一个'Permission Denied'错误: [Mon Jul 21 15:28:14.336626 2014] [core:notice] [pid 22704] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0 [Mon Jul 21 15:28:14.339766 2014] [suexec:notice] [pid 22704] AH01232: suEXEC […]