本教程将向您展示如何在Debian 9-Stretch的LAMP堆栈上安装和配置最新版本的WordPress。毫无疑问,Wordpress是当今互联网出版中最受欢迎的开源内容管理系统(CMS)之一,为全球6000多万个网站提供支持,无论是小型博客网站还是知名大品牌。Wordpress基于PHP和MySQL引擎,通常与LAMP集合相关联,安装在专用服务器或虚拟专用服务器或共享网络托管提供商上。LAMP缩写描述了一组软件,也称为软件包,通常由Linux开源内核、Apache HTTP服务器、PHP服务器端解释性编程语言和MariaDB关系数据库管理系统(RDBMS)组成,无论选择何种发行版,Apache HTTP服务器因其稳定性、灵活性和性能而成为互联网上最受欢迎的开源web服务器之一,MariaDB是最流行的数据库软件之一,由开源社区从原始MySQL分叉并同时开发。
要求:
在虚拟专用服务器或虚拟机上或直接在专用裸机上干净安装Debian 9操作系统。
在VPS或远程服务器或直接控制台访问的情况下进行SSH远程访问
服务器上配置的网络接口的至少一个静态IP地址
如果网页应该在互联网上公开,您需要一个已注册的公共域名,并配置了适当的DNS记录。在本教程中,我们将使用linuxbox.ml作为示例域,并使用主路由器后面NAT中私有空间的静态IP地址。通过将Apache 80和443端口从路由器端转发到内部自托管虚拟机局域网,可以从互联网访问该域。
第一部分-安装LAMP软件包
在开始安装所有LAMP组件之前,您要做的第一件事是登录Debian 9服务器,并通过以root权限发出以下命令,对所有系统组件(如内核升级、软件包更新或安全补丁)执行最新程序。
apt-get update
apt-get upgrade
apt-get dist-upgrade
下一步,您应该通过运行以下命令将主机名变量替换为您自己的描述性名称来设置计算机的名称。请注意,您可能需要重新启动系统,以便相应地应用新的主机名。
hostnamectl set-hostname hostname.yourdomain.com
您还应该安装以下实用程序,这些实用程序稍后将用于各种故障排除问题。
apt install net-tools sudo wget curl bash-completion
应用机器主机名后,以root权限再次登录并安装Apache HTTP服务器,默认情况下,该服务器已预编译为二进制包,由Debian 9存储库提供。
apt install apache2
接下来,通过发出以下命令安装最新版本的PHP语言解释器和Apache web服务器所需的所有模块,以便部署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
为了使LAMP堆栈完整,现在缺少的最后一个组件是MariaDB数据库服务器。执行以下命令,安装MariaDB服务器以及从Apache HTTP服务器访问数据库所需的PHP模块。
apt install php7.0-mysql mariadb-server mariadb-client
安装MariaDB数据库后,启动守护进程并通过运行mysql_secure_installation脚本来保护数据库,如以下摘录所示。对于脚本提示的所有问题,主要回答“是”。此外,请确保为root帐户选择强密码。请注意,MySQL根帐户与Linux根帐户不同。第一个仅用于管理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!
我们还没有完成MariaDB数据库的安全保护。默认情况下,您可以使用数据库根帐户从localhost登录MariaDB,而无需输入密码。为防止可能的安全问题,请使用root用户登录数据库并发出以下命令。
mysql –u root
MariaDB> use mysql;
MariaDB> update user set plugin='' where User='root';
MariaDB> flush privileges;
MariaDB> quit
![图片[1]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291097071.png)
现在,通过尝试使用没有密码的root帐户登录来测试数据库。您应该被拒绝访问MariaDB数据库。
下一步,我们将启用和配置TLS,并为Apache web服务器重写模块,默认情况下这些模块是禁用的。运行以下命令以启用这两个模块。
a2enmod rewrite ssl
a2ensite default-ssl.conf
然后,打开两个已启用站点的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>
![图片[2]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291173551.png)
在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
![图片[3]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291199407.png)
如果上述摘录中所示的行已经存在于Apache SSL配置文件中,请确保将其修改为如上所述的样子。为了应用这些设置,请启用Apache headers模块,并通过执行以下命令重新启动服务:
a2enmod headers
systemctl restart apache2.service
对于生产网站,必须启用Apache TLS模块,因为WordPress CMS主要通过PHP网关生成动态内容,并为其内部用户处理身份验证过程。使用TLS技术可以保证传输的信息在两端都是加密的,并且连接是安全的。第三方或中间人可以拦截流量,但不能解密内容,因为信息不是以纯文本传递的。
完成上述所有更改后,测试Apache配置以检测潜在的语法错误,如果一切正常,则重新启动LAMP守护进程以反映到目前为止所做的所有更改,并通过发出以下命令在系统范围内启用服务。
apachectl –t
systemctl restart apache2.service mariadb.service
systemctl enable apache2.service mariadb.service
最后,通过发出netstat命令检查Apache和MariaDB服务是否在监听状态下打开了端口,并使用egrep过滤输出。到目前为止,Apache web服务器应该已经公开了端口80和443(对应于http和https协议),MariaDB应该只绑定在localhost:3306套接字上。对netstat命令使用-n标志来禁止显示服务名称。
netstat -tlp| egrep 'http|mysql'
![图片[4]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291288489.png)
要确保您的web服务器可以通过HTTP和HTTPS协议从互联网访问,请打开浏览器并导航到您的域名。通过HTTPS协议浏览时,浏览器中将显示证书错误。这是因为Apache默认TLS配置文件配置为使用自签名证书。您应该接受TLS错误,并继续导航到默认网页,如下所示。
![图片[5]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291325042.png)
![图片[6]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291335616.png)
如果您无法从互联网访问您的域默认网页,您应该首先验证系统中的某些防火墙规则是否阻止了请求,或者确保路由器上的正确端口被转发到您的内部局域网,以防服务器位于NAT网络之后。您可能还想检查域注册器面板中的DNS记录,确保它们指向您的WAN IP,以及记录是否在互联网上传播完毕。
为了测试PHP在服务器端是否按预期工作,在/var/www/html/system路径中创建一个PHP-PHP,这是Apache web服务器的默认web文档根路径,发出以下命令并从浏览器导航到以下URI以获取结果:http://www.yourdomain.com/info.php
echo '<?php phpinfo(); ?>' > /var/www/html/info.php
![图片[7]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291371725.png)
第二部分-安装Wordpress
现在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;
![图片[8]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291425819.png)
接下来,使用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
![图片[9]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291480386.png)
如下所述修改Apache webroot路径的权限,以授予web服务器www数据组对安装目录的完全写入权限。此配置将允许Apache web服务器在此特定系统路径下创建或修改文件和目录。最重要的是上传目录和.htaccess文件,可用于控制和扩展Apache功能。
chmod –R 775 /var/www/html/
chgrp –R www-data /var/www/html/
ls –al /var/www/html
![图片[10]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291526172.png)
现在,一切就绪,让我们开始安装Wordpress。安装过程将从浏览器执行。打开浏览器,通过HTTPS协议访问您的域名。在安装的第一个屏幕上点击Let’s go按钮开始安装。
![图片[11]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291542793.png)
在下一个安装屏幕中,添加您之前为Wordpress安装创建的数据库名称、数据库访问凭据和数据库主机,然后单击Submit按钮继续。数据库的配置将保存在/var/www/html/wp-config.php中。您可以在以后手动修改该文件以用于特殊的Wordpress目的。
![图片[12]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291558687.png)
在下一个屏幕上,单击运行安装按钮并填写您的网站标题、网站管理员凭据和电子邮件地址。安装脚本应自动生成强密码。您可以选择保存此密码或提供自己的强密码。完成后,点击安装Wordpress按钮以完成安装过程。
![图片[13]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291580993.png)
![图片[14]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291587058.png)
最后,安装成功完成后,使用安装过程中创建的凭据登录Wordpress仪表板,并开始管理自己的网站。
![图片[15]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291602512.png)
![图片[16]_在Debian 9上部署LAMP环境安装WordPress_马特资源网](http://www.iamlz.com/wp-content/uploads/2025/03/1742291609566.png)
祝贺您已在Debian 9的LAMP软件包(代号Stretch)上成功安装了最新版本的Wordpress CMS。
暂无评论内容