Linux中國

如何修復 WordPress 中的 HTTP 錯誤

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

1、 修復在上傳圖像時出現的 HTTP 錯誤

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

用如下命令查找 php 配置文件:

php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

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

vi /etc/php.ini
upload_max_filesize = 64M
post_max_size = 32M
max_execution_time = 300
max_input_time 300
memory_limit = 128M

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

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

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

vi /www/html/path_to_wordpress/.htaccess
php_value upload_max_filesize 64M
php_value post_max_size 32M
php_value max_execution_time 180
php_value max_input_time 180

# BEGIN WordPress
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index.php$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>
# END WordPress

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

server {

  listen 80;
  client_max_body_size 128m;
  client_body_timeout 300;

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

  root /var/www/html/wordpress;
  index index.php;

  location = /favicon.ico {
  log_not_found off;
  access_log off;
  }

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~ .php$ {
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
    expires max;
    log_not_found off;
  }
}

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

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

2、 修復因為不恰當的文件許可權而產生的 HTTP 錯誤

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

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 的最大內存限制:

define(&apos;WP_MEMORY_LIMIT&apos;, &apos;128MB&apos;);

4、 修復因為 php.ini 文件錯誤配置而產生的 HTTP 錯誤

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

vi /etc/php.ini
cgi.fix_pathinfo=0
date.timezone = Asia/Shanghai

5、 修復因為 Apache mod_security 模塊而產生的 HTTP 錯誤

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

<IfModule mod_security.c>
  SecFilterEngine Off
  SecFilterScanPOST Off
</IfModule>

6、 修復因為有問題的插件/主題而產生的 HTTP 錯誤

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

或者用以下命令通過SSH重命名插件所在文件夾:

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 譯者:wenwensnow 校對:wxy

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let&apos;s Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...