歡迎光臨
每天分享高質量文章

如何修複 WordPress 中的 HTTP 錯誤 | Linux 中國

下麵列出了 WordPress 使用者遇到的最常見的 HTTP 錯誤,我們的建議側重於如何發現錯誤原因以及解決方法。
— Rosehosting


致謝
編譯自 | https://www.rosehosting.com/blog/http-error-wordpress/ 
 作者 | Rosehosting
 譯者 | wenwensnow ? ? 共計翻譯:6 篇 貢獻時間:70 天

我們會向你介紹,如何在 Linux VPS 上修複 WordPress 中的 HTTP 錯誤。 下麵列出了 WordPress 使用者遇到的最常見的 HTTP 錯誤,我們的建議側重於如何發現錯誤原因以及解決方法。

1、 修複在上傳影象時出現的 HTTP 錯誤

如果你在基於 WordPress 的網頁中上傳影象時出現錯誤,這也許是因為伺服器上 PHP 的配置,例如儲存空間不足或者其他配置問題造成的。

用如下命令查詢 php 配置檔案:

  1. php -i | grep php.ini

  2. Configuration File (php.ini) Path => /etc

  3. Loaded Configuration File => /etc/php.ini

根據輸出結果,php 配置檔案位於 /etc 檔案夾下。編輯 /etc/php.ini 檔案,找出下列行,並按照下麵的例子修改其中相對應的值:

  1. vi /etc/php.ini

  1. upload_max_filesize = 64M

  2. post_max_size = 32M

  3. max_execution_time = 300

  4. max_input_time 300

  5. memory_limit = 128M

當然,如果你不習慣使用 vi 文字編輯器,你可以選用自己喜歡的。

不要忘記重啟你的網頁伺服器來讓改動生效。

如果你安裝的網頁伺服器是 Apache,你也可以使用 .htaccess 檔案。首先,找到 .htaccess 檔案。它位於 WordPress 安裝路徑的根檔案夾下。如果沒有找到 .htaccess 檔案,需要自己手動建立一個,然後加入如下內容:

  1. vi /www/html/path_to_wordpress/.htaccess

  1. php_value upload_max_filesize 64M

  2. php_value post_max_size 32M

  3. php_value max_execution_time 180

  4. php_value max_input_time 180

  5. # BEGIN WordPress

  6. <IfModule mod_rewrite.c>

  7.  RewriteEngine On

  8.  RewriteBase /

  9.  RewriteRule ^index\.php$ - [L]

  10.  RewriteCond %{REQUEST_FILENAME} !-f

  11.  RewriteCond %{REQUEST_FILENAME} !-d

  12.  RewriteRule . /index.php [L]

  13. IfModule>

  14. # END WordPress

如果你使用的網頁伺服器是 nginx,在 nginx 的 server 配置塊中配置你的 WordPress 實體。詳細配置和下麵的例子相似:

  1. server {

  2.  listen 80;

  3.  client_max_body_size 128m;

  4.  client_body_timeout 300;

  5.  server_name your-domain.com www.your-domain.com;

  6.  root /var/www/html/wordpress;

  7.  index index.php;

  8.  location = /favicon.ico {

  9.  log_not_found off;

  10.  access_log off;

  11.  }

  12.  location = /robots.txt {

  13.    allow all;

  14.    log_not_found off;

  15.    access_log off;

  16.  }

  17.  location / {

  18.    try_files $uri $uri/ /index.php?$args;

  19.  }

  20.  location ~ \.php$ {

  21.    include fastcgi_params;

  22.    fastcgi_pass 127.0.0.1:9000;

  23.    fastcgi_index index.php;

  24.    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  25.  }

  26.  location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {

  27.    expires max;

  28.    log_not_found off;

  29.  }

  30. }

根據自己的 PHP 配置,你需要將 fastcgi_pass 127.0.0.1:9000; 用類似於 fastcgi_pass unix:/var/run/php7-fpm.sock; 替換掉(依照實際連線方式)

重啟 nginx 服務來使改動生效。

2、 修複因為不恰當的檔案許可權而產生的 HTTP 錯誤

如果你在 WordPress 中出現一個意外錯誤,也許是因為不恰當的檔案許可權導致的,所以需要給 WordPress 檔案和檔案夾設定一個正確的許可權:

  1. chown www-data:www-data -R /var/www/html/path_to_wordpress/

將 www-data 替換成實際的網頁伺服器使用者,將 /var/www/html/path_to_wordpress 換成 WordPress 的實際安裝路徑。

3、 修複因為記憶體不足而產生的 HTTP 錯誤

你可以透過在 wp-config.php 中新增如下內容來設定 PHP 的最大記憶體限制:

  1. define('WP_MEMORY_LIMIT', '128MB');

4、 修複因為 php.ini 檔案錯誤配置而產生的 HTTP 錯誤

編輯 PHP 配置主檔案,然後找到 cgi.fix_pathinfo 這一行。 這一行內容預設情況下是被註釋掉的,預設值為 1。取消這一行的註釋(刪掉這一行最前面的分號),然後將 1 改為 0 。同時需要修改 date.timezone 這一 PHP 設定,再次編輯 PHP 配置檔案並將這一選項改成 date.timezone = Asia/Shanghai (或者將等號後內容改為你所在的時區)。

  1. vi /etc/php.ini

  1. cgi.fix_pathinfo=0

  2. date.timezone = Asia/Shanghai

5、 修複因為 Apache mod_security 模組而產生的 HTTP 錯誤

如果你在使用 Apache mod_security 模組,這可能也會引起問題。試著禁用這一模組,確認是否因為在 .htaccess 檔案中加入如下內容而引起了問題:

  1. mod_security.c>

  2.  SecFilterEngine Off

  3.  SecFilterScanPOST Off

6、 修複因為有問題的外掛/主題而產生的 HTTP 錯誤

一些外掛或主題也會導致 HTTP 錯誤以及其他問題。你可以首先禁用有問題的外掛/主題,或暫時禁用所有 WordPress 外掛。如果你有 phpMyAdmin,使用它來禁用所有外掛:在其中找到 wp_options 資料表,在 option_name 這一列中找到 active_plugins 這一記錄,然後將 option_value 改為 :a:0:{}

或者用以下命令透過SSH重新命名外掛所在檔案夾:

  1. mv /www/html/path_to_wordpress/wp-content/plugins /www/html/path_to_wordpress/wp-content/plugins.old

通常情況下,HTTP 錯誤會被記錄在網頁伺服器的日誌檔案中,所以尋找錯誤時一個很好的切入點就是檢視伺服器日誌。


via: https://www.rosehosting.com/blog/http-error-wordpress/

作者:rosehosting[2] 譯者:wenwensnow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