RoseHosting 发布的文章

我们会向你介绍,如何在 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('WP_MEMORY_LIMIT', '128MB');

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 中的 date 命令。date 命令可以用户输出/设置系统日期和时间。 date 命令很简单, 请参见下面的例子和语法。

默认情况下,当不带任何参数运行 date 命令时,它会输出当前系统日期和时间:

$ date
Sat  2 Dec 12:34:12 CST 2017

语法

Usage: date [OPTION]... [+FORMAT]
  or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
以给定格式显示当前时间,或设置系统时间。

案例

下面这些案例会向你演示如何使用 date 命令来查看前后一段时间的日期时间。

1、 查找 5 周后的日期

date -d "5 weeks"
Sun Jan  7 19:53:50 CST 2018

2、 查找 5 周后又过 4 天的日期

date -d "5 weeks 4 days"
Thu Jan 11 19:55:35 CST 2018

3、 获取下个月的日期

date -d "next month"
Wed Jan  3 19:57:43 CST 2018

4、 获取下周日的日期

date -d last-sunday
Sun Nov 26 00:00:00 CST 2017

date 命令还有很多格式化相关的选项, 下面的例子向你演示如何格式化 date 命令的输出.

5、 以 yyyy-mm-dd 的格式显示日期

date +"%F"
2017-12-03

6、 以 mm/dd/yyyy 的格式显示日期

date +"%m/%d/%Y"
12/03/2017

7、 只显示时间

date +"%T"
20:07:04

8、 显示今天是一年中的第几天

date +"%j"
337

9、 与格式化相关的选项

格式说明
%%显示百分号 (%)。
%a星期的缩写形式 (如: Sun)。
%A星期的完整形式 (如: Sunday)。
%b缩写的月份 (如: Jan)。
%B当前区域的月份全称 (如: January)。
%c日期以及时间 (如: Thu Mar 3 23:05:25 2005)。
%C当前世纪;类似 %Y, 但是会省略最后两位 (如: 20)。
%d月中的第几日 (如: 01)。
%D日期;效果与 %m/%d/%y 一样。
%e月中的第几日, 会填充空格;与 %_d 一样。
%F完整的日期;跟 %Y-%m-%d 一样。
%g年份的后两位 (参见 %G)。
%G年份 (参见 %V);通常跟 %V 连用。
%h%b
%H小时 (00..23)。
%I小时 (01..12)。
%j一年中的第几天 (001..366)。
%k小时, 用空格填充 ( 0..23); 与 %_H 一样。
%l小时, 用空格填充 ( 1..12); 与 %_I 一样。
%m月份 (01..12)。
%M分钟 (00..59)。
%n换行。
%N纳秒 (000000000..999999999)。
%p当前区域时间是上午 AM 还是下午 PM;未知则为空。
%P类似 %p, 但是用小写字母显示。
%r当前区域的 12 小时制显示时间 (如: 11:11:04 PM)。
%R24 小时制的小时和分钟;同 %H:%M
%s从 1970-01-01 00:00:00 UTC 到现在经历的秒数。
%S秒数 (00..60)。
%t制表符。
%T时间;同 %H:%M:%S
%u星期 (1..7);1 表示 星期一
%U一年中的第几个星期,以周日为一周的开始 (00..53)。
%V一年中的第几个星期,以周一为一周的开始 (01..53)。
%w用数字表示周几 (0..6); 0 表示 周日
%W一年中的第几个星期, 周一为一周的开始 (00..53)。
%x当前区域的日期表示(如: 12/31/99)。
%X当前区域的时间表示 (如: 23:13:48)。
%y年份的后面两位 (00..99)。
%Y年。
%z+hhmm 的数字格式表示时区 (如: -0400)。
%:z+hh:mm 的数字格式表示时区 (如: -04:00)。
%::z+hh:mm:ss 的数字格式表示时区 (如: -04:00:00)。
%:::z以数字格式表示时区, 其中 : 的个数由你需要的精度来决定 (例如, -04+05:30)。
%Z时区的字符缩写(例如, EDT)。

10、 设置系统时间

你也可以使用 date 来手工设置系统时间,方法是使用 --set 选项, 下面的例子会将系统时间设置成 2017 年 8 月 30 日下午 4 点 22 分。

date --set="20170830 16:22"

当然, 如果你使用的是我们的 VPS 托管服务,你总是可以联系并咨询我们的 Linux 专家管理员(通过客服电话或者下工单的方式)关于 date 命令的任何东西。他们是 24×7 在线的,会立即向您提供帮助。(LCTT 译注:原文的广告~)

PS. 如果你喜欢这篇帖子,请点击下面的按钮分享或者留言。谢谢。


via: https://www.rosehosting.com/blog/use-the-date-command-in-linux/

