在Ubuntu 20.04上使用Apache,MariaDB,PHP7.4(LAMP)安装WordPress

本教程将向您展示如何在Ubuntu 20.04上使用Apache,MariaDB和PHP7.4(LAMP Stack)安装WordPress。 WordPress是世界上最流行的CMS(内容管理系统)。 据估计,当今超过三分之一的网站都由WordPress提供支持。 将PHP7.4制作到Ubuntu 20.04存储库中,WordPress可以完美运行。

先决条件

要遵循本教程,您需要有一台至少具有1GB RAM的Ubuntu 20.04服务器。 如果您正在寻找VPS(虚拟专用服务器),则可以单击此特殊链接以在DigitalOcean上获得$ 50的免费信用。 (仅适用于新用户)。 如果您已经是DigitalOcean用户,则可以单击此特殊链接以在Vultr上获得$ 50的免费信用(仅适用于新用户)。

您还需要一个域名,以便访问者可以在Web浏览器地址栏中键入域名来访问您的网站。 我在NameCheap上注册了我的域名,因为价格低廉,并且终身免费提供Whois隐私保护。

本教程假定您已经在Ubuntu 20.04上设置了LAMP堆栈。 如果没有,请查看以下教程。

  • 如何在Ubuntu 20.04上安装LAMP Stack(Apache,MariaDB,PHP7.4)

完成LAMP安装后,回到这里继续阅读。

步骤1:下载WordPress

SSH到您的Ubuntu 20.04服务器并更新现有软件。

sudo apt update && sudo apt upgrade

接下来,转到wordpress.org下载页面并下载zip存档。 您可以通过右键单击下载按钮并选择直接获取链接。 copy link location

然后在命令行中输入 get 然后是直接下载链接,将WordPress下载到您的Ubuntu 20.04服务器。

wget https://wordpress.org/latest.zip

接下来,将档案解压缩到 /var/www/ 目录与 unzip

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip latest.zip -d /var/www/

-d 选项指定目标目录。 WordPress Web文件将被提取到 /var/www/wordpress。 我们可以像下面这样重命名该目录,因此我们可以轻松地识别每个目录。 更换 example.com 您的真实域名。

sudo mv /var/www/wordpress /var/www/example.com

步骤2:为WordPress网站创建数据库和用户

使用以下命令以root用户身份登录MariaDB shell。

sudo mariadb -u root

要么

sudo mysql -u root

登录后,使用以下命令为WordPress创建数据库。 我命名了 wordpress,但是您可以使用任何喜欢的名称,例如网站名称。 (不要忽略分号。)

create database wordpress;

然后输入以下命令为WordPress创建数据库用户。 此命令还向用户授予WordPress数据库的所有特权。 更换 wpuseryour-password 使用您的首选用户名和密码。

grant all privileges on wordpress.* to [email protected] identified by 'your-password';

刷新特权表以使更改生效,然后退出MariaDB shell。

flush privileges;

exit;

步骤3:设定WordPress

转到您的WordPress目录。

cd /var/www/example.com/

复制样本配置文件并将其重命名为 wp-config.php

sudo cp wp-config-sample.php wp-config.php

现在,使用命令行文本编辑器(如Nano)编辑新的配置文件。

sudo nano wp-config.php

查找以下行,并将红色文本替换为您在上一步中创建的数据库名称,用户名和密码。

/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

保存并关闭文件。 要在Nano文本编辑器中保存文件,请按 Ctrl+O,然后按 Enter 确认。 接下来,按 Ctrl+X 退出。

我们还需要设置Apache用户(www-data)作为WordPress网站目录的所有者,请使用以下命令。

sudo chown www-data:www-data /var/www/example.com/ -R

步骤4:为WordPress创建Apache虚拟主机文件

运行以下命令,为您的WordPress网站创建虚拟主机文件。 /etc/apache2/sites-available/ 目录。

sudo nano /etc/apache2/sites-available/example.com.conf

将以下文本放入文件中。 用您自己的域名替换红色文本。 不要忘记在DNS管理器中为您的域名创建A记录。

