Articles of PHP

如果服务器有NPS服务,则使用php,ldap连接到Windows Server 2008R2

服务器: DALCON2 (Windows 2008R2,DC,NPS) DALCON3 (Windows 2008R2,DC) DALCON-WWW (Ubuntu服务器) 目标: 在DALCON-WWW ,使用带有TLS的adLDAP连接到域控制器LDAP服务 如果我连接到DALCON2 ,我得到: Server returned an error: [2] ldap_start_tls(): Unable to start TLS: Server is unavailable 。 如果我连接DALCON3 ,它的工作原理。 DALCON2有一个Network Policy Service (NPS)来pipe理VPN连接。 政策中没有任何具体的“否认”。 LDAP端口已打开,将在不使用TLS的情况下响应,但无法使用(需要更强的authentication)。 我在NPS中找不到与LDAP或TLS相关的任何内容。 DALCON2可能出现什么问题,我无法连接到它? 编辑 我有更多的debugging信息: 警告:ldap_start_tls():无法启动TLS:服务器在第12行的/var/www/dalcon-inc.com/dev/test/test_ldap.php中不可用 绑定到LDAP的错误:00002028:LdapErr:DSID-0C0901FC,注释:如果SSL \ TLS尚未在连接上处于活动状态,则服务器需要绑定才能打开完整性检查,数据0,v1db1 编辑 在组策略pipe理编辑器:计算机configuration,策略,Windows设置,安全设置和本地策略中,然后单击安全选项。 在右窗格中,双击域控制器:LDAP服务器签名要求策略。 同时将其设置为“无” DALCON2 : 平原:好的 SSL:绑定到LDAP的错误:推送function中的错误。 /收到一个意外长度的TLS数据包。 TLS:警告:ldap_start_tls():无法启动TLS:服务器不可用 DALCON3 […]

防止PHP允许php脚本上传

运行Solaris / Apache / PHP。 我们的用户群需要能够上传文件到Web服务器,所以我们必须启用php上传。 用户提供不受限制的上传脚本,攻击者上传自己的数据时就会出现问题。 攻击者通常会上传他们自己想要在Web服务器上提供的数据,或者上传另一个PHP脚本,让他们进一步访问系统。 有没有办法阻止PHP从系统端上传其他PHP脚本(我知道用户可以做到这一点,但不能肯定他们会)? 在处理允许file upload时,其他人采取的一些安全防范措施是什么? 我们如何阻止这些脚本被滥用? 我们有成千上万的用户,因此检查每个上传脚本(无论是自定义的,维基等)是安全的,似乎几乎是不可能的。 我有一个脚本,检查网页可写目录,看看是否有适当的.htaccess设置这些目录的限制,但系统有自己的login系统不是基于.htaccess / .htpasswd(维基等)不会使用这些,所以这些脚本在这方面没有真正的帮助。

Nginx:通配符子网域将URLredirect到带请求的页面

我想转换: http://test.example.com/file.php 要么 http://www.example.com/file.php?subdomain=test 要么 http://test.example.com/file.php?subdomain=test 取决于哪个更简单或更快 这适用于索引页面,但对于子文件夹和文件,它将在redirect循环中获得。 server { listen 80; # Make site accessible from http://localhost/ server_name ~^[^.]+.example.com$; rewrite ^/(.*)/$ /$1 permanent; if ($host ~* ^([^.]+).example.com$) { set $subdomain $1; } rewrite ^(.*)$ $1?subdomain=$subdomain last; location / { root /var/www/example.com; index index.html index.php; } location ~ \.php$ { try_files $uri =404; root /var/www/example.com; […]

如何运行mod_php和fastcgi并排?

在当前服务器configuration正在运行FPM / FastCGI的情况下,如何运行某些脚本(这可以在apache conf中的虚拟主机或目录设置中)作为mod_php运行? 服务器操作系统:Ubuntu-Server 11.04

CentOS不允许远程MySQL连接

从远程IP分配用户连接到数据库时,表示无法连接。 它也没有连接到根,所以出了什么问题。 绑定IPclosures,我也尝试禁用iptables,仍然没有骰子。 端口3306被转发。 我在Centos 5.6上运行,使用phpmyadmin,但我也尝试通过命令行分配用户,并创build一个新的数据库,仍然无法正常工作。 现在几个小时一直在search和排除故障,没有骰子。

我怎么能覆盖mod-php5的.php映射到每个VirtualHost或目录的php4-CGI?

