本教程的相关内容仅作为演示。请根据需要自行修改代码内容。
请先准备好SSH工具,连接到你的服务器。
准备一个域名,如果你没有域名可以点击此处注册
namesilo域名注册优惠码:ZYH8
要在Ubuntu&Debian上部署WordPress并启用HTTPS连接,您需要执行以下步骤:
1.请先升级系统软件包并重启系统。
sudo apt update
sudo apt full-upgrade -y
sudo reboot
2.安装Apache Web服务器:(也可以使用别的,例如:Nginx,如果你使用了其他的Web服务器,请修改相应的配置文件。)
sudo apt update
sudo apt install apache2
3.安装PHP和相关的扩展:
sudo apt install php libapache2-mod-php php-mysql php-gd php-curl php-dom php-imagick php-mbstring php-zip php-intl
4.安装MySQL数据库服务器:
sudo apt install mysql-server
在安装过程中,应该会提示您设置数据库root用户的密码。如果没有提示,请使用下方命令更改密码:
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
请将“new_password”替换为你自己的密码
运行安全安装脚本以设置 MySQL 的安全选项:
sudo mysql_secure_installation
按照提示操作,设置 root 密码并删除匿名用户、不允许远程 root 登录等。
5.创建WordPress数据库和用户:
以下代码需要在mysql数据库终端里执行
CREATE DATABASE wordpress;
CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpressuser'@'localhost';
FLUSH PRIVILEGES;
#退出mysql数据库终端
EXIT;
请将wordpressuser,password替换为你自己的数据库用户名和密码,建议不要和上面root用户的密码相同。
6.下载并配置WordPress:
#定位到此目录
cd /tmp
#下载最新版WordPress到本地
wget https://wordpress.org/latest.tar.gz
#解压缩.tar.gz文件到此目录
tar -zxvf latest.tar.gz
#删除此目录里的所有文件
rm -rf /var/www/html/*
#移动WordPress文件夹到/var/www/html/目录
sudo mv wordpress /var/www/html/
#查看文件是否移动成功,你应该能看到一个名为wordpress的文件夹
ls
#给/var/www/html/目录设置权限
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
如果你的服务器地址是192.168.1.1,那你需要访问https://192.168.1.1/wordpress/才能进入到您的网站,如果你觉得这样很麻烦,你可以自己设置重定向或者是将wordpress文件夹移动到/var/www/目录下,并重命名为html,即可使用https://192.168.1.1/访问您的服务器,注意:在未完成之前请不要尝试访问。
7.创建Apache虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/wordpress.conf
#在文件中添加以下内容
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /var/www/html/wordpress
ServerName your-domain.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/your-cert.crt
SSLCertificateKeyFile /etc/ssl/private/your-cert.key
<Directory /var/www/html/wordpress>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
请替换your-domain.com
为您的域名,[email protected]为您的邮箱地址,请根据需要自行替换目录。
#启用mod_rewrite模块
sudo a2enmod rewrite
8.生成自签名证书:
sudo mkdir /etc/ssl/private
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/your-cert.key -out /etc/ssl/certs/your-cert.crt
此证书是一个10年的自签名证书。请根据需要替换您自己的证书,在证书生成过程中,请根据提示填写相关信息。
9.启用Apache SSL模块和新创建的虚拟主机:
sudo a2enmod ssl
sudo a2ensite wordpress.conf
#设置权限
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
#重启Apache服务器
sudo systemctl restart apache2
现在,您应该能够通过https://your-domain.com 访问部署的WordPress,并使用有效期为十年的自签名证书进行加密连接
手动修改WordPress Secret Keys
什么是 WordPress 密钥?
WordPress 密钥是存储在 wp-config.php 文件中的随机长文本。 它们帮助对 WordPress 中的重要数据进行加密和哈希处理。 它们用于帮助保护您的身份验证 cookie 并创建安全号码以防止攻击。
WordPress 有自己的 WordPress 密钥生成器,它将为您输出随机密钥,如下所示:
define('AUTH_KEY', '_a[PGm:#k-fYSO9.oHX)5_|s,T`,Fr|ZrK[(f(bOhpao@IpcF3)8j= |K>#aHgjl');
define('SECURE_AUTH_KEY', 'c5tDx/ #~oDrX.&IN5*)xc`1&Vh|f[h,7dv(~S0_C%;%O@X-+W+}9 0|,%_$z--R');
define('LOGGED_IN_KEY', 'wjLq>hlKjFF2`7g[vSNvoOv=e~oZa@$69Z*-rF5#2od0S^Ugq%Eiu+ymWee@;P*v');
define('NONCE_KEY', 'i_$nlL&QNsIvv3]}zgC.^Gm+-H.x?M|zB8kH.Tseb!sG+&|N#}lURae*kHz->TV)');
define('AUTH_SALT', 'C.t%Tw+T=45d]jhT:? 8;lezj^Xu;c8TKY-wBz;O5M*2Sm2~%7dy2E:n/)N(IklK');
define('SECURE_AUTH_SALT', '){@wv)/q?[m!dA!3!{R3Zg[R+ t1F ORSD?A6+D-9`x_j+G*)e<y7LnUA0Pm_6q8');
define('LOGGED_IN_SALT', 'IU&lHPyqNz{&EiW3c41KwiK4D6}RG;/8Z%EXx@f]q,~9&Kb8Pz#trGmW*;KJQZPw');
define('NONCE_SALT', 'y>XfZ[>6&oznu|bMxmWIc/,8FwD8DC)NSxH/k8H/E81SjaOcd7DYNxdbi>qN+kJ)');
警告:请自己点击这里生成,不要照搬,不要照搬,不要照搬,不要照搬。
默认密钥有哪些安全风险?
如果您使用可预测的密钥,则会削弱您的身份验证 cookie 以及它们可能在其他地方使用的安全性,例如在跨站点请求伪造 (CSRF) 随机数中。
如果 WordPress 在安装过程中无法写入您的 wp-config.php 文件,WordPress 将使用以下文本填充您的密钥,并将您的唯一短语放在这里。
这是非常可预测的,并且会削弱您网站的安全性。 但别太担心,这不是世界末日。 在大多数情况下,WordPress 已经考虑到人们使用可预测密钥的风险,并实施了进一步的安全措施,例如使用部分密码。
话虽这么说,但始终建议您的密钥不要使用默认密钥并且是随机的。
如果出现无法连接数据库的错误,请手动配置wp-config.php文件
打开终端,并导航到您的 WordPress 安装目录。例如,如果 WordPress 安装在 /var/www/html/wordpress
,则可以使用以下命令进入该目录:
cd /var/www/html/wordpress
#创建一个名为 `wp-config.php` 的新文件
cp wp-config-sample.php wp-config.php
#使用文本编辑器(如 Nano、Vi 或 Gedit)打开 `wp-config.php` 文件
nano wp-config.php
在打开的文件中,您需要提供数据库连接和认证相关的信息:
- 将
define('DB_NAME', 'database_name_here');
中的database_name_here
替换为您的数据库名称 - 将 define(‘DB_USER’, ‘username_here’); 行中的
username_here
替换为数据库用户名称(例如 ‘wordpressuser’) - 将
define('DB_PASSWORD', 'password_here');
中的password_here
替换为数据库用户密码 - 如果数据库位于本地主机(与 WordPress 安装在同一台服务器上),您可以保留以下行不变:
define('DB_HOST', 'localhost');
如果数据库位于其他服务器上,您需要将'localhost'
替换为数据库服务器的 IP 地址或域名。 - 如果您的数据库使用默认的 MySQL 端口(3306),则无需更改以下行:
define('DB_PORT', '3306');
如果数据库使用不同的端口,请将'3306'
替换为正确的端口号。
注意:修改后需重新设置权限。
更改WordPress最大文件上传大小(不是一定要更改,默认是两兆,如果你有需要可以继续往下看)
- 打开终端,并导航到您的 WordPress 安装目录。例如,如果 WordPress 安装在
/var/www/html/wordpress
,则可以使用以下命令进入该目录:
cd /var/www/html/wordpress
- 打开
wp-config.php
文件以进行编辑:
nano wp-config.php
- 在
wp-config.php
文件中,找到以下行:
define('WP_DEBUG', false);
在该行之前添加以下代码:
@ini_set('upload_max_filesize','2G');
@ini_set('post_max_size','2G');
这将尝试在运行时更改 PHP 的上传最大文件大小和 POST 数据大小为 2GB。
- 保存并关闭文件。
- 打开
.htaccess
文件进行编辑:
nano .htaccess
- 在
.htaccess
文件的开头添加以下代码:
php_value upload_max_filesize 2G
php_value post_max_size 2G
这将在 Apache 服务器上设置 PHP 的上传最大文件大小和 POST 数据大小为 2GB。
- 保存并关闭文件。
- 重新启动您的 Web 服务器以使更改生效。例如,在 Apache 服务器上,可以使用以下命令重启 Apache:
sudo systemctl restart apache2
注意:修改后需重新设置权限。
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
这些步骤将尝试在 wp-config.php
和 .htaccess
文件中配置 PHP 的最大文件上传大小为 2GB。请注意,这些更改也取决于您的服务器配置和 PHP 的最大上传限制。如果您在更改后仍然遇到问题,请确保服务器和 PHP 的相关设置支持所需的文件大小。
如有需要,可以启用缓存相关的模块
#安装 brotli 扩展
sudo apt-get update
sudo apt-get install brotli
#安装内存缓存扩展(如 APCu 或 Memcached)
sudo apt-get install php-apcu
sudo apt-get install php-memcached
#安装 Redis 扩展
sudo apt-get install php-redis
#安装 HTML Tidy 扩展
sudo apt-get install php-tidy
#安装 SSH2 扩展
sudo apt-get install php-ssh2
#为 Apache 启用 mod_expires
sudo a2enmod expires
#为 Apache 启用 mod_ext_filter
sudo a2enmod ext_filter
#为 Apache 启用 mod_headers
sudo a2enmod headers
#安装php-dev软件包
sudo apt-get install php-dev
#安装 PHP 的 brotli 扩展。目前,官方 PHP 扩展仓库中没有 brotli 扩展,但您可以从 GitHub 上找到一个可用的实现
git clone --recursive https://github.com/kjdev/php-ext-brotli.git
cd php-ext-brotli
phpize
./configure --with-brotli
make
sudo make install
出现以下内容即代表安装成功 PHP 的 brotli 扩展:
Libraries have been installed in:
/home/mic/php-ext-brotli/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the ‘-LLIBDIR’
flag during linking and do at least one of the following:
- add LIBDIR to the ‘LD_LIBRARY_PATH’ environment variable
during execution - add LIBDIR to the ‘LD_RUN_PATH’ environment variable
during linking - use the ‘-Wl,-rpath -Wl,LIBDIR’ linker flag
- have your system administrator add LIBDIR to ‘/etc/ld.so.conf’
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
Build complete.
Don’t forget to run ‘make test’.
Installing shared extensions: /usr/lib/php/20210902/
成功编译和安装了 brotli PHP 扩展后,请按照以下步骤将其添加到您的 php.ini
文件并重新启动 Web 服务器。
- 打开适用于您的 PHP 版本的
php.ini
文件。对于 Apache,通常位于/etc/php/8.1/apache2/php.ini
(请根据您的 PHP 版本进行调整)。对于 PHP-FPM,通常位于/etc/php/8.1/fpm/php.ini
。 - 在
php.ini
文件中添加以下行以启用 brotli 扩展:
extension=brotli.so
3. 保存并关闭 `php.ini` 文件。
4.重启 Web 服务器以应用更改。对于 Apache:
sudo systemctl restart apache2
(请根据您的 PHP 版本进行调整)
现在,您的服务器应该已经启用了 brotli 扩展。您可以通过运行 php -m
命令检查已启用的 PHP 扩展列表,以确保 brotli 扩展已加载。在进行更改后,请确保检查您的网站以确保一切正常运行。如果遇到任何问题,请查看 Apache 和 PHP 的日志以获取更多详细信息。
更新站点地址,在wp-config.php配置文件中添加代码:
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
*请将`https://example.com`替换为您的新站点地址。
😊
看了这个挺不错的,我真心的为你点赞
可以的
不错哦!谢谢