Articles of php fpm

服务器运行在高CPU使用率(100%)

我有一个数字海洋液滴上的nginx服务器,有2个CPU和4GB内存。 我正在运行一些小WP网站,没有太多的stream量,但似乎我可以毫不费力地将服务器推到100%的CPU。 我实际上只是垃圾邮件(1-2 /秒)硬刷新,服务器命中100%,并引发错误500。 我对服务器pipe理和Nginx来说还是很新的,所以我试图debugging到我所知道的最好的状态 – 而且我一直回到我的configuration不够好。 服务器信息: 2个CPU 4GB内存 CentOS 7 VestaCP 纯Nginx 仅运行WP站点 Nginx的conf: # Server globals user nginx; worker_processes auto; worker_rlimit_nofile 65535; error_log /var/log/nginx/error.log crit; pid /var/run/nginx.pid; # Worker config events { worker_connections 1024; use epoll; multi_accept on; } http { # Main settings sendfile on; tcp_nopush on; tcp_nodelay on; client_header_timeout 3m; […]

Nextcloud:错误的请求(预计文件大小XXX得到8192)

我正在从ownCloud转换到Nextcloud。 一切似乎工作,只有上传不起作用,但。 每次我通过Web Interface上传,我都会收到“Bad Request”消息。 通过桌面客户端,我还收到了一些额外的信息“坏请求”。 server replied: Bad Request (expected filesize 86622 got 8192) 我为每个上传的文件都得到了这个,除了当然第一个文件大小是不同的,“got”部分总是8192.这看起来似乎有某种8192字节的限制,但是我找不到它。 我最初是在Apache的Docker容器中运行ownCloud,由NGinx通过proxy_pass 。 现在我安装了php5-fpm ,并将其设置为在我的用户帐户下运行(以便Nextcloud将创build具有正确所有权的文件)。 /home/niklas/ nextcloud/ data/ (Nextcloud data directory) nextcloud/ (Nextcloud source code) php-fpm/ (php5-fpm configuration and runtime files) conf www.conf pid sock 我已经从/etc/php5/fpm/php-fpm.conf和pool.d/www.conf分别复制了php5-fpmconfiguration并更新了它们。 您可以在下面findconfiguration。 NGinx的configuration也大多是从这里复制的。 这个错误从哪里来? 不幸的是我不能粘贴这个configuration,因为这个问题的内容太长了。 /家庭/尼古拉斯/ nextcloud / PHP-FPM / conf目录 /home/niklas/nextcloud/php-fpm/www.conf /etc/nginx/sites-enabled/nextcloud.conf 显然这与我运行php5-fpm的方式有关。 当我使用系统configuration的php5-fpm守护程序时,它工作。 […]

亚马逊Linux与PHP7和Nginx不加载PHP

使用Amazon Linux将其安装在全新的Amazon AWS微型实例上。 我已经安装了nginx和php7。 我似乎无法让PHP加载。 sudo yum安装nginx sudo yum安装php70-fpm 在以下位置创build文档根目录 在/ var / www / html等 用户/组是nginx:nginx 编辑php-fpm conf指向正确的用户/组: /etc/php-fpm-7.0.d/www.conf user = nginx group = nginx listen.owner = nginx listen.group = nginx listen.mode = 0664 listen = /var/run/php-fpm/php-fpm.sock 然后我改变了默认的nginx conf /etc/nginx/nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. […]

nginx try_files不执行内部redirect

