AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[php7](server)

Martin Hope
Zippy1970
Asked: 2022-03-01 09:01:10 +0800 CST

将 Debian Buster 升级到 Bullseye 后,Wordpress 站点不再更新

  • 0

今天我将我的网络服务器从 Debian Buster 升级到 Bullseye,这实际上是一个非常简单的升级。在我尝试访问服务器上的几个 WordPress 站点之前,一切似乎都正常。起初我收到一些关于缺少 MySQL 模块的错误。我从 PHPMyAdmin 收到的错误消息给了我一个更好的线索:它说它缺少 mysqli 模块。

所以我安装了它, apt install php7.4-mysqli 这实际上让我的 WordPress 网站再次运行。

然而,现在唯一的问题是我无法更新 Wordpress。每次我尝试更新 WordPress 时,都会出现错误:

WordPress 更新错误

我怀疑我需要安装suphp。但在我这样做之前,任何人都可以确认情况确实如此吗?还是在从 Buster 升级到 Bullseye 后我需要做其他事情?

编辑: 我花了很长时间才弄清楚到底发生了什么。现在我知道了,我不知道如何解决这个问题。

WP给出的错误消息实际上是不正确的。事实证明,它能够在正确的文件夹中很好地解压缩更新。但是当它检查文件是否真正解包时,它会出错。问题在于update-core.php中的这段代码:

foreach ( $roots as $root ) {
  if ( $wp_filesystem->exists( $from . $root . 'readme.html' )
    && $wp_filesystem->exists( $from . $root . 'wp-includes/version.php' )
  ) {
    $distro = $root;
    break;
  }
}
    
if ( ! $distro ) {
  $wp_filesystem->delete( $from, true );
  return new WP_Error( 'insane_distro', __( 'The update could not be unpacked.' ) );
}

它在这里所做的只是检查它刚刚将 zip 文件解压缩到的文件夹中是否存在两个文件。这失败了。原因如下:

我使用 FTP 方法安装更新。因此,当我告诉它更新时,它首先会确定应该将 zipfile 下载到的文件夹。此文件夹存储在$working_dir中,并从那时起用于其余的更新过程。服务器上的真实路径是,/domains/domainname.com/htdocs/wp-content/upgrade/但是由于 FTP 用户是 chroot 的,WP 会查找并存储/htdocs/wp-content/upgrade/。更新文件下载到此文件夹,然后解压缩。

接下来它会进行上述检查。这失败了,因为它试图在/htdocs/wp-content/upgrade/真实位置为/domains/domainname.com/htdocs/wp-content/upgrade/.

我理解为什么它可以很好地下载软件包(因为 FTP 用户是 chroot 的)。但我不明白为什么它在解压之后没有失败,但是在检查文件是否存在时它确实失败了......

我检查了所有 php 设置,并没有发现与 Debian 升级之前的设置有什么不同……

wordpress php7 debian-bullseye
  • 1 个回答
  • 145 Views
Martin Hope
lepe
Asked: 2021-10-16 02:45:15 +0800 CST

PHP5 到 PHP7 意外增加容器内的内存使用量

  • 0

上周我们更新了几个 wordpress 站点,这些站点通过 LXD 将 Alpine Linux 作为主机(Ubuntu 20.04)中的容器运行。

更新摘要如下:

Alpine Linux v3.8 -> 3.14
PHP 5.3.6 -> 7.4.24
Wordpress 5.0.3 -> 5.7.3

问题

在这些更新之后,我们开始遇到服务器性能问题,我们发现更新后的容器使用的内存(常驻内存)是旧容器的 3 倍或更多(大约 150MB 对 50MB),这导致服务器开始更频繁地交换。

在旧版本中(使用 PHP 5.3),php(进程)使用的内存会随着页面的处理(如预期的那样)增加,但在它完成后,它会恢复正常。换句话说,类似于:10MB---> 95MB---> 10MB。

在更新的容器中,所使用的内存php以相同的方式增加,但不会恢复到“正常”:10MB---> 95MB---> 95MB。每次使用新进程时,都会发生同样的情况,通过可用子进程的数量(在本例中为每个站点 4 个)增加内存使用量。

我试过的

  • 将 PHP 版本降级到7.2.x和7.3.x:同样的事情
  • 更新为php 8.0.11:同样的问题
  • 使用apache2而不是lighttpd(当前 php 作为 fcgi 运行):相同的行为
  • 仅更新 Alpine 和 PHP 以确定 Wordpress 是否可能是原因:wordpress 不是原因
  • 在没有插件的情况下运行 wordpress(以了解某些插件是否可能导致问题):没有变化
  • 执行了一个简单的连接循环(纯 php):同样的事情
  • 在具有不同 wordpress 站点的不同服务器中测试:相同的行为

它没有恢复内存的原因是什么?如何修复?

