Articles of PHP

在远程升级后,httpd退出信号中止

经过很长一段时间,我们在我们的Debian生产服务器上进行了apt-get dist-upgrade,更新ofc并没有成功,因为它打破了一些服务, exim和httpd(重新启动后)/ Configs在更新时不会被覆盖。 httpd错误日志:… [Thu Jul 06 21:40:14.738185 2017] [core:notice] [pid 64478] AH00052: child pid 3955 exit signal Aborted (6) [Thu Jul 06 21:40:14.740261 2017] [core:notice] [pid 64478] AH00052: child pid 3957 exit signal Aborted (6) [Thu Jul 06 21:40:16.749335 2017] [core:notice] [pid 64478] AH00052: child pid 3960 exit signal Aborted (6) [Thu Jul […]

如何禁用laravel中的文件URL的gzip

在Android客户端,我们使用这个下载器库 ,它是伟大的库,但它需要文件的大小,然后从URL下载文件。 根据一些需要,我们应该为我们的代码(Laravel)启用gzip 。 但是我们不能启用gzip因为在那之后下载器不起作用并且引发错误。 现在我们要禁用文件URL的gzip 。 这是我的.htaccess内容: SetEnv no-gzip dont-vary <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews </IfModule> RewriteEngine On # Redirect Trailing Slashes If Not A Folder… RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller… RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>

无法重新启动php7.0-fpm。 儿童进程挂

要清除我的PHP应用程序的opcache,我希望能够重新启动php7.0-fpm.service 。 我使用Ubuntu 17.04(Zesty Zapus),nginx / 1.10.3和php-fpm7.0。 在服务器上,我正在通过gluster挂载一个文件系统。 当我的应用程序运行一段时间,我尝试重新启动php-fpm与systemctl restart php7.0-fpm.service它需要很长时间来终止命令。 之后,PHP的FPM不会再次启动。 systemctl restart php7.0-fpm.service Job for php7.0-fpm.service failed because the control process exited with error code. See "systemctl status php7.0-fpm.service" and "journalctl -xe" for details. 重启之前的进程列表: root 819 0.0 1.4 366356 58764 ? Ss Jul10 0:02 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) www-data 23129 0.0 0.8 […]

来自PhP的WMIC远程连接问题

我需要一个远程机器的可用空间信息,并使用PhP连接远程机器。 运行 wmic /node:banapalabtt01 logicaldisk where drivetype=3 get Name,Size,FreeSpace,VolumeName /format:csv 从命令提示符工作正常,并提供有关机器的信息。 但是运行 <?php $output =""; exec("wmic /node:banapalabtt01 logicaldisk where drivetype=3 get Name,Size,FreeSpace,VolumeName /format:csv",$output); print_r(array_values($output)); ?> 从PhP返回 Array ( [0] => [1] => Node, ) 这不是我所需要的。 请帮我看看我做错了什么。 这些是生产服务器,我无法更改设置。

Ubuntu 14.04 / var / tmp文件夹不能访问

我正在使用一个PHP脚本,上传临时文件到/ var / tmp文件夹。 我很难得到这个工作,我得到500的http代码,只要我尝试使用脚本! 经过一段时间,我才知道这个代码肯定是错误的: function compress_image($source_url, $destination_url, $quality) { $info = getimagesize($source_url); if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source_url); elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source_url); elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source_url); imagejpeg($image, $destination_url, $quality); return $destination_url; } 至于我使用它是这样的: $category_image=rand(0,99999)."_".$_FILES['category_image']['name']; //Main Image $tpath1='images/'.$category_image; $pic1=compress_image($_FILES["category_image"]["tmp_name"], $tpath1, 80); 我试图检查使用此代码 <?php if (file_exist("/var/tmp/545.tmp")) { echo […]

使用PHP-FPM的Apache2 / PHPconfiguration的安全性

我不是Linux专家。 我试图学习Linux和Web服务器configuration。 对于我不专业的问题感到抱歉。 我有我自己的Linux根服务器,我的configuration看起来是这样的: – Ubuntu 16.04 – LAMP与Apache2 2.4.18,MariaDB 10.0.29和PHP 7.0 / 5.6 – 改变端口和KeyFile +密码的SSH – 启用和UFW防火墙端口443,80和SSH – configuration了Fail2ban – SSL允许encryption 我有一个在这个系统上运行的下一个云安装。 下一个云安装在我的Apache2 2.4.18networking服务器上用php7运行。 服务器API是Apache 2.0处理程序。 现在我在我的服务器上托pipe第二个网页,应用程序需要php5.6。 我search了一个解决scheme,并findPHP-FPM。 有了这个我可以运行不同的虚拟主机(这是我的理解)的php7和php5.6。 我添加到我的默认apache conf下面的代码: <IfModule mod_fastcgi.c> AddHandler php56-fcgi-www .php Action php56-fcgi-www /php56-fcgi-www Alias /php56-fcgi-www /usr/lib/cgi-bin/php56-fcgi-www FastCgiExternalServer /usr/lib/cgi-bin/php56-fcgi-www -socket /run/php/php5.6-fpm.sock -pass-header Authorization <Directory "/usr/lib/cgi-bin"> Require all granted […]

