Articles of PHP

memcache和memcached会话不会持久

所以我遇到了一个持续存在于应用程序中的会话问题,即使用memcached php驱动程序,而另一个现有的应用程序正在使用memcache驱动程序。 在服务器上,我看到都安装了 我也看到在PHPconfiguration注册保存处理程序包括memcache和memcached,但“session.save_handler”PHPconfiguration值设置为memcache 那会是会话不能在试图使用memcached驱动程序的应用程序中工作的原因吗? 或者应该这样做,因为memcached,虽然不是默认的,是一个注册保存处理程序。 我知道memcached守护进程和连接工作,因为我成功地通过使用memcached驱动程序保存caching。 我如何解决这个问题,可能会在任何地方显示错误或日志?

suhosin不允许在限制内增加

我在/var/log/syslog收到了很多以下错误消息: May 27 10:29:58 ********* suhosin[30143]: ALERT – script tried to increase memory_limit to 2145386496 bytes which is above the allowed value (attacker 'REMOTE_ADDR not set', file 'unknown') 我的memory_limit和我的suhosin.memory_limit都设置为3072M 为什么suhosin不允许增加到2145386496字节(2046M),它低于设置的memory_limit和设置的suhosin.memory_limit?

Apache Web服务器间歇性停顿

我们的SOAP Web服务器在CentOS上的Apache上运行,并大量使用MySQL。 服务器需求很大 – 大多数请求都很小,只涉及两到三个MySQL查询,但是其中有很多需求 – 在高峰时间可能达到每秒几百个。 每个请求的数据stream量通常小于1Kb,通常只有几个字节。 这个硬件运行的是相当不错的,有32个内核的18个核心,而且它的处理能力非常好。 CPU使用率从来没有超过30%,物理内存消耗从未超过50%。 然而,每隔一段时间,服务器似乎就会停顿,Apache窒息而起。 这可以持续大约一分钟,然后再松开,正常的服务恢复。 我已经深入分析了这个问题,看看摊位里发生了什么。 Apache在连接上已经超越了,几乎所有这些都处于“阅读”状态。 CPU使用率下降到几乎没有什么,内存使用不会改变,networking和磁盘IO都直线下降,所以看起来像系统是完全空闲的。 在做了大量的Googlesearch之后,我被引导认为这可能是因为某些时候出现了设置 – networking连接没有被快速释放,Apache耗尽。 这就解释了为什么Apache会在一段时间后恢复正常运行,等待它们全部超时,然后进行。 做一个'netstat -an'会支持这个,因为我在TIME_WAIT中看到很多连接。 但是,我已经减less了Apacheconfiguration中的各种超时设置,并且还在sysctl.conf中使用了各种networking设置,但是没有任何东西可以解决问题。 Apache的错误日志中没有任何东西。 我试过使用'ab'来强调testingApache – 这似乎会导致间歇性失速稍微发生一些,但是这些都是我真正能够衡量的。 Apache和MySQL的最大连接数都设置为高值 – 实际的并发连接永远不会closures,除非在Apache连接超时失速的情况下。 我真的不知道还有什么可以尝试的。 任何想法或指针我可能会在这里失踪? – 编辑 – 一些额外的观察。 当停顿发生时,我注意到ESTABLISHED状态中的连接数量大大增加,然后CLOSE_WAIT中的数字在几秒钟之后。 而且,当发生停顿时,“套接字侦听队列溢出次数”和“忽略同步到套接字套接字”的次数增加相当快。 在摊位之间,这些数字根本不会改变。 我不确定这些数字是否是摊位的原因或结果。 任何进一步的帮助将不胜感激。

Laravel 4.1上的nginx路由错误404

我在nginx服务器上遇到了laravel的路由问题。 它显示了一个“404找不到”的所有路线,除了默认的,非常类似于这个问题: https : //stackoverflow.com/questions/21091405/nginx-configuration-for-laravel-4 解决这个问题的方法: 服务器{ 听80; server_name sub.domain.com; 设置$ root_path'/ srv / www / htdocs / application_name / public'; root $ root_path; index index.php index.html index.htm; try_files $ uri $ uri / @rewrite; 位置@rewrite { 重写^ /(。*)$ /index.php?_url=/$1; } 位置〜\ .php { fastcgi_pass 127.0.0.1:9000; fastcgi_index /index.php; 包括/ etc / nginx / fastcgi_params; fastcgi_split_path_info […]

禁用webtatic repo分散在centos上的错误

我安装了PHP的“webtatic”回购,这只是造成麻烦。 当我尝试运行yum –disablerepo=webtatic distro-sync它会返回: Transaction Check Error: file /usr/lib64/mysql/libmysqlclient.so.16.0.0 from install of mysql-libs-5.1.73-3.el6_5.x86_64 conflicts with file from package compat-mysql51-5.1.54-1.el6.remi.x86_64 file /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 from install of mysql-libs-5.1.73-3.el6_5.x86_64 conflicts with file from package compat-mysql51-5.1.54-1.el6.remi.x86_64 Error Summary ————- 我怎样才能禁用这个回购和摆脱这个问题? 在/etc/yum.repos.d上输出ls [root@ltfs1968 yum.repos.d]# ls atomic.repo epel.repo r1soft.repo rhel-source.repo webtatic-archive.repo webtatic-testing.repo 我的目标是摆脱这一点,回到默认的回购PHP 5.3。

