Articles of PHP5

PHP / var / lib / php / session完全错误的可能原因

我遇到了问题,我的PHP会议,我不知道如何解决这个问题。 >> df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/vglocal20120426-root00 36274176 32885458 3388718 91% / tmpfs 6176642 1 6176641 1% /dev/shm /dev/sda1 64000 47 63953 1% /boot /dev/mapper/vglocal20120426-tmp00 131072 1703 129369 2% /tmp 和 >> df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vglocal20120426-root00 545G 248G 270G 48% / tmpfs 24G 0 […]

无法configurationPHP错误日志

我在Linux Mint 13 Maya上用php5运行apache2。 我已经定义了一个虚拟主机和这两个条目: ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined 这会在var/log/apache2产生错误和访问日志。 我想让我的PHP错误进入PHP错误日志。 在我的/etc/php5/apache2/php.ini我已经设置: display_errors = On log_errors = On error_log = /var/log/php-errors.log log_errors_max_len = 0 error_reporting = E_ALL | E_STRICT 生成了日志文件/var/log/php-errors.log ,但是它所logging的是两个警告,一些模块已经加载。 我试图在虚拟主机defintion中注释掉日志指令,但是这并没有改变,所有的错误仍然logging在Apache日志中。 我在这里错过了什么?

Apache 2.4:mod_php vs php-fpm的性能

在Apache mod_php和php-fpm的nginx上有很多旧的基准 但是,在2.4版本中,Apache可以使用php-fpm。 有没有比mod_php和php-fpm(都在Apache 2.4.x上)更明智的基准?

FPM有时从错误的池中提供服务

我使用nginx + php5-fpm与多个站点和池。 fpm中的每个池都被chrooted。 通常情况下一切都按预期工作。 但有时(每1/20次请求),特别是如果我之前要求站点B,站点A服务于站点B的内容。我已经查看了nginxconfiguration,它总是使用正确的fpm套接字(查看错误/访问日志) 。 另外每个fpm池都有自己的名字和套接字。 我发现这篇文章描述我的问题,但我没有安装APC …: http : //regilero.github.io/Drupal/English/2013/05/16/Warning_chrooted_php_fpm_and_apc/ 那么有人有一个想法可能是错的?

在Windows Server上使用PHP5.5 VC11NTS安装SSH2

在过去的几天里,我在PHP上安装SSH2连接时一直在苦思冥想。 我目前的设置是VC11非线程安全,我已经在PECL网站上下载了相应的zip文件夹: http : //windows.php.net/downloads/pecl/releases/ssh2/0.12/ 确切的文件名为: php_ssh2-0.12-5.5-nts-vc11-x86.zip ,完全知道版本的差异我已经在下载文件之前加倍检查了一切,PHP如下: 编译器MSVC11(Visual C ++ 2012) 体系结构x86 PHPExtension Build API20121212,NTS,VC11 所以,正确的文件已被下载,我可以确认它们位于正确的目录(C:\ PHP \ ext)中,并且PHP.ini指向正确的文件夹。 现在,包含在这个压缩的存档是 执照 php_ssh2.dll php_ssh2.pbd 这些已被放置在正确的文件夹,并存在。 这些扩展名正确地input到php.ini中,如下所示: 延长=中php_mbstring.dll extension = php_exif.dll; 必须在mbstring之后,因为它依赖于它 延长=激活php_mysql.dll 延长= php_mysqli.dll ; extension = php_oci8.dll; 与Oracle 10gR2即时客户端一起使用 ; extension = php_oci8_11g.dll; 使用Oracle 11gR2即时客户端 延长= php_openssl.dll ;延长= php_pdo_firebird.dll 延长= php_pdo_mysql.dll 延长= php_ssh2.dll 但是启动Microsoft […]

PHP文件不能被nginx中的fastcgiparsing

我新的nginx我的服务器块是 server { listen 25552; server_name *.example.com; root /usr/share/myPackage; rewrite ^/$ /index.php permanent; location ~ ((\.php$)|(^/(status)$)) { fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } access_log /var/log/nginx/console-access.log; } 使用浏览器即时获得状态200,而打我的url – www.example.com:25552/index.php和其他的PHP文件相同的状态,但没有在页面中显示。 虽然我尝试更改url,我能够在我的浏览器上获取我的html,js和图像文件。 我认为是我的PHP文件没有得到parsing请帮助我…. 🙂

200 OK空白页面设置恢复testing虚拟机上的WordPress