非常高的平均负载导致服务器滞后

我们有一个CentOS 6.9服务器,有4个核心CPU和32GB RAM。 每天大概在同一时间,当我们终于必须重新启动服务器时,负载平均值从0.0逐渐变化到11 。 CPU :有时会尖峰,当像垃圾邮件,fail2ban这样的进程需要几秒钟的时间做些事情。 否则是1%左右。 一时之间php也占用了50%以上的CPU。 大部分时间空闲至less70%。 I/O :没有太多的I / O操作,但有时mysqld占用I / O的99.5% RAM :始终在可接受的范围内。 Bandwidth :在此期间没有太多的变化。 可接受的范围。 Disk Space :超过1TB的可用空间。 AV :冉clamd等工具,在wordpress安装中find了一些。 现在删除。 即使情况不佳,负载平均值不断增加,服务器变得太慢,我们不得不重新启动。 然后事情变得正常。 这不是一个cronjob问题,因为我也想过,因为有规律的例程,它必须是cron。 所以我使用了service crond stop并在延迟开始之前停止了几个小时。 滞后仍然发生。 在高负载平均时间内有很多进程正在运行。 有些是:多个mysqld , ../bin/suexec 501 501 php5 /bin/php ../bin/suexec 501 501 php5 , /bin/php , /fail2ban进程 我还从服务器收到许多邮件,说明System Load Alert 1 for […]

在IIS上通过PHP发布一个大文件后接收404

我有一个表单,您可以上传XML文件,我的PHP文件parsing并将文件导入数据库。 当我发布一个50 MB或更less的文件,它的工作原理。 但是当我发布一些更高的东西时,它会从IIS返回“找不到404页面”。 为什么是这样? 它应该返回一个500错误呢? 在事件查看器中找不到任何内容,并且没有错误返回或logging在PHP错误日志中。 我迷路了。 Windows Server 2012 PHP 7.1.1 IIS版本6.2(内部版本9200)

几分钟后,Nginx上的PHP崩溃

我有一个运行OpenWrt Linux的embedded式设备。 我已经安装和configuration了像OpenWrt Wiki中描述的php5-fastcgi和nginx : https ://wiki.openwrt.org/doc/howto/http.nginx此外,我已经安装了php5-mod-session和php5-mod-sockets 。 似乎一切工作正常的基本文件,如图像,静态HTML页面,以及PHP脚本。 我的网页有一个JS脚本(AJAX),它每秒轮询一个PHP脚本。 大约5到10分钟后,在所有PHP页面上发生502 Bad Gateway错误。 如果我检查我的Linux机器上正在运行的进程,我可以看到,进程php5-fastcgi不再运行。 PHP日志是空的,Nginx的日志只显示到FastCGI服务器的连接错误。 我知道在互联网上有很多这方面的话题,但我还没有find解决scheme。 也许有人可以帮忙! 感谢所有的build议!

PHP到MySQL使用SSL

我有一个远程MySQL服务器,需要我使用SSL进行连接。 我可以使用我的terminal连接到它。 但是当我尝试使用PHP连接到它时,出现以下错误: SSL3_GET_RECORD:wrong version number 看起来像OPENSSL握手失败,原因可能是我的PHP试图使用SSL3连接到它。 MySQL服务器仅支持TLSv1.2。 有没有办法强制PHP使用TLSv1.2连接? 这是我用来连接的代码: <?php ini_set ('error_reporting', E_ALL); ini_set ('display_errors', '1'); error_reporting (E_ALL|E_STRICT); $db = mysqli_init(); mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $db->ssl_set(NULL, NULL, '/path/to/ca-cert.pem' , NULL, NULL); $link = mysqli_real_connect ($db, 'hostname', 'user', 'password', 'dbname', 3306, NULL, MYSQLI_CLIENT_SSL); if (!$link) { die ('Connect error (' . mysqli_connect_errno() . '): ' […]