在centos 6.5上安装mcrypt for php54

我对VPS是全新的,并且正在尝试在centos6.5服务器上安装php54。 我已经升级了PHP版本到5.4似乎工作。 目前使用php5.4.31 不过,我现在需要安装mcrypt。 我试过了: yum install php-mcrypt 我已经build立了remi和epel版本库,并且安装到目前为止还是有一个依赖错误: Loaded plugins: fastestmirror, security No such command: snstall. Please use /usr/bin/yum –help [root@XXXX~]# yum install php-mcrypt* Loaded plugins: fastestmirror, security Determining fastest mirrors epel/metalink | 26 kB 00:00 * base: centos.serverspace.co.uk * epel: mirror.bytemark.co.uk * extras: mirror.bytemark.co.uk * rpmforge: www.mirrorservice.org * updates: centos.hyve.com base | 3.7 […]

使用Chef PHP Cookbook部署Zend Opcache

我是厨师新手。 我尝试使用Chef的PHP食谱来编写一个安装Zend OpCache(PHP 5.4,因为还没有内置)的配方。 我尝试使用php_pear php_pear "opcache" do package_name "ZendOpcache" action :install preferred_state "beta" zend_extensions ["opcache.so"] directives node['php']['opcache']['directives'] end 但生成的.ini文件具有ZendOpcache作为variables的前缀 ubuntu@webserver3:~$ cat /etc/php5/conf.d/ZendOpcache.ini ; configuration for php ZendOpcache module zend_extension=/usr/lib/php5/20100525/opcache.so ZendOpcache.revalidate_freq="60" ZendOpcache.enable_cli="1" ZendOpcache.memory_consumption="128" ZendOpcache.interned_strings_buffer="8" ZendOpcache.fast_shutdown="1" ZendOpcache.max_accelerated_files="4000" ZendOpcache.save_comments="0" 前缀应该是opcache 。 然后我尝试自己手动创build.ini文件 template "#{node['php']['ext_conf_dir']}/opcache.ini" do source "extension.ini.erb" cookbook "php" owner "root" group "root" mode "0644" variables(:name => […]

在Apache安装的什么条件下是AddHandler应用程序/ x-httpd-php .php所需的?

我是一名安全研究人员,已经遇到多种情况,可以利用这些file upload表单,允许攻击者控制的PHP代码被服务器parsing,从而导致远程执行代码。 此漏洞的根本原因似乎是默认情况下在以下Linux Distros的Apacheconfiguration中启用的传统设置: CentOS 5.8 CentOS 6.5 RedHat 5.10 RedHat 6.5 可能还有其他的。 设置是: AddHandler application/x-httpd-php .php 这个设置的效果是告诉服务器名称与\ .php匹配的文件应该被解释为PHP代码。 如果攻击者上传一个名为shell.php.jpg的图像,并在其中embeddedphp代码,并导航到该页面,则服务器将以服务器用户的身份执行该脚本。 我build议的补救措施是通过发表评论来禁用此设置。 我的推理是.php文件已经有一个隐含的处理程序内置到Apache,它告诉服务器解释代码为PHP,所以这个设置在我看来是多余的。 我觉得这是旧版本的CentOS和RedHat所带来的遗留设置,最新版本没有这个设置。 我的问题是: 什么情况下会禁用此设置中断function?

Android浏览器将随机数字添加到php文件

不知道这是否应该在这里或Android论坛 – 真的取决于解决scheme。 我遇到了一个数字问题或散列式字符随机添加到我的PHP页面。 这似乎只发生在所有的Android浏览器。 一个简单的testing页面,其中唯一的内容是单词“testing”: example.com/test.html VS example.com/test.php 在其他浏览器中都可以正常显示,导致普通页面显示“test”,但是在Android(Chrome,Android,Firefox,Opera)的浏览器中查看test.php页面会呈现'test0'。 这是添加'0',我不知道为什么。 对于我更复杂的PHP页面,它实际上添加了一堆看起来像散列的字符。 在HTML内容加载之前,它会出现一秒钟,然后随机分散到页面中的所有内容中。 这是一个服务器问题或Android的错误? 有什么想法吗?

使PHP curl使用openssl而不是NSS

有谁知道我怎么能强迫PHP使用openssl而不是NSS在RHEL 6上curl? 我已经安装了curl-openssl-7.30.0-1.1.el6.x86_64.rpm,但我怎么能告诉PHP使用它? 其实有没有办法告诉PHP使用curl openssl而不重新编译php?