我正在testing一个坦率而过时的(遗留的,你能做什么?)CentOS / Apache / MySQL / PHP / WordPress服务器的一个部分备份,通过一个新的相关软件包复制到一个虚拟机。 在经历了许多考验和磨难之后,我已经到了能够成功从http://<site-domain-name>/ (通过主机文件shenanigans进入本地主机)的好的200 OK响应的地步。 不幸的是,身体是零长度的,日志基本上是空的。 phpinfo()报告display_errors , display_startup_errors和log_errors全部打开,并且error_log被设置为/var/log/php_error ,它不存在; error_reporting是一个不错的整洁32767.报告的MySQL,PHP和Apache版本或多或less是预期的:5.0.95,5.3.29,2.2.23; WordPress的是3.9.2。 /etc/httpd/logs/error_log , /etc/httpd/logs/defSite_error_log (特定于虚拟主机)和/etc/httpd/logs/defSite_access_log (也是虚拟主机 -具体)都存在,并间隔写入; 虽然错误日志被设置为debugging级别,但是无论是在时间上还是在内容方面,都没有真正感兴趣的东西出现。 目录(和子目录)中的所有PHP文件都由apache用户拥有,我已经validation了httpd工作进程正在运行,并且都是-rwxr–r– 。 我已经validation了MySQL连接信息在wp-config.php中是正确的。 mysql,mysqli和pdo_mysql都是在phpinfo()输出中启用的。 xdebug + WinCacheGrind表示,PHP在wp-blog-header.php中花费了2001ms,它在wp-settings.php和friends中花费了1830ms,这对于静态页面来说似乎有些过分,尽pipe其中一个在一台慢速笔记本电脑的虚拟机上渲染; 没有什么叫die() 。 /wp-admin/options.php 302-redirect到/wp-admin/upgrade.php ,然后表示不需要升级(?),并有一个指向站点根目录的继续链接。 另一方面,/ /wp-login.php看起来似乎是合理的,除了它使用活动站点的IP地址。 基于此,我进入数据库,并将数字IP切换到域名(即,在wp_options siteurl和home )。 现在/wp-admin/upgrade.php表示在继续之前需要更新数据库。 我可能错误地排除了一些东西,但让我知道我应该运行什么其他检查,我会看看我能做些什么。

206以Content-Length:0返回的部分内容

我正在使用mod_xsendfile (版本>= 0.10 )在Apache服务器上提供大型audio文件。 当我使用header( 'HTTP/1.1 200 OK' );时,文件服务正常header( 'HTTP/1.1 200 OK' ); 但是,这些文件是完整的服务。 因为我想允许访问者在audio文件中查找,所以我接受来自客户端的Range请求。 这是我遇到问题的地方。 当我使用header( 'HTTP/1.1 206 Partial Content' ); ,PHP脚本以Content-Length: 0响应。 这对我来说很奇怪,因为在Content-Range响应中,正确地提到了请求的范围和文件的总文件大小。 例如: Content-Length:0 Content-Range:bytes 0-139143856/139143857 我的PHP脚本用来发送这两个头的头是: $filesize = filesize( $mix_file ); … $start = calculated from HTTP_RANGE or 0; $end = calculated from HTTP_RANGE or $filesize – 1; … header( 'Content-Length: […]

在centOS 6.7上安装带有Apache 2.4.16的PHP 5.6.11安装Ioncube

这就是我在cenOS 6.7上用apache2 2.4.16编译PHP 5.6.11的方法: ./configure –with-apxs2=/usr/local/apache2/bin/apxs –with-config-file-path=/usr/local/lib –with-mysql –with-curl –with-openssl –disable-fileinfo –enable-bcmath –enable-calendar –enable-ftp –enable-libxml –enable-mbstring –enable-sockets –enable-sysvsem –enable-sysvshm –enable-sysvmsg –enable-wddx –with-kerberos –with-mcrypt –enable-sockets –with-zlib –with-pdo-mysql –with-mysqli –with-gettext –enable-cgi –enable-mbstring –with-gd –enable-pdo –with-pdo-mysql –with-pdo-pgsql –with-mysqli=/usr/bin/mysql_config –with-mysql-sock=/var/lib/mysql/mysql.sock '–with-snmp' '–enable-soap' 但是当我在php.ini中joinioncube loader时: zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_5.6.so 它开始给我这个PHP版本检查错误: php -v加载失败/usr/lib64/php/modules/ioncube_loader_lin_5.6.so: /usr/lib64/php/modules/ioncube_loader_lin_5.6.so:undefined symbol:executor_globals PHP 5.6.11(cli)(内置:2015年12月28日17:35:58)Copyright(c)1997-2015 PHP Group Zend Engine版本(c)1998-2015 Zend […]

我如何让Apache为不同的域使用不同的本地PHP.ini?

是否有某种.htaccess指令。 我没有访问httpd.conf。 我有一个fastcgi / cgi模块中的php5。 多个域。 但由于某些原因,所有的域名都指向第一个域php.ini(我在脚本中安装了php) 不知道是否编译到构build,或者如果有一些设置我可以改变某个地方 非常感谢!