Articles of PHP的

Nginx的memcachecaching和失效

我们目前使用NGINX作为我们的服务器,我们使用memcache来cachingdb查询以及php中的页面。 我们有一个版本编号系统,在任何更新或插入的情况下,这个版本号都会被提升,结果是每个密钥都附加了这个版本号,所以memcache总是会获取新的数据。 它对我们很有用,因为读写%split是80/20%,所以大部分时间memcache将会返回数据,而不会触及数据库。 现在我们打算把这个caching策略移到服务器级别,NGINX和memcache模块一起使用请求URI和版本号cachingGET请求。 只需要一些反馈,我可以如何实现这一点 我可以获取存储在NGINX的memcache中的这个版本号吗? (这将被用来将其附加到请求uri) 我如何处理login用户? (我可以只为一个login用户设置一个cookie,并检查这个cookie是否存在于nginx中,如果它只是将请求传递给后端而不是memcache)

用nginx掩盖PHP GET url

我有一个使用PHP的网站。 这是一个允许某人使用PHP GET调用来search数据库的网站。 然后显示所有符合search的项目。 有许多searchfilter(价格,来源网站,类别)。 这是search后,用户input“蓝色车”和“达拉斯” http://example.com/after_search.php?search_title=blue+cars&search_location=Dallas&price-0=index&price_max=&price_min=&category=every-cat&store=all&max_number=20 有没有办法让它看起来像这样: http://example.com/s/blue+cars/l/Dallas 而不改变代码结束的任何GETfunction? 我也有在网站上运行的JQuery,如果这是可以用来解决这个问题。 注意:我正在使用nginx 编辑1 鉴于下面的build议这似乎是一个nginx的问题。 这是我目前的/ etc / nginx / sites-available / default文件: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name server_domain_name_or_IP; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 […]

在一些连接之后,spawn-fcgi正在死亡

我最近安装了一个新的Ubuntu机器,wordpress,spawn-fcgi和nginx。 每天早上,我都会试着去看看我的博客,但是我得到了一个502错误的Bad Gateway错误。 我试图find一些为什么PHP-CGI死亡但没有find任何东西的日志。 我运行spawn-fcgi像这样: sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid 我只是做了以下testing: 运行spawn-fcgi命令,然后将其封锁。 经过约480个连接,spawn-fcgi死了,我开始得到502错误。 任何想法,为什么会发生,我可以find某种日志?

PHPfile upload部分上传错误

