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
    • 最新
    • 标签
主页 / user-176397

slackline's questions

Martin Hope
slackline
Asked: 2024-10-11 00:42:15 +0800 CST

更换 RAID1 磁盘 - 分区大小不同

  • 5

我的一个 RAID1 磁盘最近坏了。我买了一个替换磁盘,连接好后Linux RAID使用格式化了它cfdisk。

  • 新的驱动器是/dev/sdc
  • 旧驱动器/dev/sdd

它们总体上看起来具有相同数量的字节和扇区,但是格式化的分区的大小不同......

# fdisk -l /dev/sd{c,d}
Disk /dev/sdc: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors
Disk model: ST8000VN0022-2EL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 952AC4E6-20B9-408D-83CE-AC4AEFBC1075

Device     Start         End     Sectors  Size Type
/dev/sdc1   2048 15628052479 15628050432  7.3T Linux RAID


Disk /dev/sdd: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors
Disk model: ST8000VN004-2M21
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 4069B8CB-4C43-304B-B872-DDB89C0E0AA1

Device     Start         End     Sectors  Size Type
/dev/sdd1   2048 15628053134 15628051087  7.3T Linux RAID

具体来说...

/dev/sdc1   2048 15628052479 15628050432  7.3T Linux RAID
/dev/sdd1   2048 15628053134 15628051087  7.3T Linux RAID

新分区/dev/sdc1小于现有分区。因此...

# mdadm --manage /dev/md127 --add /dev/sdc1
mdadm: Value "kimura:0" cannot be set as devname. Reason: Not POSIX compatible. Value ignored.
mdadm: /dev/sdc1 not large enough to join array

我发现一个线程建议/dev/sdd使用ST8000VN004512E 来模拟每个逻辑扇区 512 字节,尽管每个物理扇区有 4096 字节。

/dev/sdd1现在,我对于调整现有分区的大小以匹配它持谨慎态度/dev/sdc1,因为这是 RAID1 阵列的一部分,其顶部有三个逻辑卷。

找到了一个相关的线程,但那里的问题不同,因为他们有一个 3TB 的 RAID,他们想要分区一个新的 14TB,所以空间不是问题,这里我的新分区比现有的要小。

如果您能提供任何关于如何进行的想法或建议,我们将不胜感激。

raid
  • 1 个回答
  • 44 Views
Martin Hope
slackline
Asked: 2019-08-20 08:22:33 +0800 CST

nginx 反向代理彻底解决 SSL 错误

  • 1

继续尝试将 nginx 配置为使用在本地主机上运行的反向代理来激进化,我现在在遵循有关代理的文档后遇到 SSL 错误,我创建了自己的 SSL 证书。

我的 nginx 配置的相关部分是

location /radicale/ {                                                         
          proxy_pass                    http://127.0.0.1:9468/;                     
          #proxy_pass                   http://46.105.31.182:9468/;                 
          proxy_set_header              X-Script-Name /radicale;                    
          proxy_set_header              X-Forwarded-For $proxy_add_x_forwarded_for; 
          proxy_set_header              X-Remote-User $remote_user;                 
          auth_basic                    "Radicale - Password Required";             
          auth_basic_user_file          /etc/radicale/users;                        
          proxy_ssl_verify              on;                                         
          proxy_ssl_certificate         /etc/radicale/client_cert.pem;              
          proxy_ssl_certificate_key     /etc/radicale/client_key.pem;               
          proxy_ssl_trusted_certificate /etc/radicale/server_cert.pem;              
}                                                                             

...而我对 SSL 证书的激进配置是...

[server]
hosts = 127.0.0.1:9468
ssl = true
certificate = /etc/radicale/server_cert.pem
key = /etc/radicale/server_key.pem
certificate_authority = /etc/radicale/client_cert.pem

[auth]
type = http_x_remote_user
htpasswd_filename = /etc/radicale/users
htpasswd_encryption = bcrypt

如果我访问站点https://####/radicale ,系统会提示我输入用户名和密码以进行身份​​验证,但是 nginx 然后返回以下错误...

upstream prematurely closed connection while reading response header from upstream, client: 62.253.154.162, server: #####, request: "GEET /radicale/ HTTP/2.0", upstream: "http://127.0.0.1:9468/", host: "####"

...和上游 Radicale 报告...

ERROR: An exception occurred during request: SSL handshake failed: [SSL: HTTP_REQUEST] http request (_ssl.c:1076)

