WordPress是一款开源的内容管理系统(CMS),使用户能够轻松创建网站、博客或在线商城。官方提供各种计划,包括免费选项,以满足不同CMS开发需求。许多托管服务提供每月2美元至40美元不等的WordPress托管计划。此外,一些云供应商提供计算实例的免费试用,允许用户尝试自行托管WordPress。
对于初学者,尝试免费托管选项是熟悉平台的好方法。然而,对于那些寻求稳定、低延迟网站的用户,建议考虑订阅高级计划或租用虚拟专用服务器(VPS)进行托管。
在这个背景下,我将分享在我托管的Debian系统的VPS上构建WordPress网站的经验。
请注意,与下面手动安装所有依赖项相比,使用docker-compose可能提供了更简单的方法。然而,参与整个过程将增进您对底层依赖关系的理解。
安装并设置PHP、MariaDB、phpMyAdmin
1. 首先,安装PHP
sudo apt update
# 安装所需的PHP包
sudo apt -y install php php-cgi php-mysqli php-pear php-mbstring libapache2-mod-php php-common php-phpseclib php-mysql
2. 安装MariaDB
sudo apt install mariadb-server mariadb-client -y
# 启动安全安装
sudo mysql_secure_installation
# 按照屏幕提示操作:跳过unix_socket身份验证,设置root密码,删除匿名用户,禁止root远程登录,删除测试数据库,重新加载权限。
#- Switch to unix_socket authentication [Y/**n**] - 输入n跳过。
#- Set root password? [**Y**/n] - 输入y,设置密码。
#- Remove anonymous users? [**Y**/n] - 输入y并按Enter。
#- Disallow root login remotely? [**Y**/n] - 输入y并按Enter。
#- Remove test database and access to it? [**Y**/n] - 输入y并确认按Enter。
#- Reload privilege tables now? [**Y**/n] - 输入y并确认按Enter。
3. 设置MariaDB数据库和用户
sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE yourdb;
MariaDB [(none)]> CREATE USER 'youuser'@localhost IDENTIFIED BY 'yourpassword';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'youuser'@localhost IDENTIFIED BY 'yourpassword';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit
4.安装PHPMyAdmin
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
# 导入密钥并验证
wget https://files.phpmyadmin.net/phpmyadmin.keyring
gpg --import phpmyadmin.keyring
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz.asc
gpg --verify phpMyAdmin-latest-all-languages.tar.gz.asc
# 设置和配置PHPMyAdmin
sudo mkdir /var/www/html/phpMyAdmin
sudo tar xvf phpMyAdmin-latest-all-languages.tar.gz --strip-components=1 -C /var/www/html/phpMyAdmin
mv /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php
sudo vim /var/www/html/phpMyAdmin/config.inc.php
# 将$cfg['blowfish_secret']的值更新为'your_passphrase',然后保存
sudo chmod 660 /var/www/html/phpMyAdmin/config.inc.php
sudo chown -R www-data:www-data /var/www/html/phpMyAdmin
sudo systemctl restart apache2
5. 配置防火墙
如果您的VPS有防火墙等安全规则,则应更新以允许80和443端口的流量。如果防火墙是在操作系统里,可以像这样配置:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
现在您应该能够访问http://your_ip_of_VPS/phpMyAdmin/
安装WordPress
1. 下载并安装WordPress
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo mv wordpress /var/www/html/
cp wp-config-sample.php wp-config.php
sudo chmod 660 /var/www/html/wordpress/wp-config.php
sudo chown -R www-data:www-data /var/www/html/wordpress
2. 配置Apache
使用vim创建和编辑配置。
vim /etc/apache2/sites-available/wordpress.conf
我们在80端口上设置了一个重写规则,并在443端口上设置了文档根和一些目录规则。
<VirtualHost *:80>
RewriteEngine on
RewriteCond %{SERVER_NAME} =2volt.cc
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName 2volt.cc
DocumentRoot /var/www/html/wordpress
<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /var/www/html/wordpress>
Options FollowSymLinks
AllowOverride Limit Options FileInfo
DirectoryIndex index.php
Require all granted
</Directory>
<Directory /var/www/html/wordpress/wp-content>
Options FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
现在我们应该启用该站点
a2ensite wordpress
然后重启apache2
sudo systemctl restart apache2
3. 配置wp-config.php
cd /var/www/html/wordpress
vim wp-config.php
更新DB_NAME、DB_USER和DB_PASSWORD
define( 'DB_NAME', 'yourdb' );
/** Database username */
define( 'DB_USER', 'youruser' );
/** Database password */
define( 'DB_PASSWORD', 'yourpassword' );
4. 设置SSL
我们将使用Certbot从 https://letsencrypt.org/
获取免费证书,然后使用以下命令自动更新我们的配置。之后重新启动Apache2以应用更改。
sudo apt install snapd
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --apache
sudo systemctl restart apache2
现在您应该能够打开 https://your_ip_of_VPS/
,并可以按照其中的指南完成设置。