我被困在一个关于file upload的问题上。 我试图将JPG,JPEG或PNG图像上传到文件夹。 我正在读一本书,并按照他们的例子,我的代码现在是这样的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Upload an Image</title> <style type="text/css" title="text/css" media="all"> .error { font-weight: bold; color: #C00; } </style> </head> <body> <?php # Script 11.2 – upload_image.php // Check if the form has been submitted: if ($_SERVER['REQUEST_METHOD'] […]

Web应用程序:可以监控HTTP文件下载的任何方式

我正在研究一个Web应用程序。 它会让用户通过HTTP协议从服务器上下载文件。 这些文件最多可达4 GB。 这些是我的要求和限制: HTTP文件下载进度% 注册,当HTTP文件下载完成 注册,如果HTTP文件下载崩溃 注册,如果用户取消下载 恢复未完成的文件下载 要能够下载高达4GB的文件 应该仅在客户端实现JavaScript / HTML5,在服务器上实现PHP。 可能不会在客户端使用Java或Flash实现。 我的发展环境: 阿帕奇 PHP MySQL的 Windows 7的 我的问题是,尽pipe我已经写了PHP脚本,可以下载大文件,我不能有效地监视中止下载(浏览器closures,取消下载,中止互联网连接)。 PHP函数connection_aborted()捕获所有中止下载的cca的50%。 因此,我的问题是,如果有什么办法可以真正高效,精确地监控下载进度和下载中断吗? 那么使用NGINX或LIGHTTPDnetworking服务器怎么样? 如何编写我自己的LUA或Perl模块的Apache,我将监视PHP输出缓冲区? 我目前的下载脚本: while(!feof($fileObject)) { usleep(100000); //print(@fread($fileObject, $chunkSize)); echo(@fread($fileObject, $chunkSize)); // gradually output buffer to avoid memory problems by downloading large files ob_flush(); flush(); // check if the client was disconnected […]

nginx php fastcgi无法写入,甚至使用自己的权限拒绝权限

嗨,我有权限被拒绝时使用写入文本函数如file_put_contents。 我在centos 6环境中使用nginx,我使用php-fcgi 该问题只能通过设置目录权限777解决,但我不想要解决scheme。 这里的PHP代码 <?php error_reporting(E_ALL); header("content-type:text/plain"); if(isset($_GET['akarapaci'])) {phpinfo();} echo getcwd(); echo "\nscript owner : ".get_current_user()."\n"; echo "\nscript getmyuid : ".getmyuid()."\n"; echo "\nscript getmygid : ".getmygid()."\n"; file_put_contents(dirname(__FILE__)."/X","1"); ?> 结果如下: /var/www/html script owner : nginx script getmyuid : 496 script getmygid : 493 该代码只是简单地写入文件/ var / www / html / X(该文件还没有创build),并有这样的错误 2012/10/27 19:51:59 [error] 1010#0: […]

Magento的Nginx + PHP-FPM + FastCGIcachingconfiguration

你们中的一些人可能已经注意到了Magento最近发布的最近的Magento For Peak Performance白皮书。 尽pipe它主要是为EE用户编写的,但我相信我们也可以使用Community Edition的大部分技巧。 阅读好后,我继续将他们的Nginx + fastcgi / proxycachingconfiguration与我的标准虚拟主机configurationMagento合并,并做了一些小改进。 以下是我想到的: fastcgi_cache_path /tmp/fcgi levels=1:2 keys_zone=MAGE:64m max_size=128m inactive=10h; server { listen 99999; ## Nginx port server_name domain.com www.domain.com; root /www/magento; ## App folder index index.php; location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; access_log off; log_not_found off; } location /index { try_files $uri @fcgi_nocache; } location /checkout […]

nginx php-fpm xdebug netbeans只能启动一个debugging会话

在过去,我使用apache + mod_php + xdebug + netbeans来开发我的网站(服务器是我的本地机器,运行Debian Squeeze),很高兴–xdebug正常工作,debugging会话可以随时启动和停止,当我需要它。 但是,当我转移到nginx + php_fpm + xdebug + netbeans我遇到了一些debugging问题。 我的debugging会话可能会很长 (超过30秒),似乎nginx不能等待这么久,它显示“504网关超时错误” 。 我已经尝试了很多build议来解决这个问题,但没有运气。 虽然对我来说不是很重要,因为debugging会话本身还在继续运行,这只是一点点不舒服的事情。 我的debugging会话只能运行一次,所以,如果我停止它,并尝试再次启动debugging,netbeans无法接受来自xdebug的连接(它写入“等待xdebug连接”,这是永远)。 netbeans重新启动后,debugging会话可以正常重新启动。 在来的情况下,我不明白,debugging是“打开所有的PHP脚本”,并阻止任何其他脚本运行。 例如,我在我的网站的http://mysite.local/index.php上启动debugging会话并使用它。 一段时间后,我注意到,我的adminer (放在intranet.local / adminer.php)没有运行,浏览器试图加载页面一段时间,并显示“504网关超时错误”。 如果我看到这种行为,我可以在netbeans中停止xdebugdebugging会话,并且所有其他脚本开始正常运行。 现在,当我写这个问题的时候,我做了一些调查,发现,如果我开始debugging会话几秒钟,然后停止它,然后重新开始 – 它正常启动。 似乎问题出现一段时间后积极debugging。 我的系统和应用程序:Debian squeeze:2.6.32-5-686 Nginx:1.4.1(来自dotdeb仓库)php5-fpm:5.3.26-1〜d(来自dotdeb仓库)php5-xdebug:5.3.26-1 〜d(来自dotdeb资源库)netbeans:7.3 我的configuration: nginx基本configuration: https : //gist.github.com/MihanEntalpo/6229801 nginx网站configuration文件: https : //gist.github.com/MihanEntalpo/6229781 fastcgi_params文件: https : //gist.github.com/MihanEntalpo/d93fd4105573e1eda56f php-fpm池configuration文件: https : //gist.github.com/MihanEntalpo/6229820 php-fpm […]

安装PECL失败,raphf.so找不到

我正在尝试在运行Ubuntu 14.10和php 5.5.9-1ubuntu4.11的VPS上安装MediaWiki 。 我使用本指南安装了php5。 现在我正在看MediaWiki安装文件。 它告诉我缺less可选的PECL:“警告:intl PECL扩展不可用于处理Unicode标准化,回落到慢的纯PHP实现。 phpinfo()证实了这一点(CTRL + F为“PECL”= 0命中)。 但是,如果我运行sudo pecl install pecl_http我得到一个错误: … checking for ext/raphf support… no configure: error: Please install pecl/raphf and activate extension=raphf.so in your php.ini ERROR: `/tmp/pear/temp/pecl_http/configure –with-http-zlib-dir=/usr –with-http-libcurl-dir=/usr –with-http-libevent-dir=/usr –with-http-libidn-dir=/usr' failed 与上一个SO上的问题相同的错误 。 我已经尝试了所有在答案中提到的事情,包括将三个“extension =”行添加到php.ini中。 试图安装raphf导致: sudo pecl install raphf pecl/raphf is already installed and is […]

curl:没有指定URL – -F:找不到命令

您好我正在使用此代码上传一个bash脚本在Linux上的文件: curl -F aok=2 -F Name='azko' -F dir="@path_to_file;filename=zou.odp" -F "tag=1234" -F "OK=2" -F ecoTime=1 -F -F ckx=no "http://blabla" 但是,我收到的错误: curl: no URL specified! curl: try 'curl –help' or 'curl –manual' for more information ./up.sh: line 2: -F: command not found ./up.sh: line 3: -F: command not found 我已经安装了curl 7.47.0。 到目前为止,我试图把\放在线的尽头,但错误仍然不断。 我错过了什么? 当我直接复制这个代码\放置到terminal它的工作,但这次给出了另一种错误 curl: (43) A […]