Articles of PHP

mod_wsgi失败通过wordpress?

我们使用apache,mod_php和mod_wsgi来提供一个中央的wordpress站点,一些path由Django提供动力,例如这些页面可能由Wordpress提供动力: oursite.com/ oursite.com/video/ 但是这些URL可能是由Django支持的: oursite.com/our-cool-django-app/ oursite.com/schedule/ 现在,我们使用一长串WSGIScriptAlias将特定的path映射到Django。 这令人讨厌,劳动密集。 那么,有没有办法可以configuration这样的事情: 首先尝试处理URL(我不太关心) 如果该处理程序返回404,请尝试另一个 我对Apache解决scheme特别感兴趣,但会考虑替代scheme。

使用NGINX的php-fpm SERVER_NAME子域

在我的PHP应用程序中: die($_SERVER['SERVER_NAME']); 请求: sub1.example.com 结果: example.com 我的NGINXconfiguration: server { server_name .example.com; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; root /var/www/html/example; index index.php; location ~ \.php$ { if (-f $request_filename) { fastcgi_pass 127.0.0.1:9000; } fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location / { if ($request_filename ~ /sub1) { rewrite ^ http://sub1.example.com/? permanent; } if ($request_filename ~ /sub2) […]

在Ubuntu中同时拥有php 5.2和php 5.3的最佳方式

我正在使用Ubuntu 12.04。 我需要 (这不是一个选项)同时安装了PHP 5.2和PHP 5.3。 我想我需要从源代码编译5.2并保存在/ usr / local或make checkinstall。 有没有更好的办法? 你会怎么做? 是否有与Ubuntu的php52官方存储库? 注意:我也需要php-fpm,所以没有fpm补丁的二进制版本不会帮助我。

debugginghtaccess重写规则; 第二个捕获组($ 2)为空

我已经看到了这个问题,为其他人,但在他们的情况下,他们的正则expression式有一个问题。 快速浏览regexpal.com向我表示,事实并非如此。 我有一个简单的htaccess文件,允许我将URL写为“.htm”或“.html”,而不是“.php”。 我刚刚发现这个脚本在处理查询string(?argument = value)时有问题。 这是我完整的.htaccess代码: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.html?\??(.*)$ $1.php?$2 [nc] 当我打印我的请求的查询string时,它总是空出来,当然,对array_key_exists的检查没有find我想要指定的id。 我不用Apache的工作,但我认为这将是非常简单的。 如果重要的话,这个htaccess应用在一个相对简单的XAMPP设置之上。 我不认为我甚至对httpd.conf文件做了什么。 我可以尝试提供任何其他人们认为可能相关的信息。

从外部请求隐藏一个PHP脚本

(第一个问题在堆栈交换,随意评论/批评) 上下文 我有一个Debian服务器 Flash Media Server(FMS)侦听端口80和1935(这是默认值) Apache2侦听端口8134 仅供参考,FMS的目的是videostream等。 它使用RTMP协议。 据我所知: 当FMS请求在1935被阻塞时,在80上有一个回退。该协议改变并成为HDS,这是基于HTTP的RTMP(较慢,但是起作用)。 FMS需要80端口来做这个回退。 另一方面,Apache提供html,css,…和swf文件,它们是客户端用来连接服务器的flash文件。 从客户端,您可以通过端口80访问这些文件。然后,FMS代理Apache无法处理的HTTP请求。 这样Apache不需要在端口80上configuration,从而避免了80端口冲突。 到目前为止,一切都很好。 但最近,我不得不为FMS添加SQLfunction。 而FMS本身没有内置的SQL连接。 它几乎不能做HTTP请求。 所以你必须在另一个服务器端技术上处理SQL。 由于Apache已经在家,PHP / MySQL就浮出水面了。 所以我安装了PHP和MySQL,并创build了一个网关.php脚本,它作为一个非常简单的数据访问层。 它的工作原理是,FMS可以通过json_encode请求PHP / MySQL生成的JSON数据,由于FMS语言是ActionScript,读取Javascript,我做了(新function(“return”+ src))()和voilà,我的js对象是直的从数据库。 非常简单,避免了构build一个J2EE服务器或带回Zend Framework来讲AMF。 现在出现我的安全问题: 每个人都可以访问.php网关,这意味着任何人都可以使用正确的GET参数来创build.phpurl,并从数据库中读取或混淆。 我想只允许FMS与网关通话。 但我需要客户端仍然能够请求每个其他文件(HTML,CSS,SWF …)。

PHP抛出权限拒绝目录中的文件错误

最近我把一个站点从Ubuntu移到了Centos,并开始注意到用户在执行事务之后显示了一个空白的响应页面。 Apache日志有这些消息。 [Mon Jul 15 02:15:58 2013] [error] [client 173.24.242.72] PHP Warning: file_put_contents(/home/sridhar/public_html/mysite.com/public/pgway_icici/dompdf/lib/fonts/php_Helvetica.afm): failed to open stream: Permission denied in /home/sridhar/public_html/mysite.com/public/pgway_icici/dompdf/lib/class.pdf.php on line 2354 [Mon Jul 15 02:15:58 2013] [error] [client 173.24.242.72] PHP Warning: file_put_contents(/home/sridhar/public_html/mysite.com/public/pgway_icici/dompdf/lib/fonts/php_Helvetica-Bold.afm): failed to open stream: Permission denied in /home/sridhar/public_html/mysite.com/public/pgway_icici/dompdf/lib/class.pdf.php on line 2354 [Mon Jul 15 02:15:58 2013] [error] [client 173.24.242.72] PHP […]

阿帕奇随机发起攻击

最近,看起来我们的VPS上的Apache2守护进程看起来是随机的问题。 第一次login之前的事情去地狱 [Tue Jun 25 23:07:18 2013] [error] [client 173.245.51.242] PHP Warning: Invalid argument supplied for foreach() in /var/www/libraries/joomla/access/access.php on line 409 [Tue Jun 25 23:07:19 2013] [error] [client 108.162.224.23] PHP Warning: array_key_exists() expects parameter 2 to be array, null given in /var/www/libraries/joomla/language/helper.php on line 55 任何问题之前的日志都会显示比我预期更多的PHP错误,维护网站的开发人员在这里没有发现任何问题 [Tue Jun 25 23:18:01 2013] [error] [client 103.22.200.24] […]

PHP在Apache虚拟主机上不起作用

我在CentOS 6上有一个Parallels Power Panel虚拟专用服务器。默认的Apache虚拟主机(使用IP访问)没有任何问题。 现在我使用Plesk创build了一个新域,并将这些文件复制到虚拟主机目录中。 不幸的是,PHP脚本不起作用 – 你可以访问它们,但是它们不会被预置。 由于默认虚拟主机仍在工作,PHP模块正在工作。 我试图修改httpd.conf(这里是完整的文件 )添加NameVirtualHost指令和VirtualHost部分没有成功。 这是我添加的部分: NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin admin@###.com DocumentRoot /var/www/vhosts/###.com/httpdocs/ ServerName www.###.com ServerAlias ###.com ErrorLog /var/log/httpd/###.com/error.log CustomLog /var/log/httpd/###.com/access.log common <Directory "/var/www/vhosts/###.com/httpdocs/"> Options Indexes FollowSymLinks Includes MultiViews ExecCGI AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 这是我的php.conf(在conf.d中): <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> […]

在Ubuntu 13.04中升级PHP 5.4.9到5.5

我目前在Ubuntu 13.04上运行PHP 5.4.9,并且由于新的password_ *库和其他function,我想升级到5.5。 什么是最简单和最不痛苦的升级方式?

CentOS 6缺lessPHP默认的依赖关系

我有一个全新的Dedi安装CentOS 6 x86_64,没有做任何事情,但安装rpmforge和htop。 除此之外,我们是默认的,以及默认的GoDaddy给出哪个是垃圾哈哈。 我正在尝试为PHP安装东西,但每次我都会遇到依赖问题,我认为这是GoDaddy对它做的事情: # yum install php-fpm.x86_64 php-pgsql.x86_64 Setting up Install Process Resolving Dependencies –> Running transaction check —> Package php-fpm.x86_64 0:5.3.3-22.el6 will be installed –> Processing Dependency: php-common(x86-64) = 5.3.3-22.el6 for package: php-fpm-5.3.3-22.el6.x86_64 —> Package php-pgsql.x86_64 0:5.3.3-22.el6 will be installed –> Processing Dependency: php-common(x86-64) = 5.3.3-22.el6 for package: php-pgsql-5.3.3-22.el6.x86_64 –> Finished Dependency […]