迁移博客遇到的几个问题
<h2>博客显示提示建立数据库连接时出错</h2>
<p>WordPress博客更换环境后,导入数据库访问提示建立数据库连接时出错,但各种信息是没有问题的。</p>
<p><img src=“https://assets.moshanghua.net/images/2024/04/msh-3060-01.png” alt=“” /></p>
<p>创建一个的PHP脚本test.php,使用<code>wp-config.php</code>中的数据库连接信息尝试连接到数据库,以检查是否能够成功连接。</p>
<pre><code class=“language-Bash”><?php
define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_user');
define('DB_PASSWORD', 'your_database_password');
define('DB_HOST', 'your_database_host');
$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ($connection) {
echo "Database connection successful!";
} else {
echo "Error: Unable to connect to database.";
echo mysqli_connect_error();
}
?></code></pre>
<p>显示了Database connection successful! 连接是没问题的。</p>
<p>解决办法…就删掉了<code>wp-config.php</code>文件,复制wp-config-sample.php文件里的内容重新填写了下数据库的内容,再保存为<code>wp-config.php</code>后,就访问正常了…</p>
<h2>验证PHP安装提示 502</h2>
<p>nginx配置如下</p>
<pre><code class=“language-bash”>server {
listen 80;
server_name localhost;
网站根目录
root /usr/share/nginx/html;
location / {
index index.php index.html index.htm;
try_files
}
location ~ .php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME
}
}</code></pre>
<p>在访问带php文件的页面就显示502</p>
<p><img src=“https://assets.moshanghua.net/images/2024/04/msh-3060-02.png” alt=“” /></p>
<p>在nginx里的日志看到如下错误信息</p>
<pre><code class=“language-bash”>[error] 10795#10795: 11 connect() failed (111: Connection refused) while connecting to upstream, client: 171.106.160.15, server: localhost, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "xm.moshanghua.net"</code></pre>
<p>错误信息了解到的信息,这里的上游服务器是指PHP-FPM。</p>
<p>错误码111表示连接被拒绝,这意味着Nginx无法与PHP-FPM通信。</p>
<p><code>sudo systemctl status php7.4-fpm</code> 看了下状态,PHP-FPM服务在正常运行。</p>
<p><code>ps aux | grep php-fpm</code>命令来查看所有运行中的进程,并且通过grep命令过滤出与php-fpm相关的进程,进程也没问题。</p>
<p><code>netstat -ant |grep 9000</code>来检查端口9000上的网络连接情况。</p>
<p>这个命令通常用于确认PHP-FPM服务是否正在监听TCP端口9000,因为PHP-FPM默认可能会监听这个端口。</p>
<p>执行这个命令时,您可能会看到类似以下的输出:</p>
<pre><code class=“language-Bash”>tcp 0 0 127.0.0.1:9000 0.0.0.0: LISTEN</code></pre>
<p>但在输出中看不到任何监听端口9000的行,那么PHP-FPM可能没有配置为监听TCP端口9000,或者服务没有运行。</p>
<p>在这种情况下,检查PHP-FPM的配置文件(通常位于 /etc/php/7.4/fpm/pool.d/www.conf 或类似路径),确认listen指令是否正确设置为监听端口9000</p>
<p>不是就修改一下让其指向TCP端口,因为Nginx配置用的也是TCP端口。</p>
<blockquote>
<p>但指向套接字文件好像不行,就算Nginx配置里也用Unix socket,也有问题,不知道是不是路径有问题…具体情况没研究了。</p>
</blockquote>
<p>一般在 <code>www.conf </code>文件的30多行的样子,会看到一条listen指令 <code>listen = /run/php/php8.1-fpm.sock</code></p>
<p>这里把它修改了或者注释重新起一行,让它指向TCP端口</p>
<pre><code class=“language-Bash”>;listen = /run/php/php8.1-fpm.sock
listen = 127.0.0.1:9000</code></pre>
<p><img src=“https://assets.moshanghua.net/images/2024/04/msh-3060-03.png” alt=“” /></p>
<p>保存后重启一下php-fpm <code>sudo systemctl restart php7.4-fpm</code></p>
<p>再次访问应该就能看到展示PHP的所有配置信息了。</p>
<h2>访问出现An error occurred.</h2>
<p><img src=“https://assets.moshanghua.net/images/2024/04/msh-3060-04.png” alt=“” /></p>
<p>访问出现An error occurred.时</p>
<p>确认Nginx配置里的PHP请求的处理方式部分下<code>fastcgi_param</code>指令。(大概?</p>
<p><code>fastcgi_param</code>指令用于设置发送到FastCGI服务器的参数</p>
<h2>访问出现File not found.</h2>
<p>确认输入的文件名…</p>