作者:rosehosting 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这是一篇关于如何在 Ubuntu 16.04 上安装 Moodle (“魔灯”)的逐步指南。Moodle ( 模块化面向对象动态学习环境 Modular-object-oriented dynamic learning environment 的缩写)是一种自由而开源的学习管理系统,为教师、学生和管理员提供个性化的学习环境。Moodle 由 Moodle 项目创建,由 Moodle 总部统一领导和协调。

Moodle 有很多非常实用的功能,比如:

  • 现代和易于使用的界面
  • 个性化仪表盘
  • 协作工具和活动
  • 一体式日历
  • 简单的文本编辑器
  • 进度跟踪
  • 公告
  • 不胜枚举…

在本教程中,我们将指导您在 Ubuntu 16.04 VPS 上利用 Apache web 服务器、MySQL 和 PHP 7 安装最新版本的 Moodle。(LCTT 译注:在 Ubuntu 的后继版本上的安装也类似。)

1、 通过 SSH 登录

首先,利用 root 用户通过 SSH 登录到 Ubuntu 16.04 VPS:

ssh root@IP_Address -p Port_number

2、 更新操作系统软件包

运行以下命令更新系统软件包并安装一些依赖软件:

apt-get update && apt-get upgrade
apt-get install git-core graphviz aspell

3、 安装 Apache Web 服务器

利用下面命令,从 Ubuntu 软件仓库安装 Apache Web 服务器:

apt-get install apache2

4、 启动 Apache Web 服务器

一旦安装完毕,启动 Apache 并使它能够在系统启动时自动启动,利用下面命令:

systemctl enable apache2

5、 安装 PHP 7

接下来,我们将安装 PHP 7 和 Moodle 所需的一些额外的 PHP 模块,命令是:

apt-get install php7.0 libapache2-mod-php7.0 php7.0-pspell php7.0-curl php7.0-gd php7.0-intl php7.0-mysql php7.0-xml php7.0-xmlrpc php7.0-ldap php7.0-zip

6、 安装和配置 MySQL 数据库服务器

Moodle 将大部分数据存储在数据库中,所以我们将利用以下命令安装 MySQL 数据库服务器:

apt-get install mysql-client mysql-server

安装完成后,运行 mysql_secure_installation 脚本配置 MySQL 的 root 密码以确保 MySQL 安全。

root 用户登录到 MySQL 服务器,并为 Moodle 创建一个数据库以及能访问它的用户,以下是具体操作指令:

mysql -u root -p
mysql> CREATE DATABASE moodle;
mysql> GRANT ALL PRIVILEGES ON moodle.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'PASSWORD';
mysql> FLUSH PRIVILEGES;
mysql> \q

一定要记得将上述 PASSWORD 替换成一个安全性强的密码。

7、 从 GitHub 仓库获取 Moodle

接下来,切换当前工作目录,并从 GitHub 官方仓库中复制 Moodle:

cd /var/www/html/
git clone https://github.com/moodle/moodle.git

切换到 moodle 目录,检查所有可用的分支:

cd moodle/
git branch -a

选择最新稳定版本(当前是 MOODLE_34_STABLE ),运行以下命令告诉 git 哪个分支可以跟踪或使用:

git branch --track MOODLE_34_STABLE origin/MOODLE_34_STABLE

并切换至这个特定版本:

git checkout MOODLE_34_STABLE

Switched to branch 'MOODLE_34_STABLE'
Your branch is up-to-date with 'origin/MOODLE_34_STABLE'.

为存储 Moodle 数据创建目录:

mkdir /var/moodledata

正确设置其所有权和访问权限:

chown -R www-data:www-data /var/www/html/moodle
chown www-data:www-data /var/moodledata

8、 配置 Apache Web 服务器

使用以下内容为您的域名创建 Apache 虚拟主机:

nano /etc/apache2/sites-available/yourdomain.com.conf

    ServerAdmin [email protected]
    DocumentRoot /var/www/html/moodle
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all

    ErrorLog /var/log/httpd/yourdomain.com-error_log
    CustomLog /var/log/httpd/yourdomain.com-access_log common

保存文件并启用虚拟主机:

a2ensite yourdomain.com

Enabling site yourdomain.com.
To activate the new configuration, you need to run:
 service apache2 reload

最后,重启 Apache Web 服务器,以使配置生效:

service apache2 reload

9、 接下来按照提示完成安装

现在,点击 “http://yourdomain.com”(LCTT 译注:在浏览器的地址栏里输入以上域名以访问 Apache WEB 服务器),按照提示完成 Moodle 的安装。有关如何配置和使用 Moodle 的更多信息,您可以查看其官方文档

如果您使用我们的优化的 Moodle 托管主机服务,您不必在 Ubuntu 16.04 上安装 Moodle,在这种情况下,您只需要求我们的专业 Linux 系统管理员在 Ubuntu 16.04 上安装和配置最新版本的 Moodle。他们将提供 24×7 及时响应的服务。(LCTT 译注:这是原文作者——一个主机托管商的广告~)

PS. 如果你喜欢这篇关于如何在 Ubuntu 16.04 上安装 Moodle 的帖子,请在社交网络上与你的朋友分享,或者留下你的回复。谢谢。


