对于我的新服务器上的所有站点,似乎一旦nginx提供了一定数量的流量,它就会开始提供“错误 502 - 错误网关! ”。
让我们来看看一些日志和配置...
操作系统:Ubuntu 16.04(服务器)
硬件:6核,12GB内存
面板:ISPConfig
nginx 版本:1.10.3
来自/var/www/example/log/error.log:
11: Resource temporarily unavailable) while connecting to upstream, client: 216.170.123.179, server: example.com, request: "GET /KHFxygk9 HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web3.sock:", host: "example.com", referrer: "http://example.com/"
2017/08/10 06:01:06 [error] 15408#15408: *31372 connect() to unix:/var/lib/php7.0-fpm/web3.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 192.3.114.12, server: example.com, request: "GET /jiPNQjwp HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web3.sock:", host: "example.com", referrer: "http://example.com/"
Run Code Online (Sandbox Code Playgroud)
这是我的配置文件:
[www]
user = …Run Code Online (Sandbox Code Playgroud) 我在/opt/plesk/php/7.0/etc/php-fpm.d/domain.com.conf文件中修改了 pm.max_children 。
我重新启动了 php70-fpm 服务,想检查我的设置是否启用。
如何检查此设置?
我正在使用 Apache 2.4.29 和 PHP 7.0.28 运行 CentOS 7.x VPS,我开始在日志中看到以下内容。我已经从网上的文章中尽可能保护了 php.ini 一段时间了,但我想知道为什么我在执行以下操作时看到 HTTP 状态代码为 200 成功并想知道它在做什么以及如何防止它? 据我所知die(),相当于exit(). 这是已知的较旧的缓冲区溢出漏洞吗?
但最重要的是,它为什么会成功以及它造成了什么损害?
[18/Mar/2018:09:57:21 +0000] "POST /?q=die('z!a'.'x');&w=die('z!a'.'x');&e=die('z!a'.'x');&r=die('z!a'.'x');&t=die('z!a'.'x');&y=die('z!a'.'x');&u=die('z!a'.'x');&i=die('z!a'.'x');&o=die('z!a'.'x');&p=die('z!a'.'x');&a=die('z!a'.'x');&s=die('z!a'.'x');&d=die('z!a'.'x');&f=die('z!a'.'x');&g=die('z!a'.'x');&h=die('z!a'.'x');&j=die('z!a'.'x');&k=die('z!a'.'x');&l=die('z!a'.'x');&z=die('z!a'.'x');&x=die('z!a'.'x');&c=die('z!a'.'x');&v=die('z!a'.'x');&b=die('z!a'.'x');&n=die('z!a'.'x');&m=die('z!a'.'x');&eval=die('z!a'.'x');&enter=die('z!a'.'x'); HTTP/1.1" 200 3564
Run Code Online (Sandbox Code Playgroud) 我想在 php.ini 中启用 sqlite3 但是当我尝试加载 PHP 脚本时会发生此错误:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/sqlite.so' - /usr/lib/php/20151012/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/pdo_sqlite.so' - /usr/lib/php/20151012/pdo_sqlite.so: undefined symbol: php_pdo_unregister_driver in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
但是这个路径中的库是存在的
/usr/lib/php/20151012/sqlite.so
Run Code Online (Sandbox Code Playgroud)
在我的 php.ini 中只更改这一行
extension=pdo_sqlite.so
Run Code Online (Sandbox Code Playgroud)
我的操作系统是:Debian GNU/Linux 9.4 (stretch)
我们正在配置一个新服务器,并在 (php7 / opcache) 和 (php5.6 / xcache) 之间做出决定。
我们运营着一些庞大的电子商务网站,并希望获得最佳性能。
我正在寻找两者之间的比较结果,但在任何地方都找不到。
有没有人有两个并排的经验?
任何人都对 php-fpm 7 和 11.0-RELEASE-p8 有类似的问题,或者知道如何调试它?
几分钟后情况开始,只向客户显示半页。任何页面都显示约 62kb 的内容并带有结尾????????? 4.
php-fpm 的日志文件:
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80582 exited with code 0 after 0.005648 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80584 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80583 exited with code 0 after 0.005877 seconds from start
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80585 started
[18-Mar-2017 15:41:49] NOTICE: [pool www] child 80581 exited with code 0 after 0.007763 seconds from start
[18-Mar-2017 15:41:49] NOTICE: …Run Code Online (Sandbox Code Playgroud) 我正在使用 Ubuntu 16 运行网络服务器并php-fpm处理 PHP 请求。php-fpm已通过apt-get默认 Ubuntu 存储库安装。
根据这个参考我应该能够运行php-fpm -t来测试配置。然而,这只告诉我,没有php-fpm. 我很确定,它是(包含 PHP 处理的网络服务器运行良好,并且服务 php7.0-fpm 已启动并运行)......但没有名为php-fpm.
如何php-fpm在重新加载配置之前使用 PHP 7测试配置更改?
我正在测试使用 Ubuntu Server 18.04 LTS、NGINX 1.14、PHP 7.2.8 和 MySQL 8.0.12 构建的新 LEMP 网络服务器。它是一个使用官方 Canonical AMI 的 AWS EC2 实例。除了数据库连接之外,Web 和 PHP 按预期工作。但是我无法使用在其他(MySQL 5.7 通过 PHP 7.1)情况下运行良好的 PDO 设置和函数连接到 MySQL 数据库。
我可以使用与 PDO 尝试使用的凭据相同的凭据在终端中的服务器(通过 SSH 的 MySQL)上进行可靠连接。还可以使用 MySQL Workbench 和相同的凭据从远程可靠地进行。没有服务器上的防火墙。防火墙仅通过亚马逊的安全组。在端口 3306 完全开放的情况下,PHP 仍然无法使用 PDO 进行连接。尚未尝试使用 MySQLi,但这样做的目的之一是确定并记录如何在此环境中通过 PDO 进行连接。所以这不是一个解决方案。
我了解 MySQL 8 更改了密码安全性(并且我选择在安装过程中使用新的更强的默认密码)。但我也从http://php.net/manual/en/ref.pdo-mysql.php得到印象,从PHP 7.2.4 开始,这应该可以工作......我真的不明白他们在尝试什么虽然在相关段落中说......
预计这还不奏效吗?
编辑:删除了原来无关紧要的配置和故障排除信息。希望这个更清晰/更简短的问题编辑对那些后来发现它的人更有用。
(我正在尝试将一个开源php 项目部署到 nginx。项目本身并不重要。)
我需要将 date.timezone 设置为我的本地时区,因为该项目使用全局设置。
我在我的 php.ini(debian 的 /etc/php/7.0/fpm/php.ini)文件中发现了一行,但因为我不想更改全局设置,所以我在 fpm/conf 中创建了一个新的 ini 文件.d/ 目录中的行:
date.timezone = ('Europe/Berlin')
Run Code Online (Sandbox Code Playgroud)
这是此处记录的受支持时区之一 但是,当我查看我的 php 信息时,时区反映在“本地值”和“主值”中。
我可以拥有它以便只有这个 php 项目设置时区,而全局保持默认 UTC 吗?
命令:
yum install php php-cli php-gd php-curl php-mysql php-zip php-fileinfo php-mbstring
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
Error: Package: php-cli-7.2.12-1.el7.remi.x86_64 (remi-php72)
Requires: libargon2.so.0()(64bit)
Error: Package: php-7.2.12-1.el7.remi.x86_64 (remi-php72)
Requires: libargon2.so.0()(64bit)
Run Code Online (Sandbox Code Playgroud)
我之前在Centos 7上安装过php早期版本,但是从来没有遇到过这样的问题。
从哪里开始解决这个问题?
Centos 7 是全新安装,httpd 和 mariadb 安装没有问题。
我试过了:
百胜干净
yum 发行版同步
编辑:PHP71 安装得很好,但我仍然需要长期运行 PHP72。