介绍
目前,WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您轻松地在PHP处理的MySQL后端上设置灵活的博客和网站。
在本指南中,我们将专注于在Ubuntu 14.04上设置一个WordPress实例。
前提条件
在您开始本指南之前,您需要在服务器上完成的一些重要步骤。
我们将作为具有 sudo 权限的非根用户进行这些步骤,因此您需要有一个可用。您可以通过遵循我们 Ubuntu 14.04 初始服务器设置指南中的步骤 1-4 来创建具有 sudo 权限的用户。
此外,您还需要在您的 VPS 实例上安装一个 LAMP (Linux, Apache, MySQL 和 PHP) 堆栈. 如果您没有这些组件已经安装和配置,您可以使用本指南来学习 如何在 Ubuntu 14.04 上安装 LAMP。
当您完成这些步骤后,您可以继续使用此指南。
第一步:为 WordPress 创建 MySQL 数据库和用户
我們將採取的第一步是準備。WordPress使用一個關係資料庫來管理和儲存網站和用戶資訊。
我们安装了MySQL,可以提供此功能,但我们需要为WordPress创建一个数据库和用户来工作。
要开始,请通过发出此命令登录MySQL root(管理)帐户:
1mysql -u root -p
您将被提示为您在安装软件时为 MySQL 根帐户设置的密码,然后您将收到 MySQL 命令提示。
首先,我们可以创建一个单独的数据库,WordPress可以控制它,你可以称之为任何你想要的,但我会称之为WordPress,因为它是描述性和简单的。
CREATE DATABASE wordpress;
每个MySQL语句必须以半列(;)结束,因此,如果您遇到任何问题,请检查是否存在。
接下来,我们将创建一个单独的MySQL用户帐户,我们将专门使用它来运行我们的新数据库。
我打电话给我正在创建的新帐户wordpressuser
,并将为它分配一个密码
的密码。你绝对应该更改安装的密码,可以随心所欲命名用户。
CREATE USER wordpressuser@localhost IDENTIFIED BY 'password';
在这一点上,你有一个数据库和一个用户帐户,每一个都是专门为WordPress创建的,但这两个组件还没有关系,用户没有访问数据库。
让我们通过这个命令授予我们的用户帐户访问我们的数据库来解决这个问题:
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;
现在用户可以访问数据库,我们需要清除特权,以便当前的MySQL实例知道我们最近所做的特权更改:
1FLUSH PRIVILEGES;
我们现在已经设置好了,我们可以通过键入离开MySQL提示:
1exit
现在你应该回到你的常规命令提示。
第二步:下载WordPress
接下来,我们将从项目网站下载实际的WordPress文件。
幸运的是,WordPress团队总是将其软件的最新稳定版本链接到相同的URL,因此我们可以通过键入以下方式获得最新的WordPress版本:
1cd ~
2wget http://wordpress.org/latest.tar.gz
这将下载一个包含WordPress文件的档案目录内容的压缩文件到我们的主目录。
我们可以提取文件来重建我们需要的WordPress目录,输入:
1tar xzvf latest.tar.gz
这将创建一个名为WordPress
的目录在您的主目录中。
虽然我们正在下载东西,我们也应该得到一些我们需要的更多包,我们可以在我们更新本地包索引后直接从Ubuntu的默认库中获取这些包:
1sudo apt-get update
2sudo apt-get install php5-gd libssh2-php
这将允许您使用图像工作,并允许您使用 SSH 登录凭证安装插件和更新您的网站部分。
步骤三:配置WordPress
我们将做的大多数配置将在稍后通过 Web 界面进行,但是,我们需要从命令行做一些工作,然后我们可以完成并运行此操作。
开始通过进入您刚刚卸载的WordPress目录:
1cd ~/wordpress
一个主要匹配我们需要的配置的样本配置文件是默认的,但我们需要将其复制到默认配置文件位置,以便让WordPress识别该文件。
1cp wp-config-sample.php wp-config.php
现在我们有一个配置文件,我们可以生成一些秘密密密钥,以帮助确保安装。WordPress为这些值提供一个安全的生成器,所以你不必自己尝试制定良好的价值。
要从 WordPress 秘密密密钥生成器中获取安全值,键入:
1curl -s https://api.wordpress.org/secret-key/1.1/salt/
您将获得像这样的独特值:
<$>[警告] 警告! 重要的是每次请求独特值。
1[secondary_label Output]
2define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H');
3define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3');
4define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88');
5define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g');
6define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-');
7define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY');
8define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|');
9define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
这些是配置行,我们可以直接粘贴到我们的配置文件中,以设置安全密钥。
接下来,让我们在文本编辑器中打开配置文件:
1nano wp-config.php
查找包含这些设置的 dummy 值的部分,它将看起来像这样:
1. . .
2#define('AUTH_KEY', 'put your unique phrase here');
3#define('SECURE_AUTH_KEY', 'put your unique phrase here');
4#define('LOGGED_IN_KEY', 'put your unique phrase here');
5#define('NONCE_KEY', 'put your unique phrase here');
6#define('AUTH_SALT', 'put your unique phrase here');
7#define('SECURE_AUTH_SALT', 'put your unique phrase here');
8#define('LOGGED_IN_SALT', 'put your unique phrase here');
9#define('NONCE_SALT', 'put your unique phrase here');
10. . .
删除这些行并粘贴您从命令行复制的值:
1[label /var/www/html/wp-config.php]
2. . .
3
4define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
5define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
6define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
7define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE');
8define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
9define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
10define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
11define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
12
13. . .
之后,我们需要做的唯一修改是对存储我们数据库信息的参数。
我们需要找到DB_NAME
,DB_USER
和DB_PASSWORD
的设置,以便 WordPress 正确连接和验证我们创建的数据库。
用您创建的数据库的信息填写这些参数的值,它应该是这样的:
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'password');
这些是你需要改变的唯一价值观。
完成后,保存并关闭文件。
步骤四:将文件复制到文档根
现在我们已经配置了我们的应用程序,我们需要将其复制到Apache的文档根中,在那里它可以向我们网站的访问者提供。
将文件从目录转移到目录的最简单和最可靠的方法之一是使用rsync
命令,这将保留权限,并具有良好的数据完整性功能。
在 Ubuntu 14.04 LAMP 指南中,文档根的位置是 /var/www/html/
. 我们可以通过键入将我们的 WordPress 文件传输到那里:
1sudo rsync -avP ~/wordpress/ /var/www/html/
这将安全地从您解包的目录复制到文档根的所有内容。
现在我们应该进入文档根,以进行一些最终的权限更改。
1cd /var/www/html
您将需要更改我们的文件的所有权,以提高安全性。
我们希望将用户所有权授予您计划使用的常规非根用户(具有 sudo 特权)以与您的网站互动. 如果您愿意,这可以是您的常规用户,但有些人可能会建议您为此过程创建一个额外的用户。
对于本指南,我们将使用我们在 初始服务器设置指南中设置的相同帐户,我们称之为演示
。
我们将把群组所有权赋予我们的Web服务器流程,即www-data
,这将允许Apache根据需要与内容互动。
我们可以通过键入快速分配这些所有权值:
sudo chown -R demo:www-data *
这将建立我们正在寻找的财产所有权。
虽然我们正在处理所有权和权限,但我们也应该考虑在我们的上传目录中正确分配所有权,这将使我们能够上传图像和其他内容到我们的网站。
首先,让我们手动创建我们的文档根的wp-content
目录下面的uploads
目录,这将是我们的内容的母目录:
1mkdir /var/www/html/wp-content/uploads
我们现在有一个目录来容纳上传的文件,但权限仍然太限制了。我们需要允许Web服务器自己写到此目录中。
1sudo chown -R :www-data /var/www/html/wp-content/uploads
这将允许Web服务器在该目录下创建文件和目录,这将使我们能够上传内容到服务器。
步骤五:通过 Web 界面完成安装
现在你有你的文件,你的软件已配置,你可以通过Web界面完成安装。
在您的网页浏览器中,导航到您的服务器的域名或公共IP地址:
http://server_domain_name_or_IP
你会看到WordPress的初始配置页面,在那里你会创建一个初始的管理员帐户:
填写您想要创建的网站和管理帐户的信息. 完成后,点击底部的安装按钮。
WordPress 将确认安装,然后要求您使用您刚刚创建的帐户登录:
点击底部的按钮,然后填写您的帐户信息:
您将被介绍给WordPress界面:
步骤六(可选) — 为 WordPress 配置 Pretty Permalinks
默认情况下,WordPress会动态地创建类似这样的URL:
http://server_domain_name_or_IP/?p=1
对于访问者或搜索引擎来说,这不是最有用的界面,所以大多数用户都想修改它。WordPress有能力创建漂亮
的永久链接,将URL清理成一个更人性化的格式。
我们需要做一些事情来让它与Ubuntu 14.04上的Apache一起工作。
修改 Apache 以允许 URL 重写
首先,我们需要修改Apache虚拟主机文件为WordPress,以允许.htaccess
翻译,您可以通过编辑虚拟主机文件来完成此操作。
默认情况下,这是000-default.conf
,但如果您创建了另一个配置文件,您的文件可能会有所不同:
1sudo nano /etc/apache2/sites-available/000-default.conf
我们应该设置ServerName
,并创建一个目录部分,在那里我们允许翻译。
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ServerName server_domain_name_or_IP <Directory /var/www/html/> AllowOverride All </Directory> . . .
完成后,保存并关闭文件。
接下来,我们需要启用重写模块,允许您修改 URL。
1sudo a2enmod rewrite
完成这些更改后,重新启动 Apache:
1sudo service apache2 restart
创建一个.htaccess 文件
现在Apache已配置为允许通过.htaccess 文件重写,我们需要创建一个实际的文件。
您需要将此文件放置在文档根中. 键入此文档以创建一个空的文件:
1touch /var/www/html/.htaccess
虽然我们需要 Web 服务器是组所有者,所以我们应该通过键入来调整所有权:
1sudo chown :www-data /var/www/html/.htaccess
我们现在拥有这个文件的正确所有权。
然而,我们可能需要调整权限,这取决于您喜欢如何工作。WordPress将为您生成必要的重写规则。如果它有写权限,可以自动执行规则。
您选择的配置取决于您对安全性的便利程度。允许网络服务器写入此文件肯定会更方便,但有些人说这是一个不必要的安全风险。
如果您希望 WordPress 自动更新此文件以重写规则,您可以通过键入确保它有正确的权限来做到这一点:
1chmod 664 /var/www/html/.htaccess
如果您想手动更新此文件,以便获得小额的安全性,您可以通过键入来允许 Web 服务器只读取权限:
1chmod 644 /var/www/html/.htaccess
在WordPress中更改永久链接设置
当您完成服务器侧更改时,您可以通过WordPress管理界面轻松调整永久链接设置。
在左侧的设置
菜单中,您可以选择Permalinks
:
您可以选择任何预配置的设置来组织 URL,或者您可以创建自己的。
完成选择后,单击保存更改
,生成重写规则。
如果您允许 Web 服务器写入您的.htaccess 文件,您应该看到这样的消息:
如果您不允许 Web 服务器写入您的.htaccess 文件,您将获得您需要手动添加到文件的重写规则。
复制WordPress给你的行,然后在你的服务器上编辑文件:
1nano /var/www/html/.htaccess
它应该给你相同的功能。
结论
你现在应该有一个WordPress实例,并在你的Ubuntu 14.04 VPS上运行。你可以从这里采取许多途径。