via: https://www.rosehosting.com/blog/how-to-install-moodle-on-ubuntu-16-04/

作者:RoseHosting 译者:stevenzdg988 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

对于新手而言,在 Linux 中使用命令行可能会非常不方便。没有图形界面,很难在不同文件夹间浏览,找到需要的文件。本篇教程中,我会展示如何在 Linux 中查找特定的文件。

第一步要做的是通过 SSH 连接到你的 Linux。在 Linux 中查找文件有两种方法。一种是使用 find 命令,另外一种是使用 locate 命令。我们先看第一种。

find 命令

使用 Linux find 命令可以用不同的搜索标准如名字、类型、所属人、大小等来搜索目录树。基本语法如下:

# find path expression search-term

下面是使用 find 命令根据文件名来查找特定文件的一个例子:

# find -name test.file

命令会搜索整个目录树来查找名为 test.file 的文件,并且会提供其存放位置。你可以使用你 Linux 上一个存在的文件名来尝试一下。

find 命令有时会花费几分钟来查找整个目录树,尤其是如果系统中有很多文件和目录的话。要显著减少时间,你可以指定搜索的目录。比如,如果你知道 /var 中存在 test.file,那就没有必要搜索其它目录。这样,你可以使用下面的命令:

# find /var -name test.file

find 还可以根据时间、大小、所属人、权限等选项搜索文件。要了解更多关于这些选项的信息,你可以使用查看** Linux find 命令**的手册。

# man find

locate 命令

要在Linux中使用locate命令,首先需要安装它。

如果你正在使用 Ubuntu,运行下面的命令来安装 locate:

# apt-get update
# apt-get install mlocate

如果你使用的是 CentOS ,运行下面的命令来安装 locate:

# yum install mlocate

locate 是一种比 find 更快的方式,因为它在数据库中查找文件。要更新搜索数据库,运行下面的命令:

# updatedb

使用 locate 查找文件的语法:

# locate test.file

就像 find 命令一样,locate 也有很多选项来过滤输出。要了解更多你可以查看Linux Locate 命令的手册。

# man locate

如果你喜欢这篇文件,请使用左边的按钮分享到社交网络上,或者在下面留言,谢谢。


via: https://www.rosehosting.com/blog/linux-find-file/

作者:RoseHosting 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

设置一个高强度的密码是非常重要的,这样才能够很好的保护自己的账号或者服务器以及确保自己的数据的安全。通常来说,一个高强度密码至少有 14 个字符,包括大小写字母、数字和特殊字符,并且要牢记永远不用那些字典中的单词。使用长密码比短密码要来的安全,因为密码越长越难猜测。在本文中,我将给你介绍几个不同方法,让你可以在 Linux 命令行下生成一个高强度密码。

使用 openssl 生成高强度密码

这里使用 openssl 的 rand 方法,它会生成一个 14 位字符的随机字符:

openssl rand -base64 14

使用 urandom 生成高强度密码

这里我们将使用 tr 条件来过滤 /dev/urandom 的输出,从而删掉那些不想要的字符,并打印出第一个出现的 14 位字符。

< /dev/urandom tr -dc A-Za-z0-9 | head -c14; echo

使用 pwgen 生成高强度密码

pwgen 是一个生成随机、无特殊含义但可以正常拼读的密码。

安装 pwgen,运行:

sudo apt-get install pwgen

安装好之后,使用以下命令来生成一个 14 位随机字符:

pwgen 14 1

你也可以使用以下标记:

  • -c 或 --capitalize 生成的密码中至少包含一个大写字母
  • -A 或 --no-capitalize 生成的密码中不含大写字母
  • -n 或 --numerals 生成的密码中至少包含一个数字
  • -0 或 --no-numerals 生成的密码中不含数字
  • -y 或 --symbols 生成的密码中至少包含一个特殊字符
  • -s 或 --secure 生成一个完全随机的密码
  • -B 或 --ambiguous 生成的密码中不含 易混淆字符 ambiguous characters
  • -h 或 --help 输出帮助信息
  • -H 或 --sha1=path/to/file[#seed] 使用指定文件的 sha1 哈希值作为随机生成器
  • -C 按列输出生成的密码
  • -1 不按列输出生成的密码
  • -v 或 --no-vowels 不使用任何元音,以免意外生成让人讨厌的单词

使用 gpg 生成高强度密码

我们也可以使用 gpg 工具来生成一个 14 位字符的密码:

gpg --gen-random --armor 1 14

其它方法

当然,可能还有很多方法可以生成一个高强度密码。比方说,你可以添加以下 bash shell 方法到 ~/.bashrc 文件:

genpasswd() { 
    strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 14 | tr -d '\n'; echo
}

当你想要生成一个高强度的随机密码时,运行 genpasswd 就好了。


via: https://www.rosehosting.com/blog/generate-password-linux-command-line/

作者:RoseHosting 译者:GHLandy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出