如果我在 Radicale 和 nginx 上的反向代理之间禁用 SSL,那么这不是问题,我可以访问 WebUI https://####/radicale并且可以登录。但是,如果我启用它,然后转到https://####/radicale,我会收到一个弹出框,要求我输入用户名/密码,并且浏览器报告502 Bad Gateway并且上述错误再次发生。

我确实有 LetsEncrypt 证书,并且在我的域上工作这是否会导致与用于反向代理的 SSL 证书发生某种冲突?

nginx
  • 2 个回答
  • 1355 Views
Martin Hope
slackline
Asked: 2019-06-15 03:54:06 +0800 CST

Wordpress/PHP - 未捕获的错误:调用未定义的函数 mysql_connect()

  • 2

我已经在我的 VPS 上的 ArchLinux 下安装了 Wordpress,配置了 SQL 后端并编辑了 /usr/share/webapps/wordpress/wp-config.php。不幸的是,在尝试访问我得到的页面时...

2019/06/14 06:44:12 [error] 20812#20812: *394 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in /usr/share/webapps/wordpress/wp-includes/wp-db.php:1645
Stack trace:
#0 /usr/share/webapps/wordpress/wp-includes/wp-db.php(639): wpdb->db_connect()
#1 /usr/share/webapps/wordpress/wp-includes/load.php(427): wpdb->__construct('wp-user', 'pc&0wC<k%:o<AuI...', 'wordpress', 'localhost')
#2 /usr/share/webapps/wordpress/wp-settings.php(120): require_wp_db()
#3 /usr/share/webapps/wordpress/wp-config.php(90): require_once('/usr/share/weba...')
#4 /usr/share/webapps/wordpress/wp-load.php(37): require_once('/usr/share/weba...')
#5 /usr/share/webapps/wordpress/wp-blog-header.php(13): require_once('/usr/share/weba...')
#6 /usr/share/webapps/wordpress/index.php(17): require('/usr/share/weba...')
#7 {main}
thrown in /usr/share/webapps/wordpress/wp-includes/wp-db.php on line 1645" while reading response header from upstream, client:...

当 PHP 尝试使用 mysql 模块而不是 mysqli (在此处和此处找到线程)时,搜索似乎发生在 PHP 下。

我在 /etc/php/php.ini 中启用了 mysqli

extension=mysqli

...并且模块已加载...

php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
hash
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]

阅读 /usr/share/webapps/wordpress/wp-includes/wp-db.php 围绕有问题的行(1645),在我看来,好像有一系列从第 1589 行开始的 if{} else{} 语句检查是否正在使用 use_mysqli,这失败了,因为没有 mysql 模块,它们在 PHP7 中被删除,应该使用 mysqli。

