Wordpress

来自 ArchWiki

WordPress 是一个免费开源的内容管理系统(CMS),由 Matt Mullenweg 创建,并于 2003 年首次发布。WordPress 拥有庞大而活跃的社区,提供数以万计的免费插件和主题,使用户可以轻松自定义其 WordPress CMS 的外观和功能。WordPress 在 GPLv2 许可下发布。

WordPress 最大的特点是易于配置和管理。 搭建一个 WordPress 站点只需五分钟。WordPress 管理面板允许用户轻松配置网站的几乎每个方面,包括获取和安装插件和主题。WordPress 提供轻松的自动更新。

安装

WordPress 需要安装和配置 Apache HTTP 服务器PHPMariaDB。有关信息,请参阅各自的页面。在 PHP 配置期间,请注意某些 WordPress 功能需要 PHP 扩展,这些扩展可能默认未启用。

安装 wordpress 软件包。

注意: 虽然让 pacman 管理更新您的 WordPress 安装更容易,但这并非必要。WordPress 内置了管理更新、主题和插件的功能。如果您决定安装官方软件包,您将无法使用 WordPress 管理面板安装插件和主题,除非进行复杂的权限设置,或以 root 身份登录 FTP。无论您是否手动或以其他方式向目录添加了数据,当从您的系统中卸载 WordPress 时,pacman 不会删除 WordPress 安装目录。

配置

此处使用的配置方法假定您在本地网络上使用 WordPress。

主机配置

确保您的 /etc/hosts 文件设置正确。从本地网络访问您的 WordPress CMS 时,这将非常重要。您的 /etc/hosts 文件应如下所示:

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       lithium.kaboodle.net    localhost lithium
::1             lithium.kaboodle.net    localhost lithium
注意: 如果您计划使用主机名安装 WordPress,则需要使用代理服务器从移动设备访问您的 WordPress 安装,否则您的网站将显示错乱 #外观错乱(无样式)

配置 Apache

注意: 您需要配置 Apache HTTP 服务器 以与 PHPMariaDB 一起运行,并启用 mod_rewrite 模块,方法是取消注释 /etc/httpd/conf/httpd.conf 中的 LoadModule rewrite_module modules/mod_rewrite.so

您需要为 Apache 创建一个配置文件,以便找到您的 WordPress 安装。创建以下文件并使用您喜欢的文本编辑器进行编辑

# /etc/httpd/conf/extra/httpd-wordpress.conf
Alias /wordpress "/usr/share/webapps/wordpress"
<Directory "/usr/share/webapps/wordpress">
	AllowOverride All
	Options FollowSymlinks
	Require all granted
</Directory>

将第一行中的 /wordpress 更改为您想要的任何内容。例如,/myblog 将要求您导航到 http://hostname/myblog 以查看您的 WordPress 网站。

如果您手动安装,还请更改 WordPress 安装文件夹的路径。不要忘记将父目录附加到 php_admin_value 变量,如下所示。

# /etc/httpd/conf/extra/httpd-wordpress.conf
Alias /myblog "/mnt/data/srv/wordpress"
<Directory "/mnt/data/srv/wordpress">
	AllowOverride All
	Options FollowSymlinks
	Require all granted
</Directory>

接下来,编辑 Apache HTTP 服务器 配置文件并添加以下内容

# /etc/httpd/conf/httpd.conf
Include conf/extra/httpd-wordpress.conf

由于 WordPress 索引是用 PHP 编写的,因此在 <IfModule dir_module> 块中添加以下行

# /etc/httpd/conf/httpd.conf
<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>

现在重启 httpd.service (Apache)。

配置 Nginx

注意: 您需要配置 nginx 以与 PHPMariaDB 一起运行。

来自 https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/ 的服务器块配置示例

# Upstream to abstract backend connection(s) for php
upstream php {
       server unix:/tmp/php-cgi.socket;
       server 127.0.0.1:9000;
}

