TranslateProject/translated/tech/20180102 HTTP errors in WordPress.md
2018-01-16 00:03:43 +08:00

190 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

WordPress 中的HTTP错误
======
![http error wordpress][1]
我们会向你介绍如何修复WordPress中的HTTP错误(在Linux VPS上)。 下面列出了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,在WordPress实例中具体配置nginx服务器的设置。详细配置和下面的例子相似:
```
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('WP_MEMORY_LIMIT', '128MB');
```
### 4\. 修复因为PHP.INI文件错误配置而产生的HTTP错误
编辑PHP配置主文件然后找到 'cgi.fix_pathinfo' 这一行。 这一行内容默认情况下是被注释掉的默认值为1。取消这一行的注释(删掉这一行最前面的分号)然后将1改为0.同时需要修改 'date.timezone' 这一PHP设置再次编辑 PHP 配置文件并将这一选项改成 'date.timezone = US/Central' (或者将等号后内容改为你所在的时区)
```
vi /etc/php.ini
```
```
cgi.fix_pathinfo=0
date.timezone = America/New_York
```
### 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错误会被记录在网页服务器的日志文件中所以寻找错误时一个很好的切入点就是查看服务器日志。
如果你在使用WordPress VPS主机服务的话你不需要自己去修复WordPress中出现的HTTP错误。你只要让你的Linux管理员来处理它们他们24小时在线并且会立刻开始着手解决你的问题。
--------------------------------------------------------------------------------
via: https://www.rosehosting.com/blog/http-error-wordpress/
作者:[rosehosting][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://www.rosehosting.com
[1]:https://www.rosehosting.com/blog/wp-content/uploads/2018/01/http-error-wordpress.jpg
[2]:https://www.rosehosting.com/wordpress-hosting.html