<VirtualHost *:80>       
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /var/www/example.com

        #This enables .htaccess file, which is needed for WordPress Permalink to work. 
        <Directory "/var/www/example.com">
             AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>

保存并关闭文件。 然后测试配置。

sudo apache2ctl configtest

如果看到“语法正确”,则启用此虚拟主机。

sudo a2ensite example.com.conf

并重新加载Apache以使更改生效。

sudo systemctl reload apache2

为您的域名设置正确的A记录,然后在浏览器地址栏中输入您的域名。

example.com

要么

example.com/wp-admin/install.php

您将看到WordPress安装向导。 选择一种语言。

安装wordpress-ubuntu-17.10

如果未显示安装向导,则可能需要安装一些PHP7扩展。

sudo apt install php7.4-mbstring php7.4-xml php7.4-mysql php7.4-common php7.4-gd php7.4-bcmath php7.4-json php7.4-cli php7.4-curl php7.4-zip

然后重新加载Apache,现在应该显示向导。

sudo systemctl reload apache2

在设置向导中输入敏感信息之前,建议启用HTTPS以防止流量劫持。

步骤5:启用HTTPS

为了加密HTTP流量,我们可以通过安装由Let’s Encrypt发行的免费TLS证书来启用HTTPS。 运行以下命令在Ubuntu 20.04服务器上安装Let’s Encrypt客户端(certbot)。

sudo apt install certbot python3-certbot-apache

并运行此命令以获取并安装TLS证书。

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email [email protected] -d yourdomain.com,www.yourdomain.com

er

  • --apache:使用Apache插件。
  • --agree-tos:同意服务条款。
  • --redirect:通过301重定向强制HTTPS。
  • --hsts:将Strict-Transport-Security标头添加到每个HTTP响应。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。
  • --uir:在每个HTTP响应中添加“ Content-Security-Policy:upgrade-insecure-requests”标头。
  • --staple-ocsp:启用OCSP装订。 有效的OCSP响应被装订到服务器在TLS期间提供的证书。
  • --email:用于注册和恢复联系的电子邮件。
  • -d 标志后面是域名列表,以逗号分隔。 您最多可以添加100个域名。

现在应该获得证书并自动安装。

WordPress的Apache https

现在,如果重新加载WordPress设置向导,则可以看到HTTP自动重定向到HTTPS连接。

步骤6:使用安装向导完成安装

创建一个管理员帐户,然后单击 安装WordPress 按钮。

WordPress的Ubuntu的20.04 PHP7.4的

现在,您的新WordPress网站已安装。

安装wordpress ubuntu 20.04 LAMP

将WWW重定向到非WWW(或副版本)

我们已经启用了将HTTP重定向到HTTPS的功能,剩下要做的就是将www重定向到非www,反之亦然。 如果您使用的是WordPress,则非常简单。 只需转到 WordPress资讯主页 > 设定值 > 一般 并在中设置您的首选版本(www或非www) WordPress地址网站地址。 确保包括 https:// 字首。

letsencrypt apache重定向

修复Double 301重定向

我们在 WordPress地址网站地址 领域。 但是,存在双重301重定向问题。 首先,Apache服务器将HTTP重定向到HTTPS,然后WordPress重定向到www或非www域。

有人可能会争辩说,执行双301重定向可能会丢失SEO链接汁。 如果您对此感到担心,则可以使用下面的方法使所有域版本都直接到达最终目的地,因此将有一个301重定向。

编辑您的虚拟主机文件。 (不是SSL虚拟主机)

sudo nano /etc/apache2/sites-enabled/example.com.conf

CertBot客户端在文件中添加了以下几行,以将HTTP重定向到HTTPS。

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

要重定向到www或非www域,您需要更改最后一行。 更换 %{SERVER_NAME} 以及如下所示的首选域版本。 (www域)

RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

如果您更喜欢非www域,请将其更改为以下内容。

RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

然后保存并关闭文件。 我们还需要编辑SSL虚拟主机。

sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

在结束标记上方添加以下行,以将非www重定向到www域。

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

如果要将www重定向到非www域,请添加以下几行。

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