更新

  • 我设置了一个干净的Alpine 3.14容器并执行了“简单循环”测试。在这种情况下,常驻内存按预期减少了。但是,一旦我使用实际的 wordpress 站点进行测试,问题仍然存在。
  • 我设置了一个干净的Ubuntu 20.04容器并进行了相同的测试。结果与 clean 相同Alpine 3.14。
linux alpine memory-usage php7 garbage-collecting
  • 1 个回答
  • 124 Views
Martin Hope
Tần Quảng
Asked: 2021-07-29 12:30:42 +0800 CST

如何在已预装 Apache HTTPD 的 CentOS 上安装 PHP?

  • 0

我正在使用 CentOS 7。我想安装 PHP 7,所以我使用remi-php了(最新的 PHP 版本yum是 5.4)。由于HTTPD版本yum太旧,我从源码编译了最新的HTTPD版本。

remi-php但是,当我尝试使用以下命令进行安装时,HTTPD 编译非常顺利:

yum --enablerepo=remi-php71 install php php-cli php-intl php-mbstring php-mcrypt php-mysqlnd

要安装php,yum也会安装旧版本的httpd(虽然我已经编译并使用了最新的HTTPD版本)。如果我继续安装,我的 HTTPD 将抛出一个错误(并且不会启动),但如果我不继续安装,我将没有该php*.so文件并且 apache 不会解析这些.php文件。

那么,如何在php不影响之前编译的 Apache HTTPD 的情况下安装呢?我不希望我的服务器同时拥有两个 Apache HTTPD 实例,并且将来可能会出现问题。

你给出的答案对我很有帮助。

我会很感激你的回答。

centos php apache-2.4 centos7 php7
  • 1 个回答
  • 474 Views
Martin Hope
Ade
Asked: 2021-05-25 15:26:22 +0800 CST

如何在 Centos PHP 7.2 上安装 PHP-intl

  • 0

我的 PHP 7.2 应用程序出现错误Message: Class 'NumberFormatter' not found

我们正在运行:

  • PHP 7.2.34
  • CentOS Linux 版本 7.9.2009(核心)

我尝试安装 PHP-intl,如果我再试一次,它似乎现在可以正常工作,我得到了这个:

# yum install php72-php-intl
# Package php72-php-intl-7.2.34-4.el7.remi.x86_64 already installed and latest version
# Nothing to do

我已重新加载 Apache,但未加载扩展:

  • php -m没有列出模块。
  • /usr/lib64/php/modules不包含intl.so

通过运行,rpm -ql php72-php-intl我可以看到这些文件已安装:

/etc/opt/remi/php72/php.d/20-intl.ini
/opt/remi/php72/root/usr/lib64/php/modules/intl.so

但是 extension_dir 设置为/usr/lib64/php/modules

为什么要安装到这个其他位置?我怎样才能让它安装到正确的模块目录,或者告诉 PHP 从 /opt/remi/php72/root/usr/lib64/php/modules加载 .so 文件的正确方法是什么?

php7
  • 1 个回答
  • 3534 Views
Martin Hope
jpneey
Asked: 2021-03-29 15:17:49 +0800 CST

随机内部服务器错误

  • 1

我们在我们的一个网站上收到随机的内部服务器错误。

这些内部服务器错误有时可能只出现在某些用户身上,但其他用户没有收到它(同时),反之亦然。

多次页面刷新后,所述内部服务器错误消失。

我已经确认这不是脚本问题。我已经使用test.php仅echo测试字符串的 a 对其进行了测试。一旦引发内部服务器错误,即使上述错误也会在test.php几分钟内引发相同的错误,并在几次页面刷新后重新开始工作。

error logs不包含与所述错误相关的任何内容。我已经通过故意访问会引发致命错误和警告的 php 脚本确认错误日志正在工作。抛出的错误和警告都被正确记录。

我还咨询了我们的托管服务,ipower他们已经确认.htaccess我们的托管服务php.ini都是正确的。他们甚至说它PHP已正确安装在我们的服务器上,并且应该开始正常工作。截至目前,我们对此有一个公开的票证,他们仍在 尝试调查。

如果我可以补充一下,我们正在使用opencart 3.0.3.7并且我们网站的确切克隆在我们的一个测试域和所述托管公司的其他服务器上运行良好。

出现上述错误是否还有其他可能的原因?答案似乎是固执己见,但如有必要,请毫不犹豫地投反对票,如果可能,请发表评论,评论您对这个难以确定的奇怪之处的想法

debian apache-2.2 cgi apache-2.4 php7
  • 1 个回答
  • 104 Views
Martin Hope
DhP
Asked: 2021-02-02 15:04:46 +0800 CST

如何在 Arch 上正确设置 Apache 使用的特定 PHP 版本?

  • 1

所以看起来在最近的 Arch 系统升级之后,我的 NextCloud 服务器不再工作,目前给了我"This version of Nextcloud is not compatible with > PHP 7.4. You are currently running 8.0.1."

php -v现在给了我PHP 8.0.1,但我也安装了/usr/bin/php7(PHP 7.4.14)。

