配置 Wordpress
这部分有点复杂。
wp-config.php 文件需要编辑,但在此之前,我们必须下载要添加到配置文件中的唯一密钥。
要获取这些密钥,请访问 WordPress 开发人员提供的在线生成器。
这将输出许多长字符串,每个字符串都与一个特定的配置选项相关联。
每个字符串都与配置文件中的以下值相关联:
AUTH_KEY
SECURE_AUTH_KEY
LOGGED_IN_KEY
NONCE_KEY
AUTH_SALT
SECURE_AUTH_SALT
LOGGED_IN_SALT
NONCE_SALT
将这些值复制到另一个文件中。
接下来使用以下命令打开 Wordpress 配置文件:
sudo nano /var/www/wordpress/wp-config.php
找到上面的值并为每个值粘贴密钥。
之后,向上滚动并编辑以下值:
DB_NAME
DB_USER
DB_PASSWORD
上述值是较早创建的(使用 MySQL)。
保存并关闭该文件。
完成安装
我们现在可以将浏览器指向 https://SERVER_IP/wordpress 并通过基于 Web 的安装程序完成安装。
单击几下并输入一些内容后, Wordpress 实例将启动并运行。
启用 SSL
在我们进入 Apache 的配置和 Wordpress 的安装之前,我们将准备我们的服务器以使用 SSL(安全套接字层),这是各种网络协议,它们协同工作以将正常的 HTTP 流量包装在受保护的加密包装器中.所以 HTTP 变成了 HTTPS。
由于我只是在设置测试服务器,因此我将为 IP 地址创建自签名 SSL 证书。
为此,请按照下列步骤操作。
使用以下命令生成 SSL 证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
运行该命令时,我们需要回答以下问题:
国家名称(2 个字母代码)[AU]:
州或者省名称(全名)[Some-State]:
地点名称(例如,城市)[]:
组织名称(例如,)[]
组织单位名称(例如,部分)[]:
通用名称(例如服务器 FQDN 或者姓名)[]:
电子邮件地址 []:
对于自签名证书,在 Common Name 条目中输入服务器的 IP 地址很重要。
接下来我们将 Apache 配置为使用 SSL。
使用以下命令创建一个新文件:
sudo nano /etc/apache2/conf-available/ssl-params.conf
在该新文件中,粘贴以下内容:
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On # Disable preloading HSTS for now. You can use the commented out header line that includes # the "preload" directive if you understand the implications. # Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off
现在我们要创建一个新的 default-ssl.conf 文件。
在我们这样做之前,请使用以下命令备份原始文件:
sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak
使用以下命令创建新文件:
sudo nano /etc/apache2/sites-available/default-ssl.conf
在该新文件中,粘贴以下内容:
ServerAdmin YOUR_EMAIL ServerName SERVER_IP DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars
保存并关闭该文件。
现在我们将设置一个重定向,以便所有 HTTP 流量自动重定向到 HTTPS。
为此,请使用以下命令创建一个新文件:
sudo nano /etc/apache2/sites-available/000-default.conf
在该文件中,在 DocumentRoot 条目下添加以下行:
Redirect “/” “https://SERVER_IP/”
其中 SERVER_IP 是我们服务器的 IP 地址。
保存并关闭该文件。
接下来,我们需要使用以下命令启用一些模块和主机:
sudo a2enmod ssl sudo a2enmod headers sudo a2ensite default-ssl sudo a2enconf ssl-params
最后,使用以下命令重新启动 Apache:
sudo systemctl restart apache2
我们现在应该能够将浏览器指向 https://SERVER_IP(其中 SERVER_IP 是我们服务器的 IP 地址)并且仍然可以看到 Apache 欢迎屏幕。
下载、解压和准备 Wordpress
我们将使用以下命令下载官方 Wordpress 文件:
cd /tmp curl -O https://wordpress.org/latest.tar.gz
使用以下命令解压 Wordpress:
tar xvzf latest.tar.gz
使用以下命令创建一个虚拟的 .htaccess 文件:
touch /tmp/wordpress/.htaccess
使用以下命令将示例配置文件复制到必要的配置文件:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
使用以下命令创建升级目录(以避免权限问题):
mkdir /tmp/wordpress/wp-content/upgrade
使用以下命令将 wordpress 目录的内容复制到文档根目录中:
sudo cp -a /tmp/wordpress/. /var/www/html/wordpress
最后,使用以下命令调整新移动的 wordpress 目录的所有权和权限:
sudo chown -R www-data:www-data /var/www/wordpress sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \; sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;
允许 .htaccess 并启用重写模块
我们需要为 Wordpress 启用 .htaccess。
为此,请使用以下命令创建一个新的 Apache 配置文件:
sudo nano /etc/apache2/sites-available/wordpress.conf
在该文件中粘贴以下内容:
AllowOverride All
使用以下命令启用重写模块:
sudo a2enmod rewrite
使用以下命令重新启动 Apache:
sudo systemctl restart apache2
数据库
在开始设置数据库之前,我们应该使用 MariaDB/MySQL 的内置功能来保护新安装。
运行该命令,并接受默认值以保护数据库。
当被问到时,为数据库的 root 用户设置一个安全密码。
sudo mysql_secure_installation
完成后,我们就可以使用“mysql”命令开始使用 MariaDB
Wordpress 依赖于一个数据库来运行。
要创建它,我们首先必须使用以下命令登录 MySQL 提示符:
sudo mysql -u root -p
系统将提示我们输入在 LAMP 服务器安装期间创建的 MySQL 管理员用户密码。
在 MySQL 提示符下,使用以下命令创建数据库:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
接下来,创建一个新用户并使用以下命令授予该用户访问数据库的权限:
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'PASSWORD';
其中 PASSWORD 是唯一的强密码。
刷新数据库权限并使用以下命令退出:
FLUSH PRIVILEGES; EXIT
安装依赖关系
首先要做的是启动并运行我们的 LAMP(Linux Apache MySQL PHP)服务器。
由于 Ubuntu 已经存在,所有需要做的就是安装辅助组件。
因为我们使用的是 Ubuntu,所以这可以通过一个命令来完成。
但是,在我们这样做之前,我们要确保我们的服务器是最新的。
打开终端窗口并发出以下命令:
sudo apt-get update sudo apt-get upgrade
如果内核在此过程中升级,则需要重新启动。
如果是这种情况,则需要重新启动服务器(以便更改生效)。
这意味着我们应该在可以重新启动时运行更新/升级。
随着更新/升级的完成,是时候安装 Web/数据库服务器和 PHP。
这可以通过一个命令来完成:
sudo apt install apache2 php mariadb-server
在安装过程中,系统会提示我们为 MySQL 管理员用户创建/验证密码。
该过程完成后,我们可以将浏览器指向 http://SERVER_IP(其中 SERVER_IP 是 Ubuntu 服务器的 IP 地址)以查看 Apache 欢迎屏幕。
接下来我们必须安装一些必要的 PHP 扩展。
这可以通过以下命令完成:
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip