如何更改 Ubuntu 20.04 上控制台中使用的 PHP 版本?我/etc/php
文件夹里有所有版本,但不知道命令行版本的配置在哪里。
在我的主笔记本电脑上运行 Ubuntu 22.04。我使用4TB 十铨 MP34 NVMe作为我的主驱动器。文件系统是ext4
.
昨天(11 月 16 日),在下载一些大文件(大约 300 个文件,总共 600GB)时,突然我的笔记本电脑开始出现异常。一切都变得非常慢,我的系统崩溃了。我能够使用可启动 USB 和fsck
. 然而,笔记本电脑的速度仍然很慢,并且 NVMe SSD 变得非常热,大约 75 摄氏度(通常低于 35 度)。磁盘只有大约 35% 已满。我在磁盘上运行基准测试,速度不一致并且非常慢。经过几分钟的工作后,磁盘进入只读模式。
最初,我认为存在一些硬件问题。我打开笔记本电脑并用异丙醇清洁触点。我换了另一个NVMe,笔记本电脑工作正常。我重新安装了最初的 NVMe,笔记本电脑又变得非常慢。在某个时候,我决定运行sudo fstrim -av
,大约需要 5-6 分钟(经过修剪2.9TB
),之后笔记本电脑开始像新的一样工作。我已经使用它超过 5 天了,没有任何问题。我做了一些压力测试和基准测试,一切正常。
我在 11 月 16 日编写的手册的输出sudo fstrim -av
:
/boot/efi: 504.9 MiB (529436672 bytes) trimmed on /dev/nvme0n1p1
/: 2.9 TiB (3138692276224 bytes) trimmed on /dev/nvme0n1p2
Run Code Online (Sandbox Code Playgroud)
看起来fstrim.service
工作正常:
cat /var/log/syslog | grep -a fstrim
Nov 13 01:43:37 …
Run Code Online (Sandbox Code Playgroud) 我和我的同事最近花了很长时间试图弄清楚为什么 PHP 7 在浏览器中显示为纯文本而不是运行。我们发现了一个包含这些命令的 StackOverflow 已投票答案。
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)
它解决了问题,但不幸的是答案没有包含这些命令的作用的解释。我们理解sudo service apache2 restart
但不理解前两行。我在网上搜索,但只找到了此代码的更多实例,但没有真正解释它是如何工作的或为什么需要它。
这些命令有什么作用以及何时需要?
我正在尝试编写一个 shell 脚本,它将使用此命令修复目录中的每个 .mkv 文件
ffmpeg -i filename.mkv -c copy filename-fixed.mkv
Run Code Online (Sandbox Code Playgroud)
我必须恢复包含数百个文件的磁盘,其中一些文件已损坏。他们目前根本不玩或使我的系统崩溃。我已识别出所有损坏的文件,它们位于自己的目录中。我认为最简单的方法是在所有文件上运行脚本,但我对脚本很陌生
使用Ubuntu 22.04。我按照他们的官方手册添加了nodejs
存储库。然而,当我这样做时,我得到:sudo apt update
N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'https://deb.nodesource.com/node_20.x nodistro InRelease' doesn't support architecture 'i386'
Run Code Online (Sandbox Code Playgroud)
我做了一些研究并解决这个问题,我必须添加[arch=amd64]
选项/etc/apt/sources.list.d/nodesource.list
。但是,当我打开文件时,源已经有一个选项:
[signed-by=/etc/apt/keyrings/nodesource.gpg]
Run Code Online (Sandbox Code Playgroud)
如何在apt
s中使用多个选项值sources.list
?
我尝试用,
(逗号)分隔它们,但这不起作用:
deb [arch=amd64,signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main
Run Code Online (Sandbox Code Playgroud) 我在几个带有子文件夹的文件夹中有大约 250,000 个文件。\n正在寻找如何在所有文件夹及其子文件夹中查找重复文件名的解决方案。我的操作系统是 Ubuntu 22.04,使用bash
.
我更喜欢bash
命令/脚本解决方案。但是,也欢迎有关类似工具的建议fdupes -r
(但检查文件名是否相同,而不是其内容)。
.
有些文件的文件名中包含多个(句点)。例子:file_Name2.1.png
.png
,.JPG
,.jpeg
目录结构非常简单:./[YEAR]/[MONTH]/[IMAGE_NAME].[EXTENSION]
. 例如:
tree -a\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 2022\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 12\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file1.png\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 File2.png\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 2023\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 01\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file1.jpg\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 file3.png\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 file4.png\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 02\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 FILE1.png\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 FILE4.PNG\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 File5.png\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 File6.png\n …
Run Code Online (Sandbox Code Playgroud) php.ini
位于/etc/php5/apache2/php.ini
和 的文件没有重大区别/etc/php5/cli/php.ini
。但是, <?php phpinfo(); ?>
当从浏览器访问时,显示OpenSSL 支持已启用,而php -info | grep openssl
在终端中执行则给出 OpenSSL support => disabled (install ext/openssl)
.
我有最新版本libssl-dev
并openssl
安装了。如何为 cli 版本启用 OpenSSL?
我在 Ubuntu 14.04 机器上使用 php-fpm 5.5.9 和 nginx 1.4.6。我已经使用 apt-get 包管理器安装了它们。我无法获取我的 index.php 脚本在错误日志中以及浏览器上遇到的错误的堆栈跟踪。我从 stackoverflow 和其他文章中搜索并实现了几个解决方案,但没有一个对我有用。这是我的 nginx conf 和 php-fpm conf 文件。如果我犯了任何愚蠢的错误,请帮助我。
Nginx 配置:
location ~ \.php$ {
# With php5-fpm:
#try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_pass 127.0.0.1:7777;
fastcgi_index index.php;
}
Run Code Online (Sandbox Code Playgroud)
PHP-FPM 配置:
error_log = /tmp/php5-fpm.log
Run Code Online (Sandbox Code Playgroud)
PHP-FPM池配置:
catch_workers_output = yes
slowlog = /var/log/php-fpm/$pool.log.slow
listen = 127.0.0.1:7777
php_flag[display_errors] = On
php_admin_value[error_log] = /tmp/fpm-php.www.log
php_admin_flag[log_errors] = On
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我正在尝试使用sudo apt-get install php-fpm
. 当我执行该命令时,它给出了错误:E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
当我输入时,sudo dpkg --configure -a
它显示:
Setting up mariadb-server-10.1 (1:10.1.44-0ubuntu0.18.04.1) ...
,并且需要永远。我尝试过重新启动,但这并没有多大作用。
我需要安装 php-fpm (和其他),所以我不太确定要做什么。
我读过这些帖子:并按照他们所说的做了,但无济于事
我按照此处的指示将服务器 API 条目切换为 FPM/FastCGI.from Server API Apache 2.0 Handler。当启用 mpm_event 且 a2dismod php7.4 时,phpinfo.php 仅显示:
<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)
阿帕奇状态:
Apache Server Status for localhost (via 127.0.0.1)
Server Version: Apache/2.4.46 (Ubuntu) mod_fcgid/2.3.9 OpenSSL/1.1.1f
Server MPM: event
Server Built: 2020-11-13T01:36:38
----------------------------------------------------------------------
Current Time: Saturday, 27-Feb-2021 13:08:50 EST
Restart Time: Saturday, 27-Feb-2021 13:05:50 EST
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 3 minutes
Server load: 0.80 0.95 1.07
Total accesses: 14 - Total Traffic: 190 kB …
Run Code Online (Sandbox Code Playgroud) 注意:我知道这是一个 PHP 问题,但是 - 我在这里可能是错的 - 但我认为这个问题可能只存在于 ubuntu 上的 PHP、composer 中。
无论如何,几乎每个教程,包括composer本身都说运行composerrequire
命令来安装包,例如
composer require robmorgan/phinx
Run Code Online (Sandbox Code Playgroud)
然而,对我来说,在 Ubuntu 上,这一切所做的就是挂起终端,直到我Ctrl+c终端。
我怎样才能让这个命令起作用?
我在实时网络服务器上犯了一个愚蠢的错误,需要一些帮助才能恢复。
当以 root 身份登录时(错误 #1),我对 /usr/bin/php 执行了一个文件 wget,它创建了目录 /usr/bin/php,其中包含一个文件(错误 #2)。虽然我有系统备份其中没有任何内容可以显示以前的内容,我真的不想进行完整的系统恢复或重建。
php cli 现在无法工作(也许还有其他东西?),尽管软件包列表确实显示它仍然已安装。值得庆幸的是,网站仍在运行,但 ispconfig3 控制面板变得不稳定,因为它依赖于使用 php 的 .sh 文件。
有没有办法在不让事情变得更糟的情况下恢复过来?
root@VPS:# ls -al /usr/bin/php
ls: cannot access '/usr/bin/php': No such file or directory
root@VPS:# php
Command 'php' not found, but can be installed with:
apt install php7.2-cli
apt install hhvm
root@VPS:# apt list --installed | grep php
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
libapache2-mod-php/bionic,bionic,now 1:7.2+60ubuntu1 all [installed]
libapache2-mod-php7.2/now 7.2.19-0ubuntu0.18.04.2 amd64 …
Run Code Online (Sandbox Code Playgroud)