Tag: PHP

让Nginx从PHP-FPM发送4xx / 5xx错误

我有Nginx安装程序来反向代理以.php结尾的所有文件。 在一些脚本中,我检查参数,并发送“406不可接受”作为一个通用的错误,这需要从Ajax的jQuery /拾起。 我可以改变这个错误,但我希望能够把它发送到客户端。 如果我发送406,Nginx会将其更改为502 Bad Gateway并注入它自己的错误消息。 它虽然适用于404和403,但这些错误在这种情况下并不真正“适用” 这是一个API,所以被禁止是不好的RESTful实践。 我尝试使用fastcgi_intercept_errors,但似乎没有区别。 我正在使用Nginx 0.7 。 PHP的一部分: header($_SERVER['SERVER_PROTOCOL'] . '406 Not Acceptable'); echo '{"error":"Missing Params"}'; exit; Nginxconfiguration location ~ .php$ { fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }

如何正确地转义和插入variables在Bash中?

我试图写一个单行程序来转换一些文件中存在的HTML实体(所有的HTML与UTF-8编码) 我试过recode HTML_4.0 file.htm但也转换非ASCII字符(它打破了UTF-8字符) 在StackOverflow中,我发现了一个适用于一个文件的东西: php -r '$f=@fopen("file.htm", "r");echo html_entity_decode(fread($f, 20000));fclose($f);' 但是当我尝试使它与多个文件 for fi in *.htm; do php -r '$f=@fopen("$fi", "r");echo html_entity_decode(fread($f, 20000));fclose($f);';done 我知道这里的问题是如何“逃避”$ fi(bashvariables),所以PHP不会将其读取为PHPvariables。 有什么build议?

为什么这两个PDO类不同(我怎样才能使它们相同)?