server {
       ## Your website name goes here.
       server_name domain.tld;
       ## Your only path reference.
       root /var/www/wordpress;
       ## This should be in your http block and if it is, it's not needed here.
       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 / {
               # This is cool because no php is touched for static content.
               # include the "?$args" part so non-default permalinks doesn't break when using query string
               try_files $uri $uri/ /index.php?$args;
       }

       location ~ \.php$ {
               #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
               include fastcgi_params;
               fastcgi_intercept_errors on;
               fastcgi_pass php;
               #The following parameter can be also included in fastcgi_params file
               fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

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

配置 MariaDB

可以使用多种工具配置 MariaDB,但最常见的是命令行或 phpMyAdmin

提示: 确保 MariaDB 已正确安装和配置。至少,请按照 Arch Linux 的 安装说明 进行操作。

使用 MariaDB 命令行工具

首先,以 root 身份登录。系统将要求您输入 MariaDB root 密码

$ mysql -u root -p

然后创建用户和数据库

注意: wordpress 是您的数据库名称,wp-user 是您的用户名。您可以根据需要更改它们。同时将 choose_db_password 替换为您为此数据库设置的新密码。在下一节中,系统将要求您输入这些值以及 localhost
MariaDB> CREATE DATABASE wordpress;
MariaDB> GRANT ALL PRIVILEGES ON wordpress.* TO "wp-user"@"localhost" IDENTIFIED BY "choose_db_password";
MariaDB> FLUSH PRIVILEGES;
MariaDB> EXIT

有关详细信息,请参阅 WordPress.org [1]

使用 phpMyAdmin

有关安装和配置 phpMyAdmin 的信息,请参阅 phpMyAdmin

在您的 Web 浏览器中,导航到您的 phpMyAdmin 主机并执行以下步骤

  1. 登录 phpMyAdmin。
  2. 单击“用户”,然后单击“添加用户”。
  3. 在弹出的窗口中,输入用户名和密码。
  4. 选择“创建同名数据库并授予所有权限”。
  5. 单击“添加用户”按钮以创建用户。

WordPress 安装

设置好 http 服务器、php 和 mariadb 后,就可以安装和配置 WordPress 本身了。

WordPress 安装程序将使用 Web 浏览器地址栏中的 URL 作为默认网站 URL。如果您已导航到 https://127.0.0.1/wordpress,您的网站将可以从本地网络访问,但其外观和功能将出现错乱。

  1. 导航到 http://hostname/wordpress
  2. 单击“创建配置文件”按钮。
  3. 单击“现在就开始!”按钮。
  4. 填写您在上节中创建的数据库信息
  5. 单击“提交”。

如果您安装了 wordpress,则此设置程序将没有正确的权限来创建 WordPress 使用的 wp-config.php 文件。您将必须使用 WordPress 提供的信息以 root 身份自行完成此步骤。

将出现一个页面,提示 WordPress 无法写入 wp-config.php 文件。复制编辑框中的文本,并在您的文本编辑器中以 root 身份打开 /usr/share/webapps/wordpress/wp-config.php。将复制的文本粘贴到编辑器中并保存文件。

之后,您将必须使用 chown 将 /usr/share/webapps/wordpress/ 及其内部所有文件的权限更改为用户 http 和组 http,以便 Web 服务器可以访问它

# chown http:http -R /usr/share/webapps/wordpress/

最后,单击“运行安装”,WordPress 将使用您的信息填充数据库。完成后,您将看到“成功!”页面。单击登录按钮以完成安装。

现在是时候从您的所有设备访问您的网站,以确保您的 WordPress 安装设置正确。

使用

安装主题

查找新主题

WordPress 有数以万计的主题可用。在 Google 上搜索好的主题可能就像在垃圾遍地的河流中跋涉。查找主题的好去处包括

提示: 可以使用 WordPress 的管理界面来安装插件和主题。为此,请使服务 WordPress 的用户成为您的 WordPress 目录的所有者。对于 Apache,此用户通常是 http。

使用管理面板安装

在使用管理面板安装主题之前,您需要在您的 WordPress 主机上设置 FTP 服务器。为了保持高水平的保护,您可以专门为 WordPress 在您的系统上设置一个用户,将其主目录设置为 <WordPress 安装路径>/wp-content,禁止匿名登录,并允许登录的用户数量不超过 WordPress 所需的数量(以及您的设置所需的其他用户)。

设置好 FTP 服务器后,登录您的 WordPress 安装,然后单击“外观->安装主题->上传”。从那里选择包含您主题的 zip 文件,然后单击“立即安装”。您将看到一个要求输入 FTP 信息的框,输入信息并单击“继续”。如果 WordPress 报告无法写入目录,您可能需要更新文件所有权权限。如果您一直在密切关注,那么您现在应该已经安装了一个主题。如果您愿意,可以激活它。

手动安装

下载存档并解压到 wp-content/themes 文件夹

$ cd /path/to/wordpress/root/directory
$ cd wp-content/themes

获取主题存档并解压

$ wget http://www.example.com/MyTheme.zip
$ unzip MyTheme.zip

删除存档(可选)

$ rm MyTheme.zip

请务必遵循主题作者提供的任何其他说明。

从主题选择器中选择您的新主题(外观 > 主题)。

安装插件

安装插件的步骤与安装主题的步骤相同。只需单击左侧导航栏中的“插件”链接,然后按照步骤操作即可。

更新

有时当您登录WordPress时,会收到通知,告知您有可用更新。如果您已正确安装并配置了FTP客户端,并且拥有在WordPress安装路径中写入的正确文件系统权限,那么您应该能够通过单击按钮执行更新。只需按照步骤操作即可。

或者,您可以使用SSH和SSH SFTP Updater Support 插件来更新您的安装。

故障排除

外观错乱(没有样式)

当您在Web浏览器(桌面或移动设备)中查看您的WordPress网站时,如果该浏览器没有将其主机名正确映射到IP地址,则该网站将显示为没有样式。

发生这种情况是因为您在初始设置时使用了带有服务器主机名的URL,而不是IP地址,并且WordPress已将其用作默认网站URL。

要解决此问题,您需要编辑您的/etc/hosts文件或设置代理服务器。请参阅Squid

另一种选择是更改WordPress数据库表中的一个值,特别是wp_options表。解决方法是将siteurl选项更改为直接指向域名,而不是“localhost”。

插件无法安装:无法创建目录

您的WordPress站点需要对其本地文件具有适当的权限。它没有创建文件/目录的权限。使用Arch的Apache使用用户`http`。

要授予适当的权限,请运行以下命令

# chown -R http:http your-wordpress-directory/wp-content

此外,如果您使用php-fpm(版本7.4及更高版本)的设置,则需要覆盖php-fpm systemd单元文件,因为php-fpm已加固,使/usr为只读。编辑 php-fpm.service并在文件中添加以下行

override.conf
[Service]
ReadWritePaths=/usr/share/webapps/wordpress

无法将插件保存到localhost

WordPress默认仅使用FTP服务器下载插件。为了也在本地下载它们,请附加以下配置

# wordpress_root_location/wp-config.php
define('FS_METHOD', 'direct');

裁剪您的图像时出错。

Wordpress需要`php-gd`来修改图像。安装 php-gd,然后通过取消注释/etc/php/php.ini中的以下行来启用扩展。

extension=gd

调用未定义的函数 mysql_connect()

如果您在使用php>=7.0.0的mysql/mariadb,并在wordpress配置中启用了调试,通常会看到此错误。

可以通过取消注释/etc/php/php.ini中的以下行来解决此问题

 extension=mysqli
 

启动nginx后出现 502 Gateway Error

这可能是由于nginx配置文件中定义的php上游server 127.0.0.1:9000;未安装和配置引起的。

安装 php-fpm 软件包。打开以下文件并转到该行

# /etc/php/php-fpm.d/www.conf
listen = /run/php-fpm/php-fpm.sock

将其更改为

# /etc/php/php-fpm.d/www.conf
listen = '127.0.0.1:9000'

启用重启 php-fpm

重启 nginx

技巧和窍门

WP-CLI

WP-CLI 是 WordPress 的命令行界面。您无需使用Web浏览器即可更新插件、配置多站点安装等等。

参见