grep '\$this->use_mysqli' /usr/share/webapps/wordpress/wp-includes/wp-db.php -A100 -n | grep 1589 -A100
1589:           if ( $this->use_mysqli ) {
1590-                   $this->dbh = mysqli_init();
1591-
1592-                   $host    = $this->dbhost;
1593-                   $port    = null;
1594-                   $socket  = null;
1595-                   $is_ipv6 = false;
1596-
1597-                   if ( $host_data = $this->parse_db_host( $this->dbhost ) ) {
1598-                           list( $host, $port, $socket, $is_ipv6 ) = $host_data;
1599-                   }
1600-
1601-                   /*
1602-                    * If using the `mysqlnd` library, the IPv6 address needs to be
1603-                    * enclosed in square brackets, whereas it doesn't while using the
1604-                    * `libmysqlclient` library.
1605-                    * @see https://bugs.php.net/bug.php?id=67563
1606-                    */
1607-                   if ( $is_ipv6 && extension_loaded( 'mysqlnd' ) ) {
1608-                           $host = "[$host]";
1609-                   }
1610-
1611-                   if ( WP_DEBUG ) {
1612-                           mysqli_real_connect( $this->dbh, $host,    $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
1613-                   } else {
1614-                           @mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
1615-                   }
1616-
1617-                   if ( $this->dbh->connect_errno ) {
1618-                           $this->dbh = null;
1619-
1620-                           /*
1621-                            * It's possible ext/mysqli is misconfigured. Fall back to ext/mysql if:
1622-                             *  - We haven't previously connected, and
1623-                             *  - WP_USE_EXT_MYSQL isn't set to false, and
1624-                             *  - ext/mysql is loaded.
1625-                             */
1626-                           $attempt_fallback = true;
1627-
1628-                           if ( $this->has_connected ) {
1629-                                   $attempt_fallback = false;
1630-                           } elseif ( defined( 'WP_USE_EXT_MYSQL' ) && ! WP_USE_EXT_MYSQL ) {
1631-                                   $attempt_fallback = false;
1632-                           } elseif ( ! function_exists( 'mysql_connect' ) ) {
1633-                                   $attempt_fallback = false;
1634-                           }
1635-
1636-                           if ( $attempt_fallback ) {
1637:                                   $this->use_mysqli = false;
1638-                                   return $this->db_connect( $allow_bail );
1639-                           }
1640-                   }
1641-           } else {
1642-                   if ( WP_DEBUG ) {
1643-                           $this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
1644-                   } else {
1645-                           $this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
1646-                   }
1647-           }

这失败了,因为通过 /usr/share/webapps/wordpress/wp-includes/wp-db.php 我可以看到 $is_mysql 在第 564 行设置为 null 并且 $use_mysqli 设置为 false 这解释了为什么测试查看是否使用 use_mysqli 失败,而是尝试使用 connect_mysql()...

grep 'public \$is_mysql = null' /usr/share/webapps/wordpress/wp-includes/wp-db.php -A30 -n
564:    public $is_mysql = null;
565-
566-    /**
567-     * A list of incompatible SQL modes.
568-     *
569-     * @since 3.9.0
570-     * @var array
571-     */
572-    protected $incompatible_modes = array(
573-            'NO_ZERO_DATE',
574-            'ONLY_FULL_GROUP_BY',
575-            'STRICT_TRANS_TABLES',
576-            'STRICT_ALL_TABLES',
577-            'TRADITIONAL',
578-    );
579-
580-    /**
581-     * Whether to use mysqli over mysql.
582-     *
583-     * @since 3.9.0
584-     * @var bool
585-     */
586-    private $use_mysqli = false;

鉴于 mysql 自 PHP7 以来已被删除并且不是 /etc/php/php.ini 中列出的可能模块,我很惊讶 $use_mysqli = false 在全新安装时。我尝试将其设置为 true 并在重新启动 php-fpm.service 后出现另一个错误并输入 if ( $this->$use_mysqli){...} 部分,但在第一次调用 $this-> 时失败dbh = mysqli_init()...

2019/06/14 07:10:25 [error] 1439#1439: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function mysqli_init() in /usr/share/webapps/wordpress/wp-includes/wp-db.php:1591
Stack trace:
#0 /usr/share/webapps/wordpress/wp-includes/wp-db.php(640): wpdb->db_connect()
#1 /usr/share/webapps/wordpress/wp-includes/load.php(427): wpdb->__construct('wp-user', 'pc&0wC<k%:o<AuI...', 'wordpress', 'localhost')
#2 /usr/share/webapps/wordpress/wp-settings.php(120): require_wp_db()
#3 /usr/share/webapps/wordpress/wp-config.php(90): require_once('/usr/share/weba...')
#4 /usr/share/webapps/wordpress/wp-load.php(37): require_once('/usr/share/weba...')
#5 /usr/share/webapps/wordpress/wp-blog-header.php(13): require_once('/usr/share/weba...')
#6 /usr/share/webapps/wordpress/index.php(17): require('/usr/share/weba...')
#7 {main}
  thrown in /usr/share/webapps/wordpress/wp-includes/wp-db.php on line    1591" while reading response header from upstream, client:

我并不反对修改配置,但我从Arch Wiki 的印象:Wordpress文章是不需要这种级别的修补。任何人都可以就我可能出错的地方提出建议。

编辑

mysqli部分来自phpinfo()

mysqli
MysqlI Support  enabled
Client API library version  mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $
Active Persistent Links     0
Inactive Persistent Links   0
Active Links    0
Directive   Local Value Master Value
mysqli.allow_local_infile   Off Off
mysqli.allow_persistent On  On
mysqli.default_host no value    no value
mysqli.default_port 3306    3306
mysqli.default_pw   no value    no value
mysqli.default_socket   /run/mysqld/mysqld.sock /run/mysqld/mysqld.sock
mysqli.default_user no value    no value
mysqli.max_links    Unlimited   Unlimited
mysqli.max_persistent   Unlimited   Unlimited
mysqli.reconnect    Off Off
mysqli.rollback_on_cached_plink Off Off

EDIT2:它建议php-fpm没有加载mysqli模块,我现在检查了一下,它似乎......

$ php-fpm -m
[PHP Modules]
cgi-fcgi
Core
ctype
curl
date
dom
fileinfo
filter
hash
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]
mysql
  • 3 个回答
  • 11066 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