我基本上只是将 PHP 用于nextcloud (cur. v20.0.6-1),通过 Apache +php-fpm

所以我想知道选择继续使用的正确“拱形方式”或解决方法是php7什么?(至少目前)

任何方式我可以例如降级php和php-fm包或什么?(最好不要破坏其他东西)。还是我应该只是等待新nextcloud版本与当前php版本兼容?

php arch-linux php-fpm nextcloud php7
  • 1 个回答
  • 2697 Views
Martin Hope
Jordan Ramstad
Asked: 2020-11-12 06:31:29 +0800 CST

Fedora 33/32 - 安装 PHP 7.3

  • 1

看起来很简单,但我无法在fedora 33上可靠地安装php 7.4以外的任何版本(根据remi,32似乎有同样的问题)。

PHP 7.4 是默认安装,但我需要工作的项目由于依赖项在 7.4 中不起作用而被锁定到 7.3 atm。

Remi 存储库也不能安装在 7.4 以下,只有多个版本可以获得 7.3,但是如果你这样做,它也会安装 7.4,虽然你可以告诉 nginx 使用 7.3,但 cli 被锁定到 7.4(我打赌你可以做点什么,只是不确定如何,基本上必须使用php73而不是php用于 cli 命令)。

使用 Fedora 33 的向导可以显示可用的版本以及如何使用。 https://rpms.remirepo.net/wizard/

有没有办法可靠地让 php 7.3 在 Fedora 33 上运行?只要 cli 和 fpm 都可以使用相同的版本,我不介意多版本。

fedora php7 fedora-32
  • 2 个回答
  • 863 Views
Martin Hope
imori
Asked: 2020-09-16 00:08:41 +0800 CST

无法在 Laravel 上部署到 Google Cloud Platform

  • 1

使用“gcloud app deploy”在 GCP 上部署 laravel 时出现以下错误。

ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build ID~~~ status: FAILURE
Error ID: 5888fcc4
Error type: UNKNOWN
Error message: Loading composer repositories with package information
Installing dependencies from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ^7.3 but your HHVM version does not satisfy that requirement.
  Problem 2
    - Installation request for laravel/framework v8.2.0 -> satisfiable by laravel/framework[v8.2.0].
    - laravel/framework v8.2.0 requires php ^7.3 -> your PHP version (7.2.33) does not satisfy that requirement.
  Problem 3
    - Installation request for nunomaduro/collision v5.0.2 -> satisfiable by nunomaduro/collision[v5.0.2].
    - nunomaduro/collision v5.0.2 requires php ^7.3 -> your PHP version (7.2.33) does not satisfy that requirement.
  Problem 4
    - laravel/framework v8.2.0 requires php ^7.3 -> your PHP version (7.2.33) does not satisfy that requirement.
    - laravel/tinker v2.4.2 requires illuminate/console ^6.0|^7.0|^8.0 -> satisfiable by laravel/framework[v8.2.0].
    - Installation request for laravel/tinker v2.4.2 -> satisfiable by laravel/tinker[v2.4.2].


php -v
PHP 7.3.22-1+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Sep  9 2020 06:46:30) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.22, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.22-1+ubuntu18.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

我还检查了 php 版本,但我能够确认它是 7.3

我检查了 composer.json 并在 7.3 中指定

 "require": {
        "php": "^7.3",
            },

我参考网上的资料尝试了“composer install”、“composer update”和“composer upgrade”,但问题没有解决。

我检查了这个站点以了解如何部署

google-cloud-platform laravel ubuntu-18.04 php7 google-app-engine-standard
  • 1 个回答
  • 687 Views
Martin Hope
Sukhdev Mohan
Asked: 2020-09-15 04:44:38 +0800 CST

Centos 7.7 删除重复的 php 7.2 版本

  • 1

我正在使用centos 7.7,客户端为我提供了一个虚拟机,他们在其中不知不觉地安装了相同版本的PHP,即7.2,以两种不同的方式安装了两次,其中一种是通过remi的存储库,另一种是我不确定可能是 yum install php72-php。

我已经用 fpm 和 nginx 配置了 remi 的 php,我想删除另一个,因为我正在使用的应用程序调用了一些 php 脚本,并以某种方式使用了另一个缺少模块并增加了熵的 php。可能吗?如果不是,是否可以将 remi 的 php 7.2 设为默认版本?

任何帮助都是有用的。

centos php7
  • 1 个回答
  • 567 Views
Martin Hope
Yann
Asked: 2020-08-27 14:58:34 +0800 CST

意外删除了 opt/ 文件夹,缺少 librh-php72-php7.so

  • 0

我不小心删除了我的 opt 文件夹。通过重新安装丢失的软件,我可以运行大部分内容。但是 /opt/rh/httpd24/root/etc/httpd/modules/librh-php72-php7.so仍然缺少 httpd 并且重新安装rh-php72-php没有帮助。

yum httpd php7
  • 1 个回答
  • 259 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve