Articles of PHP

下载的PHP文件,而不是用nginx的try_files执行

我使用Ubuntu 14.10,nginx 1.6.2,php 5.5.12。 我有一个这样的网站设置: server { root /usr/share/nginx/www/oliviataussig; index index.php; server_name oliviataussig.com www.oliviataussig.com; location / { try_files $uri $uri/ /index.php =404; } location ~ \.php$ { try_files $uri =404; include fastcgi.conf; fastcgi_pass unix:/var/run/php5-fpm.sock; } } 当我去主页(index.php),它工作正常。 但是,当我点击页面上的任何链接(这是一个类似于WordPress的CMS)时,我想回到/index.php ,并且这样做,但是index.php被下载而不是被执行。 我如何解决这个问题?

删除phpMyAdmin setup.php

我的网站日志文件显示寻找许多请求: /phpmyadmin/scripts/setup.php 我的网站上有phpmyadmin。 我应该删除该setup.php文件,或让他们继续请求?

权限被拒绝在EC2上连接Mongodb和PHP

我无法使用PHP连接到远程EC2服务器,因为我拒绝了权限。 不过,我可以通过命令行从同一台服务器远程连接,所以看起来防火墙设置是好的,bindIp也是正确的,所以似乎只有PHP有这个连接问题。 服务器是: CentOS Linux release 7.1.1503 (Core) NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" CentOS Linux release 7.1.1503 (Core) CentOS Linux release 7.1.1503 (Core)

Php的shell_exec()和apache

我在一个Apache服务器上通过Ratche运行ZMQ'push'接口,这个服务器在命令行上运行得非常好,并且按照我想要的方式与我的服务器交互。 这是代码 //script1.php <?php echo exec('php script2.php'); ?> //script2.php <?php $entryData = array( 'category' => 'modelLmdap' , 'job_id' => '1234' , 'text' => '' , 'status' => '' ); $context = new ZMQContext(); $socket = $context->getSocket(ZMQ::SOCKET_PUSH, 'my pusher'); $socket->connect("tcp://localhost:5555"); $socket->send(json_encode($entryData)); ?> 当我执行script1.php时,在服务器窗口中看到一个popup窗口,显示“请求已logging”。 但是,如果我试图通过浏览器运行它,我得到一个空白页面,并在服务器上没有输出。 我环顾了这可能是由于Apache无法在命令行运行,而解决scheme是将以下内容添加到我的sudoers(使用sudo visudo): www-data ALL=NOPASSWD: ALL 依然没有! 一个空白页。 我把命令切换到exec(),我得到这个错误: 致命错误:第8行/ home / username […]

是否有可能使用旧密码encryption协议从PHP连接到MySQL?

我正在从事一个遗留系统的前端项目。 我必须访问一个MySQL 5.6.25数据库,它仍然使用旧的4.1之前的密码encryption协议。 特别是我必须写一个PHP / Slim API来实现这个数据库的CRUD操作。 我必须使用PHP 5.3。 是否有可能使用旧密码encryption协议从PHP连接到MySQL数据库? 到目前为止,我尝试了PHP扩展mysql和mysqli,但他们都使用后4.1密码encription。 我知道4.1之前的密码encryption协议很旧,不安全,应该升级。 但是这不是我在这个项目中控制的东西,所以我必须find一个方法来处理这个约束。

多个静态文件目录,单个PHP FPM服务器

我有两个目录,我需要提供静态资产: /srv/web :包含图片,JavaScript,HTML等的静态资源 /srv/php :dynamicPHP脚本以及一些静态资产。 我正在使用NGINX并configuration它,如下所示: server { listen 80; server_name _; # root /; index index.php index.html index.htm; try_files /srv/web/$uri /srv/php/$uri =404; location ~ \.php$ { root /srv/php; try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /srv/php$fastcgi_script_name; include fastcgi_params; } } 我在Ubuntu 14.04上,PHP FPM包版本是5.5.9,NGINX包版本是1.4.6。 这里的简单目标是首先为/srv/web提供静态文件,如果失败/srv/php ,则返回404.所有以\.php$结尾的\.php$将通过Unix套接字从PHP FPM请求,这是工作。 我目前遇到的问题是, server上的index指令没有按计划运行。 我在/srv/web有一个index.html文件,当我这样做 curl -is […]

面对我的服务器上的黑客活动

我最近将我的托pipe服务器切换到了AWS。 并在最初一切工作正常,但最近我面临的问题,我的服务器,它倒下了好几次。 我已经密切监视它,并知道CPU利用率达到100%几次,每次我需要重新启动我的实例。 所以我已经检查了访问日志和错误日志,似乎一些黑客活动正在我的服务器上进行。 请看下面我的错误日志文件的日志: [Wed Sep 23 14:25:56.081268 2015] [:error] [pid 18791] [client 193.0.***.***:59940] script '/var/www/html/includes/custom.php' not found or unable to stat, referer: -1' OR 2+20-20-1=0+0+0+1 or 'Q2fRfUkq'=' [Wed Sep 23 14:25:56.122526 2015] [:error] [pid 18780] [client 193.0.***.***:59939] script '/var/www/html/includes/custom.php' not found or unable to stat, referer: @@EKtcl [Wed Sep 23 14:25:56.365583 2015] [:error] […]

Apache可以暴露用于validation到PHP应用程序的LDAP组?

我有一个LAMP服务器设置使用Apache2,mod_php和mod_authnz_ldapvalidation到Active Directory。 这承载了一个轻量级的PHP应用程序,用户input和操作数据。 访问基于'require ldap-group …'指令,并且许多组都是有效的。 我们现在需要为其他组添加访问权限,但访问权限必须是“只读”的。 在这种情况下,我们需要在应用程序级别确定用户所在的组,并根据该组成员资格禁用某些function。 应用程序是PHP,所以PHP可以轻松访问的东西是理想的。 理想的解决scheme: AD组名称apache用来授予访问权限可以很容易地暴露给应用程序,类似$_SERVER['AUTHENTICATE_SAMACCOUNTNAME'] 。 我想避免的解决scheme: 1.通过php模块访问ldap 我们已经通过apache进行身份validation,所以这会造成不必要的重复,额外的工作来实现和额外的维护开销(一个更多的绑定URL来改变)。 可行,但这是一个痛苦。 2.修改AuthLDAPURL 再一次,要求我们只为这个主机偏离我们的标准,并且保持这个前进。 可以,但稍微小一些的疼痛。 然而,添加其他ldap指令或虚拟主机更改将是微不足道的。 3.添加具有更多受限访问权限的副本 这实际上似乎是最好的主意,但是这需要我们为新组发布一个新的URL,这是一个糟糕的用户体验,可能会被拒绝。 4.基于SQL的身份validation 这么多的额外开销,这是完全不可行的这种情况下。 (而且技术上也不会回答这个问题)。

Laravel和WordPress在相同的服务器/域

我正在尝试在Laravel(5.1)项目中托pipe一个WordPress站点。 我有以下结构(剥离了一些) ├── app ├── config ├── public │ ├── index.php │ ├── wordpress -> ../wordpress │ └── .htaccess ├── resources ├── storage ├── vendor └── wordpress ├── index.php ├── wp-admin ├── wp-config.php ├── wp-includes └── .htaccess 虚拟文档根目录是公共的。 WordPress的应该抓住一切通过.htaccess跌落。 但是,例如/login应该去laravel。 当我的项目增长时,我打算添加更多的规则来捕捉Laravel的请求。 我在/ public中有以下.htaccess文件: <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d […]

如何在Apache上使用mod_mono在网站的子文件夹中运行PHP应用程序?

我有一个网站运行单声道(在Debian延伸)。 我想有一些将由php5模块处理的子文件夹(例如webmail,stats和PhpMyAdmin)。 有一个简单的方法来做到这一点与Apacheconfiguration,或者我应该看看phalanger或其他解决scheme(代理)?