保存并关闭文件。 重新加载Apache服务以使更改生效。

sudo systemctl reload apache2

更清楚地说,以下是我的Apache虚拟主机文件和SSL虚拟主机文件的屏幕快照,用于将非www重定向到www域。

wordpress apache www或非www

Apache虚拟主机文件

wordpress apache www或非www重定向https

Apache SSL虚拟主机文件

确保您在中设置了首选域版本 WoredPress地址网站地址 在编辑Apache虚拟主机文件之前。 如果WordPress设置与Apache配置矛盾,则您的网站将进入重定向循环。

TLS证书自动续订

要自动续订我们的加密证书,只需编辑根用户的crontab文件。

sudo crontab -e

然后在底部添加以下行。

@daily certbot renew --quiet && systemctl reload apache2

需要重新加载Apache才能将新证书提供给客户端。

增加上传文件大小限制

如果您使用Apache PHP模块运行PHP脚本,则没有上传文件大小限制。 如果使用PHP-FPM运行PHP脚本,请更改文件大小限制,以便可以将大文件上载到WordPress媒体库。 在PHP-FPM中上传的默认最大文件大小为2MB。 要增加上传大小限制,请编辑PHP配置文件。

sudo nano /etc/php/7.4/fpm/php.ini

找到以下行(行846)。

upload_max_filesize = 2M

如下更改值:

upload_max_filesize = 20M

然后找到以下行(694行)。

post_max_size = 8M

更改PHP将接受的POST数据的最大大小。

post_max_size = 20M

保存并关闭文件。 或者,您可以运行以下两个命令来更改值,而无需手动打开文件。

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/7.4/fpm/php.ini

sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/7.4/fpm/php.ini

然后重新启动PHP-FPM。

sudo systemctl restart php7.4-fpm

如何在WordPress中发送电子邮件

您的WordPress网站需要发送电子邮件,例如帐户注册电子邮件,密码重置电子邮件,评论通知电子邮件等。您无需遵循昂贵的第三方解决方案(例如Gsuite)来为您的网站创建专业的电子邮件地址,而是可以按照此iRedMail教程进行设置用您自己的域名设置您自己的邮件服务器,这样您就可以拥有无​​限的邮箱并发送无限的电子邮件而无需花很多钱。

请注意,在两个不同的虚拟专用服务器上安装邮件服务器和WordPress是一个好习惯,因为您不希望邮件服务器降低WordPress站点速度,并且如果邮件服务器和WordPress站点的IP地址泄漏,它们会泄漏都位于同一台虚拟专用服务器上,这意味着黑客可以绕过您正在使用的任何CDN(内容分发网络),并直接在原始服务器上发起DDoS攻击。

邮件服务器启动并运行后,您可以在WordPress中安装SMTP插件,以便它可以连接到邮件服务器并发送电子邮件。 去你的 WordPress仪表板 -> 外挂程式,点击 添新 安装新的插件。

WordPress的添加新插件

然后输入 WP邮件SMTP 在搜索框中。 安装并激活 WPForms的WP邮件SMTP 插入。

wp邮件smtp

重新加载WordPress仪表板网页,您将看到 WP邮件SMTP 在左侧菜单栏上。 点击它并选择 设定值

wp邮件smtp设置

然后向下滚动到Mailer部分。 默认情况下,选择PHP邮件程序。 我们需要将其更改为 其他SMTP

WordPress的发送电子邮件

向下滚动,您将需要输入SMTP设置。

  • 输入邮件服务器的主机名。
  • 选择“ TLS”作为“加密”。
  • 使用端口587。
  • 启用身份验证。
  • 输入您的域的电子邮件地址和密码。

wordpress设置您自己的电子邮件服务器

保存设置后,您可以通过注销WordPress仪表板来测试电子邮件发送,然后单击 忘记密码 链接以发送密码重置电子邮件。

WordPress的忘记了密码

包起来

我希望本教程可以帮助您在具有Apache,MariaDB和PHP7.4的Ubuntu 20.04上安装WordPress。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 🙂您可能还希望启用HTTP / 2协议以提高网站性能。

Sidebar