在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数据库的所有特权。 更换 wpuser
和 your-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安装向导。 选择一种语言。
如果未显示安装向导,则可能需要安装一些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设置向导,则可以看到HTTP自动重定向到HTTPS连接。
步骤6:使用安装向导完成安装
创建一个管理员帐户,然后单击 安装WordPress 按钮。
现在,您的新WordPress网站已安装。
将WWW重定向到非WWW(或副版本)
我们已经启用了将HTTP重定向到HTTPS的功能,剩下要做的就是将www重定向到非www,反之亦然。 如果您使用的是WordPress,则非常简单。 只需转到 WordPress资讯主页 > 设定值 > 一般 并在中设置您的首选版本(www或非www) WordPress地址 和 网站地址。 确保包括 https://
字首。
修复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域。
Apache虚拟主机文件
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仪表板 -> 外挂程式,点击 添新 安装新的插件。
然后输入 WP邮件SMTP 在搜索框中。 安装并激活 WPForms的WP邮件SMTP 插入。
重新加载WordPress仪表板网页,您将看到 WP邮件SMTP 在左侧菜单栏上。 点击它并选择 设定值。
然后向下滚动到Mailer部分。 默认情况下,选择PHP邮件程序。 我们需要将其更改为 其他SMTP。
向下滚动,您将需要输入SMTP设置。
- 输入邮件服务器的主机名。
- 选择“ TLS”作为“加密”。
- 使用端口587。
- 启用身份验证。
- 输入您的域的电子邮件地址和密码。
保存设置后,您可以通过注销WordPress仪表板来测试电子邮件发送,然后单击 忘记密码 链接以发送密码重置电子邮件。
包起来
我希望本教程可以帮助您在具有Apache,MariaDB和PHP7.4的Ubuntu 20.04上安装WordPress。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 🙂您可能还希望启用HTTP / 2协议以提高网站性能。