在 Debian 9 的 LAMP 上安装 WordPress在 Debian 9 的 LAMP 上安装 WordPress在 Debian 9 的 LAMP 上安装 WordPress在 Debian 9 的 LAMP 上安装 WordPress
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Debian 9 的 LAMP 上安装 WordPress

本教程将向您展示如何在 Debian 9 - Stretch 中的 LAMP 堆栈上安装和配置最新版本的 WordPress。毫无疑问,Wordpress 是当今用于互联网发布的最流行的开源内容管理系统或 CMS 之一,它为全球超过 6000 万个网站提供支持,无论是小型博客网站还是著名的知名品牌。基于 PHP 和 MySQL 引擎,Wordpress 通常与 LAMP 集合相关联,安装在专用服务器或虚拟专用服务器或共享 Web 托管提供商上。 LAMP 首字母缩略词描述了一组软件,又名软件包,通常由 Linux 开源内核组成,无论选择何种发行版,Apache HTTP 服务器,它是由于其稳定性、灵活性和性能,PHP 服务器端解释编程语言和 MariaDB 关系数据库管理系统 (RDBMS),互联网上最流行的开源 Web 服务器,它最流行的数据库软件之一,由开源社区从原始 MySQL 分叉并同时开发。

要求:

  • 在虚拟专用服务器或虚拟机上或直接在自用裸机上全新安装 Debian 9 操作系统。
  • 在 VPS 或远程服务器或直接控制台访问的情况下进行 SSH 远程访问
  • 在服务器上配置的网络接口至少有一个静态 IP 地址
  • 如果该网页应该在互联网上公开可用,您需要一个注册的公共域名并配置正确的 DNS 记录。在本教程中,我们将使用 linuxbox.ml 作为示例域和来自私人空间的静态 IP 地址,在 NAT 中,在主路由器后面。通过将 Apache 80 和 443 端口从路由器端转发到内部自托管虚拟机 LAN,可以从 Internet 访问该域。

第 1 部分 – 安装 LAMP 软件包

  1. 在开始安装所有 LAMP 组件之前,您要做的第一件事是登录到 Debian 9 服务器并为所有系统组件执行最新程序,例如内核升级、软件包更新或安全补丁,通过以 root 权限发出以下命令。

apt-get update
apt-get upgrade
apt-get dist-upgrade

  1. 在下一步中,您应该通过运行以下命令将主机名变量替换为您自己的描述性名称来设置您的机器名称。请注意,您可能需要重新启动系统才能相应地应用新的主机名。

hostnamectl set-hostname hostname.yourdomain.com

  1. 您还应该安装以下实用程序,这些实用程序稍后会派上用场以解决各种故障排除问题。

apt install net-tools sudo wget curl bash-completion

  1. 应用机器主机名后,以 root 权限再次登录并安装 Apache HTTP 服务器,默认情况下,它已预编译为二进制包并由 Debian 9 存储库提供。

apt install apache2

  1. 接下来,安装最新版本的 PHP 语言解释器和 Apache 网络服务器所需的所有必需模块,以便通过发出以下命令部署 WordPress CMS。

apt install libapache-mod-php7.0 php7.0 php7.0-gd php7.0-xml php7.0-curl php7.0-mbstring php7.0-mcrypt php7.0-xmlrpc

  1. 为了使 LAMP 堆栈完整,现在缺少的最后一个组件是 MariaDB 数据库服务器。执行以下命令安装 MariaDB 服务器以及从 Apache HTTP 服务器访问数据库所需的 PHP 模块。

apt install php7.0-mysql mariadb-server mariadb-client

安装 MariaDB 数据库后,启动守护进程并保护数据库,我正在运行 mysql_secure_installation 脚本,如下面的摘录所示。主要回答是脚本提示您的所有问题。另外,请确保为 root 帐户选择一个强密码。请注意,MySQL root 帐户与 Linux root 帐户不同。第一个仅用于管理 MariaDB 数据库,第二个是每个 Linux 系统中的超级用户帐户。这些帐户在系统中从不重叠。

systemctl start mariadb
mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

  1. 我们尚未完成保护 MariaDB 数据库的工作。默认情况下,您可以使用数据库 root 帐户从本地主机登录 MariaDB,而无需输入密码。为防止可能出现的安全问题,请使用 root 用户登录数据库并发出以下命令。

mysql –u root
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit

现在,通过尝试使用没有密码的 root 帐户登录来测试数据库。您应该被拒绝访问 MariaDB 数据库。

  1. 下一步,我们将为 Apache 网络服务器启用和配置 TLS 和重写模块,这些模块默认情况下处于禁用状态。运行以下命令以启用这两个模块。

a2enmod rewrite ssl
a2ensite default-ssl.conf

  1. 然后,打开两个已启用站点的 Apache 配置文件,并在 DocumentRoot 指令下方添加以下块,如以下屏幕截图所示。

nano /etc/apache2/sites-enabled/000-default.conf
nano /etc/apache2/sites-enabled/default-ssl.conf

在两个配置文件中一次编辑一个,添加以下代码块:

    <Directory /var/www/html>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Require all granted
    </Directory>

  1. 在apache default-ssl.conf TLS 配置文件中,如果不存在,您还可以添加以下内容,以伪造Apache SSL 协议的安全性。这些代码行应该修复常见的 SSL 漏洞。

