Articles of PHP的

检查PHP-FPM是否正在工作

我刚刚安装了Plesk 12,它通过apache服务器内置了一个nginx服务器。 关于启用PHP-FPM,我看不到使用phpinfo(); function…认为该网站工作得很好。 另外,在尝试这些 – 1.)telnet 127.0.0.1 9000 结果 = telnet: could not resolve 127.0.0.1/:9000: Servname not supported for ai_socktype 2.)ps -ef | grep php-fpm 结果 = root 3188 1 0 03:23 ? 00:00:01 php-fpm: master process (/etc/php5/fpm/php-fpm.conf) www-data 3194 3188 0 03:23 ? 00:00:00 php-fpm: pool www www-data 3195 3188 0 03:23 ? […]

Docker分离进程和源代码控制

我正试图围绕一个Web应用程序的Docker化的最佳结构。 因此,使用Docker的最佳实践build议之一是每个容器一个进程 。 那么,我把我的应用程序的源代码? 假设我正在制作一个简单的nginx和php应用程序。 每个容器规则的一个进程build议有一个nginx容器,它提供静态资源并将PHP请求代理到一个php-fpm容器。 现在我在哪里放源代码? 我是否将它保存在一个单独的容器中,并使用Docker中的volumes_from组合来让这两个容器访问代码? 还是我build立每个容器内的源代码(我认为这使版本更容易)? 什么是最好的做法呢?

Nginx的 – 下载文件,如果我只让自己看到它

location = /index.php { allow MY-IP-HERE; deny all; } 有了这个configuration,因为我不希望别人看到我在维护中的工作,每当我去index.php下载文件,而不是让我看到它。 但是,如果我禁用它,我可以查看它就好了。 我在这里错过了什么? location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in # php.ini # With php5-cgi alone: fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; }

PHP内容从来没有被浏览器caching?

我已经为一个网站运行了一些testing,涉及如何dynamic内容(通过PHP / nginx在这种情况下)获取各种浏览器caching。 我得出的结论是,即使在响应中没有Cache-Control和Expires参数,即使我不发送POST请求,我也不会从caching中取出php文件,即使在移动浏览器中也是如此只需按照页面的链接。 他们总是redownloaded。 相比之下,css / js / image文件是从caching中获取的。 这对我来说很好,因为我希望dynamic的html总是要打到后端,并且有一个以Varnish或者我自己的php / filesystem实现forms的caching机制。 这通常是默认情况下的预期行为? 顺便说一下,我正在使用会话cookie。

$ .ajaxfile upload超时与大文件

我有一个运行在NGINX Web服务器上的PHP应用程序。 我们发现一个问题,上传时,大文件导致$ .ajax超时。 我被告知$ .ajax超时值将无法帮助,因为这是一个浏览器与服务器问题。 有没有解决这个问题的常见做法?

PHP内容长度与自定义内容交付脚本不匹配

今天是个好日子, 当开发一个爱好网站时,我遇到了以下问题。 为防止未经授权的用户访问服务器上的图像文件,我将包含图像的文件夹设置为拒绝 – 全部在nginx中。 这工作正常,但是当我使用下面的PHP脚本来访问该文件夹中的图像文件,Chrome随机拒绝加载它们给出以下错误:'net :: ERR_CONTENT_LENGTH_MISMATCH'。 随机我的意思是有时图像将加载罚款。 我已经尝试在readfile()调用之前和之后刷新输出缓冲区,但没有任何东西似乎解决了这个问题。 提前谢谢帮助我! PS:如果你想看到更多的源代码/configuration文件只是让我知道。 PHP脚本: <?php if(!empty($_GET['tconst'])) { //Included login script contains this method if(login_check($mysqlisecure)) { $tconst = preg_replace( '#[^.\w]#', '', $_GET['tconst'] ); $file = "{$_SERVER['DOCUMENT_ROOT']}/content/posters/{$tconst}.jpg"; if (file_exists($file)) { $filesize = filesize($file); header('Expires: '.gmdate('D, d MYH:i:s \G\M\T', time() + (60 * 60 * 24))); header("Content-Type: image/jpeg"); header("Content-Length: […]

Nginx允许访问特定的位置,并返回所有其他的444

我试图做到这一点,所以我的默认服务器只允许访问一个PHP文件进行AWS ELB的健康检查。 我需要PHP来服务它,所以它知道PHP在实例上运行/运行。 我能够做到以下几点,拒绝访问403: server { listen 443 ssl; location /path/elb.php { fastcgi_param SCRIPT_FILENAME /path/to/elb.php; include fastcgi.conf; allow all; } deny all; } 但是,理想情况下,我想使用return 444; 而不是deny all; 。 看来,使用return 444; 取代上面的位置声明,因为它不起作用。 任何build议,或正在使用deny all; 最好的我会得到我的情况? 谢谢!

添加从$到$ .php重写后,nginx CSS中断

如果我将下面一行添加到我的nginxconfiguration中,它会打破我的网站,并将运行没有CSS: location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|svg|xml)$ { access_log off; expires 30d; } location / { try_files $uri $uri/ $uri.php =404; rewrite ^/(.+)$ /$1.php last; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } 如果我评论重写条件,一切都会正常工作。 我能做些什么来使这两个工作,重写条件和CSS样式表? 编辑:我有一个新的问题,现在所有的文件,如test.php工作正常,没有写.php ,但像users/文件夹将无法正常工作,我仍然File not found ,通常应该采取index.php或index.html从文件夹的index.html ,我怎么能提供这两个function? 添加.php文件并使用inde.php/html文件夹?

我怎么能有一个容器中的nginx和另一个php-fpm?

我正在尝试创build两个docker集装箱。 一个会包含nginx,另一个会包含php-fpm。 这是我docker-compose.yml : version: '2' services: nginx: build: ./nginx ports: – "80:80" – "443:443" fpm: build: ./php volumes: – ./php/code:/var/www/html/ NGINX 这是我的nginx容器的Dockerfile : FROM nginx:最新的RUN rm /etc/nginx/conf.d/default.conf COPY ./default.conf /etc/nginx/conf.d/ 而且,这里是我的default.conf : server { listen 80; server_name localhost; root /var/www/html; error_log /var/log/nginx/localhost.error.log; access_log /var/log/nginx/localhost.access.log; location / { # try to serve file directly, fallback […]

如何在ubuntu 14.04上设置多个PHP-FPM主站?

我一直在关注这个教程 ,为我的每个wordpress多站点安装设置多个PHP-FPM主站,以便它们可以独立于其他APCcaching和其他选项运行。 按照指示信,每个新的php5-fpm init.d脚本不会实际初始化或执行任何操作。 另外/var/run/php5-fpm-master2.pid和php5-fpm-master2.sock没有被创build。 考虑到我遵循指示,我假设他的distro/package版本是不同的,或者我错过了行之间的东西。 任何人愿意分享如何在Ubuntu 14.04上正确设置多个PHP-FPM主(从apt-get标准的php5-fpm)?