我使用apache2和libapache2-mod-php5 5.3.3-7运行Debian Linux。 我有一个需要php4的VirtualHost。 所以我研究并编译了php4-cgi。 但是,我似乎无法: 在这个虚拟主机(或者甚至是全局的,不禁止php完成)中覆盖mod-php5的.php映射。 甚至find映射的地方,希望禁用它,并启用每个虚拟主机的mod-php5或php4-cgi。 这是我的php4-cgi映射(在一个php4虚拟主机中): ScriptAlias /php4 /usr/local/php4/bin <Directory /usr/local/php4/bin> Options +ExecCGI +FollowSymLinks </Directory> <Directory /www/test> AddHandler php4-cgi-script .php Action php4-cgi-script /php4/php Options +ExecCGI </Directory> 这是行不通的,mod-php5仍然运行在这个vhost /目录中的所有.php文件。 如果我将上面的AddHandler中的文件扩展名从.php更改为.php4,那么.php4文件会按照预期运行php4-cgi,但是我不能将应用程序中的所有文件都更改为.php4。 我想也许我可以在我的虚拟主机或目录中禁用mod-php5的映射,然后执行我的cgi-config(如上所述),但在不同的上下文中这些组合不起作用: RemoveHandler .php RemoveType .php php_flag engine off (this seems to even disable my php4-cgi so that wont work) 唯一的其他地方我可以find任何映射在/etc/mime.types,但注释掉相关的行并重新启动apache2不影响mod-php5的.php映射。 我尽可能地search,现在对我来说是个谜。 任何帮助或方向将不胜感激。

nodejs是否依赖于apache的common / util文件?

我想知道如果nodejs依赖于Apache的普通/ util文件? 正如我记得PHP的要求,并取决于一些Apache通用文件。 所以问题是:nodejs是否具有内置的web服务function作为Apache软件,因此不需要安装在服务器上的Apache? 更新:更一般的问题是PHP或nodejs或类似的软件可以成为一个Web服务器只是自己没有任何Web服务器软件,如阿帕奇? 也许可以这么说,在PHP的情况下使用HTTP库扩展,但是似乎库使用了一些Web服务器软件的共享对象,所以它已经不是纯粹的PHP了。

PHP mkdir()和move_uploaded_file()权限被777拒绝

我正在为一个客户端编写一个PHP脚本,这个脚本将被安装在我没有后端访问的服务器上。 我只能访问特定的文件夹和数据库。 我的脚本将上传文件和创build文件夹。 但是,当我尝试运行mkdir()和move_uploaded_file()时,我得到一个权限被拒绝的错误。 这里是条件: 服务器运行IIS 6和PHP 5.1.2(一个坏的,古老的混合,我知道)我试图做一个目录和上传一个文件的文件夹有777个权限文件夹一路到web根目录有777许可file upload上传的文件很小,在upload_max_filesize范围内任何想法,为什么这是行不通的? 感谢您的时间。

Apache + mod_php比Nginx + PHP-FPM慢4倍

我一直在Drupal 7网站进行基准testing,发现apache的页面执行速度比我创build的Nginx慢四倍。 由于这是页面执行时间,我的理解是,在执行完成之前,不会有其他任何页面资源请求,所以不太可能是由多个请求处理的方式引起的(我还应该提到,这些testing服务器只能被访问我)。 我尝试设置PHP-FPM与Apache一起工作,将其排除为可能的因素,但它只对约2%的页面执行时间产生影响。 每个服务器都运行Ubuntu 11.10,软件来自PPA,安装后只有最less量的configuration更改才能使服务器显示Drupal。 据我所知,这是我应该期待与这种设置相反。 Apache应该有一个优势,因为它不需要呼叫到外部服务,但是我看到的结果是大规模偏向于nginx。 有没有我看到的结果的任何解释? 有人可以提供我如何去确定原因的提示吗?

MySQL执行时间峰值

我今天突然遇到了MySQL问题。 细节: 操作系统:CentOS版本5.7 服务器types:运行在中等DV 4.0包上的Parallels virtuozzo容器 平均总内存使用量:<500MB 允许的总内存使用量:1GB(部分共享池只用于紧急情况,用户只能保证500MB) 处理器:> 1ghz 主要数据库大小使用最多:275MB和107MB 服务器堆栈:nginx 1.0.10,mysql 5.1.54,php 5.3.8和php-fpm innodb_buffer_pool_size = 100M php-fpm最大的孩子:5 Webapps:自定义的基于php的网站,magento和drupal 慢查询超时设置为1秒 我完成了诊断的步骤: 现在还不能重启容器 – 我今晚晚些时候我们国内的stream量会下降 启用mysql和php-fpm slowlog。 在php-fpm slowlog中发现数据库查询的函数时间超过1秒 在mysql slowlog中发现了一些简单的查询,花费1秒以上完成应该less于1秒。 最有趣的是 – 执行时间似乎有时会激增。 一个查询将花费几秒钟的时间,然后一次花费8秒来运行相同的查询。 这些结果已经通过mysql命令行运行原始SQL查询来validation。 顶部没有透露任何有趣的事情 只有资源相关的东西,我可以看到负载平均比正常高得多 直到今天,mysql已经很好,自从昨天以来,db一直没有大的变化。 有时候,事情太糟糕了,在60秒的执行时间之后,我看到了错误的网关错误。 Innodb的平均读取速度为300-1400次/秒。 Mysql正在做3-10查询/秒 在2小时内查询计数慢,正常运行时间为171(在1秒内缓慢超时) 试图重新启动mysql,nginx,php-fpm多次 例如: UPDATE `catalogsearch_query` SET `query_text` = 'EW 90', `num_results` = '7532', […]