SSLProtocol all -SSLv2 -SSLv3
# Add SSL Cipher in one long line
SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on
SSLOptions +StrictRequire
 
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff

如果以上摘录中所示的行已存在于 Apache SSL 配置文件中,请确保将它们修改为如上所述。为了应用这些设置,启用 Apache headers 模块并通过执行以下命令重新启动服务:

a2enmod headers
systemctl restart apache2.service

对于生产网站,启用 Apache TLS 模块应该是强制性的,因为 WordPress CMS 通过 PHP 网关生成大部分动态内容,并为其内部用户处理身份验证过程。使用 TLS 技术可以保证传输的信息在两端都被加密并且连接是安全的。第三方或中间人可以拦截流量但无法解密内容,因为信息不是以纯文本形式传递的。

  1. 完成上述所有更改后,测试 Apache 配置以检测潜在的语法错误,如果一切正常,则重新启动 LAMP 守护进程以反映到目前为止所做的所有更改,并通过发出以下命令在系统范围内启用服务以下命令。

apachectl –t
systemctl restart apache2.service mariadb.service
systemctl enable apache2.service mariadb.service

  1. 最后,通过发出netstat 命令检查Apache 和MariaDB 服务是否打开处于监听状态的端口,并使用egrep 过滤输出,Apache Web 服务器应该有端口 80 和 443(对应于 http 和 https 协议)通常公开并且 MariaDB 应该只绑定到 localhost:3306 套接字。针对 netstat 命令使用 -n 标志来禁止显示服务名称。

netstat -tlp| egrep 'http|mysql'

  1. 为确保可以通过 HTTP 和 HTTPS 协议从互联网访问您的网络服务器,请打开浏览器并导航至您的域名。通过HTTPS协议浏览,浏览器会提示证书错误。这是因为 Apache 默认的 TLS 配置文件配置为使用自签名证书。您应该接受 TLS 错误并继续导航到默认网页,如下图所示。

http://www.yourdomain.com

https://www.yourdomain.com

如果您无法从 Internet 访问您的域默认网页,您应该首先验证系统中的某些防火墙规则是否阻止了请求,或者确保路由器上的正确端口被转发到您的内部 LAN,以防服务器位于 NAT 后面-ed 网络。您可能还想检查域注册商面板中的 DNS 记录,并确保它们指向您的 WAN IP,以及记录是否已完成在 Internet 上的传播。

  1. 为了测试 PHP 是否在服务器端按预期工作,在 /var/ 中创建一个 PHP php www/html/ 系统路径,这是Apache Web 服务器默认的Web 文档根路径,发出以下命令并从浏览器导航到以下URI 得到结果:http://www. yourdomain.com/info.php

echo '<?php phpinfo(); ?>' > /var/www/html/info.php

第二部分 – 安装 WordPress

  1. 现在 LAMP 堆栈已完全配置,Wordpress CMS 的安装相对简单。首先,登录 MariaDB 数据库并为 WordPress 创建一个安装数据库,并使用正确的密码创建一个用户来安装和管理 WordPress CMS,方法是发出以下命令。随意替换数据库名称和数据库凭据以满足您自己的要求。

mysql –u root -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress-user'@'localhost' IDENTIFIED BY 'wordpress-pass';
FLUSH PRIVILEGES;

  1. 接下来,使用 wget 实用程序从官方网站下载最新的 WordPress tarball,并使用 tar 实用程序提取压缩文件。通过发出以下命令将安装文件复制到 Apache Web 服务器文档根路径。此外,请确保删除默认的 index.html 网页。

wget http://wordpress.org/latest.tar.gz
tar xfz latest.tar.gz
cp -rf wordpress/* /var/www/html/
rm /var/www/html/index.html

  1. 如下所述修改Apache webroot路径的权限,以授予Web服务器www-data组对安装目录的完全写入权限。此配置将允许 Apache Web 服务器在此特定系统路径下创建或修改文件和目录。最重要的是 uploads 目录和 .htaccess 文件,它们可用于控制和扩展 Apache 功能。

chmod –R 775 /var/www/html/
chgrp –R www-data /var/www/html/
ls –al /var/www/html

  1. 现在,一切就绪,让我们开始安装 WordPress。安装过程将从浏览器执行。打开浏览器并通过 HTTPS 协议访问您的域。在安装的第一个屏幕上,点击 Let's go 按钮开始安装。

  1. 在下一个安装屏幕中,添加数据库名称、数据库访问凭据和您之前为 WordPress 安装创建的数据库主机,然后点击提交按钮继续。数据库的配置将保存在 /var/www/html/wp-config.php 您可以在以后手动修改该文件以用于特殊的 WordPress 用途。

  1. 在下一个屏幕上单击运行安装 按钮并填写您的网站标题、网站管理员凭据和电子邮件地址。安装脚本应自动生成强密码。您可以选择保存此密码或提供您自己的强密码。完成后,点击安装 WordPress 按钮完成安装过程。

  1. 最后,安装成功完成后,使用在安装过程中创建的凭据登录到 WordPress 仪表板,然后开始管理您自己的网站。

恭喜!您已经在 Debian 9 中的 LAMP 软件包之上成功安装了最新版本的 WordPress CMS,代号为 Stretch。

©2015-2025 艾丽卡 support@alaica.com