我有一个基于Web的PHP电子邮件客户端( Roundcube ),我安装在UNIX服务器上,马上就产生了这个错误: Fatal error: Undefined class constant 'MYSQL_ATTR_FOUND_ROWS' in /path/to/file.php on line 134 这是这行代码: $result[PDO::MYSQL_ATTR_FOUND_ROWS] = true; 本地在我的Windows安装它工作正常,所以我比较这两个PDO类: <?php ReflectionClass::export('PDO'); 活的UNIX服务器上不存在MYSQL_ATTR_FOUND_ROWS属性和其他一些属性。 我通过对未知值进行硬编码做了一个快速修补,并且效果很好,但是我不能确定没有更多的错误(我们也不想使用被黑客入侵的版本)。 PDO类是绝对加载的,我们实际上需要启用它,以便首先安装带有MySQL / PDO选项的Roundcube。 似乎现场服务器的PDO类需要更新,我猜? 我没有直接控制现场服务器,但我可以给那些做的人的指示。 任何人都可以帮我弄清楚必须做什么? 这里是统计信息: 本地Windows Apache服务器(工作),PHP版本5.3.8 PDO类debugging输出: Class [ <internal:PDO> class PDO ] { – Constants [86] { Constant [ integer PARAM_BOOL ] { 5 } Constant [ integer […]

Apache,PHP,“I / O警告:无法加载外部实体”有时

我正在尝试在VPS上安装CDash 。 通常在apache重新启动后,它会很好的工作,但是几分钟后,它会随机地出现以下错误: Warning: XSLTProcessor::importStylesheet(): I/O warning : failed to load external entity "/cdash/footer.xsl" in /cdash/cdash/common.php on line 55 Warning: XSLTProcessor::importStylesheet(): compilation error: file /cdash/ line 4 element include in /cdash/cdash/common.php on line 55 Warning: XSLTProcessor::importStylesheet(): xsl:include : unable to load /cdash/footer.xsl in /cdash/cdash/common.php on line 55 Warning: XSLTProcessor::importStylesheet(): I/O warning : failed to load […]

在Nginx和PHP上添加“HttpOnly”和“Secure”cookie标志

我有Nginx运行PHP和WordPress。 Acunetixbuild议设置这些标志,但它们不提供任何文档。 我已经看了一下,但是我没有看到任何显示如何实现这个的东西。 我有这个模块:Nginx的http://wiki.nginx.org/HttpHeadersMoreModule ,如果这将有所帮助。 任何有关如何设置这些标志的信息? 谢谢。 按照这里要求的cookie样本 Cookie:__cfduid = d3-shortened-08; cf_use_ob = 0; wordpress_logged_in_6dfda缩短的-e3e82d5; __utma = 21-缩短-436.19; __utmc = 21519150; __utmz = 2119150.1396063475.3.2.utmcsr =谷歌| utmccn =(有机)| utmcmd =有机| utmct R =(未%20provided); testing= 1; SID = A14-缩短-384; sessiontest = 1; WP-设置-2 =编辑%3Dhtml%26wplink%3D0%26uploader%3D1%26mfold%3DO%26ed_size%3D 677%26libraryContent%3Dbrowse%26urlbutton%3Dfile; WP-设置时间-2 = 139745167; wordpress_test_cookie = WP +曲奇+检查; wordpress_logged_in_a9缩短的-d2a7 = DrDinosaur%7C1397980-缩短-2F9

phpmyadmin不会连接到远程MySQL实例

我有一个LAMP堆栈框(CentOS 6)和另一个运行mysql服务器的CentOS 6框。 我已经在LAMP盒子上安装了phpmyadmin,但是我根本无法把它和我的SQL框交谈。 我已经在config.inc.php中configuration了以下内容 /* Servers configuration */ $i = 0; /* Server: usp-ggdb2 [1] */ $i++; $cfg['Servers'][$i]['verbose'] = 'usp-ggdb2'; $cfg['Servers'][$i]['host'] = '10.1.2.3'; $cfg['Servers'][$i]['port'] = ''; $cfg['Servers'][$i]['socket'] = ''; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = ''; 当我浏览到phpmyadmin网站时,出现以下错误: #2002 – 无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地MySQL服务器(2)服务器没有响应(或本地服务器的套接字configuration不正确)。 我不知道为什么它正在试图连接到本地服务器,因为我只configuration了一台服务器(而且是远程的)。 如果我tcpdump我可以看到,它不会尝试build立一个连接到我指定的IP。 这就好像我的configuration文件被忽略。 有没有办法打开更多的debugging信息? 任何和所有的build议欢迎!

在Ubuntu服务器上重新启动后,PHP 5的目录FPM套接字文件被删除

我创build了一个目录来存储PHP 5 FPM的套接字​​文件: sudo mkdir /var/run/php-fpm 。 它由root:root以及核心PHP FPM进程拥有。 当PHP FPM启动时,它为该目录内的每个池创build套接字文件,并且nginx使用它们进行通信。 但是,当我重新启动我的机器( sudo reboot )后,此目录在重新启动后不见了,PHP FPM无法启动,导致它无法在丢失的目录中创build套接字文件。 可能是什么问题? 我如何debugging它? 我正在使用最新的Ubuntu Server 14.04。

xz压缩不可用 – 在centos yum错误

我想更新我的PHP到新版本。 处理这个来源: https : //webtatic.com/packages/php56/#comment-139854 现在我不能使用yum命令。 任何时候当我尝试安装或更新我收到:XZ压缩不可用。 PHP当然没有更新,但我需要。 我希望你能帮助我。 我的操作系统:OVH(VPS)中的CentOS 6.5(Plesk 12)。

磁盘I / O和负载平均每小时高峰一次

我们已经把我们的服务器从Debian Wheezy更新到了Jessie,从php5.6更新到了php7.0,但是现在我们有一个磁盘I / O并且每小时准确地加载一次平均峰值。 确切的时间取决于系统的启动时间。 在这个服务器上,我们有: nginx的/ 1.10.1 PHP 7.0.8-1〜dotdeb + 8.1 Percona MySQL服务器5.6.30-76.3-log dovecot 2.2.devel 后缀2.11.3-1 java 1.7.0_101 我们试图返回到php5.6,禁用cron,禁用postfix和dovecot,停止我们的Java应用程序,但没有任何帮助。 峰值如下所示: iotop看起来如下所示: 我怎么能确切地知道是什么原因导致这些高峰,并消除它们?

我如何创build一个单独的configuration文件的PHP(cli)和php-fpm在arch linux上

是否有可能为php(cli)和php-fpm创build单独的php.ini文件,就像在debian和ubuntu上可能有两个文件夹/etc/php/7.0/cli和/etc/php/7.0/fpm ? 如果我可以为每个子系统加载一个conf.d目录的独立模块,我也会很酷。 有没有人有一个想法如何可以分别configuration它? 我也尝试使用它在ubuntu 16.04中configuration的结构,但没有成功。

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.