我试图configurationnginx,所以它会加载没有扩展名的PHP文件,但仍然将缺less文件的请求传递给前端控制器。 我开始了一个大部分的工作configuration,如下所示,从webroot / about.php正确加载“about.php”之类的URL,并正确地将缺less文件的所有请求发送到webroot / index.php: server { listen 80; listen 443 ssl http2; server_name *.example.com; root /srv/example/$host; client_max_body_size 8M; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; large_client_header_buffers 8 32k; ssl_certificate /etc/ssl/certs/example+ca.pem; ssl_certificate_key /etc/ssl/private/example.key; ssl_ciphers '…'; location / { try_files $uri /index.php$is_args$args; } location /blog { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto […]

Debian Jessie的nginx 1.12.0和php7.1-fpm的权限问题

我已经在主文件夹下configuration了php-fpm和nginx进行开发,并且我一直无法解决权限问题。 看起来php7.1-fpm.sock仍然拒绝连接,即使所有权限看起来都是正确的。 错误: root@xps:/var/log/nginx# cat error.log 2017/05/29 00:41:23 [crit] 27326#27326: *1 connect() to unix:/run/php/php7.1-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: sub.tld.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.1-fpm.sock:", host: "sub.tld.com" 每次尝试访问Web根目录时都会发生这种情况,该根目录应显示: <?php echo phpinfo(); ?> 在浏览器窗口中。 nginx.conf user darin darin; […] sub.tld.com.conf用于nginx server_name sub.tld.com root /home/darin/www […] location ~ \.php$ { […]

用Nginx和php-fpm来压制PHP错误

尽我所能,我不能禁止从PHP显示错误消息(使用php-fpm)。 相关文件; /etc/php5/fpm/php.ini:display_errors = Off /etc/php5/fpm/pool.d/www.conf:php_flag[display_errors] = off /etc/php5/fpm/pool.d/www.conf:php_admin_flag[display_errors] = off /etc/php5/cli/php.ini:display_errors = Off 当我打电话给phpinfo()输出如下[图片作为链接,因为这是我的第一篇文章,因此没有足够的声誉,把他们内联,对不起! /imgs/4ttGt​​.png /imgs/4LAah.png 上面显示configuration文件path为/etc/php5/fpm ,加载configuration文件为/etc/php5/fpm/php.ini 。 第二个图像显示display_errors和display_startup_errors Off 。 这表明这些设置已被正确设置,但加载一个错误的页面导致错误的页面,例如; 未知 :preg_replace():不推荐使用/ e修饰符,而是使用preg_replace_callback代替行651上的/path/to/file.php ****未知 :preg_replace():/ e修饰符不推荐使用,而是使用preg_replace_callback代替/第651行的path/到/ file.php (格式如上,所以HTML格式正在被应用) 我也尝试设置ini_set("display_errors", 0); 甚至error_reporting(0); 无济于事。 另外,编辑添加; # php5-fpm -i | grep error display_errors => Off => Off display_startup_errors => Off => Off error_append_string => […]

设置Nginx + PHP来从主目录服务的PHP文件

这里是我的nginx.conf的相关部分,它不适用于位于用户的主目录中的php文件: location ~ ^/~(.+?)(/.*)?$ { alias /usr/home/$1/www$2; autoindex on; } # Serve user directories php files location ~ ^/~(.+?)(/.*\.php)$ { alias /usr/home/$1/www; try_files $2 =404; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_intercept_errors on; include fastcgi_params; fastcgi_param SCRIPT_NAME /~$1$fastcgi_script_name; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; […]

nginx将不会执行PHP代码,当redirect像SEO一样的URL时

与其他与nginx不执行PHP文件相关的问题不同,问题出在我使用SEO而不是PHP脚本时,然后redirect到PHP脚本,而不是执行代码,它将脚本作为纯文本发送给浏览器。 基本上我想要的是每个请求发送到没有实际文件的HTTP服务器,index.php脚本将被执行,并且其输出返回给浏览器。 但是,发生什么事是我得到的index.php内的代码,而不是。 这是redirect完成的configuration文件的一部分。 它实际上是从以前的Apache的.htaccess文件中翻译过来的: location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; } } 这些是PHP相关的指令,实际上这些指令在configuration文件中的前一个之前: location ~ \.php$ { try_files /dd05cf208ebd3d4559f3af75016a1e3d.htm @php; } location @php { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php7.0-fpm/web4.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } 我已经使用了mod_php几十年的Apache,等价的指令刚开始工作,但我是新的Nginx,我不知道从哪里开始debugging。

使用NGINX从多个存储服务器提供图像

我正在开发一个类似于Imgur的项目,但仅限于客户。 我使用NGINX作为我的networking服务器和PHP-FPM / MYSQL来处理剩下的事情。 我将最终遇到的一个速度缓冲区将耗尽服务器空间。 我希望能够根据需要添加更多的存储服务器。 虽然我知道云存储可能是在我的情况下,这是目前不是一个选项的最佳途径。 所以让我说我有3个存储服务器都运行NGINX,我们将其称为storage1,storage2和storage3。 如果我服务的域如i.myimagehost.com的请求,我需要find一种方法告诉NGINX在哪里代理从我的PHP-FPM脚本或MYSQL数据库reqyest。 另一个例子: i.imagehost.com/1234.jpg – hosted on storage1 i.imagehost.com/5678.jpg – hosted on storage2 i.imagehost.com/9012.jpg – hosted on storage3 我想要做的是从我的数据库和/或PHP-FPM获取服务器和文件位置,并让NGINX通过proxy_pass传递它,类似于: location / { proxy_pass http://$storage_server.imagehost.com/$path_to_file; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;} 这只是我试图完成的一个粗略的例子。 由于每个图像名称将是随机的,我将无法设置关键范围来确定服务器。 它需要来自数据库。 我不确定是否有可能这样做,但任何帮助将不胜感激。

如何用PHP正确返回EC2实例中的公共服务器地址

我是新的AWS …我已经build立了一个EC2实例运行Nginx和PHP 7.1.6我也做了一个页面,返回phpinfo(); 细节,但它返回不是我的弹性IP,但内部IP地址: $_SERVER['SERVER_ADDR'] 172.31.9.228 我的EC2已经正确地关联了一个弹性的IP,同时也试图浏览网站的一切运行平稳。 有没有办法让Nginx返回公有IP而不是私有?