1. 注册DigitalOcean并新建主机
为了搭建个人网站首先需要一个可以在公网范围访问的主机,可以选用国内如阿里云、国外如DigitalOcean的各种云主机提供商,这里选用DigitalOcean,首先在DigitalOcean上注册账号,这里需要绑定一张信用卡,或是使用PayPal充入至少5\(的初始注册费用,但注册成功后会收到50\)以上的新用户奖励,非常划算,另外如果是学生的话,可以使用GitHub的教育优惠获得包含50$ DigitalOcean credit在内的大量福利。
注册成功后新建一个Droplets,选择熟悉的Linux系统发行版,这里选用Ubuntu 18.04,选择1G/25G/1000G的主机size,需要每月花费5$,但实际是按小时计费的,接下来选择datacenter region,国内用户建议选择San Francisco的节点,最后键入host name然后create。
create成功后可以看到主机的ip地址(ip_addr),并在注册邮箱中收到用户名(user_name)和初始密码(init_pass),使用ssh连接到主机:
ssh user_name@ip_addr
然后键入init_pass,此时会提醒设置密码,设置成功后就可以通过ssh正常使用了。
2. 配置LAMP环境
LAMP,即Linux+Apache+MySQL+PHP,是使用WordPress的基础环境。
Linux
Linux的安装已在第一步创建主机时完成。
后续的安装及最后的日常操作可能需要一个非root账户,故首先创建一个新用户,后续操作均使用此新用户账户完成,创建新用户的过程应在root账户下完成。
# 新建用户 adduser username # 然后根据提示键入密码,之后的选项可以全选默认项 # 将新建的用户加入sudo组 adduser username sudo
然后退出ssh,用新的用户密码登陆。
Apache
# 更新apt源 sudo apt update # 安装Apache sudo apt install apache2 # 检查UFW是否具有Apache的应用程序配置文件 sudo ufw app list # 查看Apache Full的配置文件,它应该显示它启用了端口80和443 sudo ufw app info "Apache Full" # 允许此配置文件的传入HTTP和HTTPS流量 sudo ufw allow in "Apache Full" # 打开Apache sudo systemctl start Apache2 # 设置开机启动 update-rc.d apache2 defaults
此时打开浏览器访问http://ip_addr,可以看到Apache的默认测试页。
该测试页为/var/www/http/下的index.html,你可以修改一下这个文件并刷新浏览器,可以看到测试页被更新。
MySQL
MySQL的安装可以按照DigitalOcean的官方教程来配置,十分详细。
最后打开MySQL并设置开机启动
# 打开MySQL sudo systemctl start mysql # 设置开机启动 update-rc.d mysql defaults
PHP
# 安装相关版本的PHP sudo apt install php libapache2-mod-php php-mysql # 为了测试,在以下目录创建一个PHP的测试页 sudo vim /var/www/html/info.php # 使用vim键入如下文本并保存退出 <?php phpinfo(); ?>
此时用浏览器访问http://ip_addr/info.php可以看到如下页面,表示PHP安装成功
3. 配置WordPress
# 进入下载目录 cd ~/Download # 下载最新版本的WordPress wget https://wordpress.org/latest.tar.gz # 解压 tar -xzvf latest.tar.gz # 将解压出的文件夹移入/var/www/html/ mv wordpress /var/www/html/ # 修改权限以便后续的设置 chown -hR www-data /var/www/html/wordpress
使用浏览器访问http://ip_addr/wordpress,按照提示完成5分钟安装。
到此WordPress的基本配置结束。
4. 链接到域名
选择一家域名提供商注册并购买域名,此处选用万网注册并购买www.zillyrex.com作为我的个人域名,根据提示缴费并等待通过审核。
成功后为域名添加两条A类解析,主机名分别为www和@,记录值填写你的主机ip地址,其他保持默认。
稍等几分钟后即可通过http://你的域名/wordpress来访问你的网站了。
5. 推荐的额外配置
此时如果访问你的网站需要在你的域名后输入wordpress(如www.zillyrex.com/wordpress),可以稍作修改直接通过域名(如www.zillyrex.com)来访问。
# 修改/etc/apache2/apache2.conf sudo vim /etc/apache2/apache2.conf # 添加如下内容保存并退出 <Directory /var/www/html/wordpress/> Options Indexes FollowSymLinks AllowOverride All Require all </Directory> # 修改/etc/apache2/sites-available/000-default.conf sudo vim /etc/apache2/sites-available/000-default.conf # 将DocumentRoot改为如下内容保存并退出 DocumentRoot /var/www/html/wordpress/ # 进入MySQL mysql -uroot -p # 键入MySQL密码 # 在MySQL shell中选择wordpress数据库 >use wordpress; # 修改表单数据 update wp_options set option_value='http://www.domain.com' where option_name="home"; update wp_options set option_value='http://www.domain.com' where option_name="siteurl"; # 重启Apache和MySQL sudo systemctl restart apache2 sudo systemctl restart mysql
现在可以直接通过你的域名访问你的个人网站了。
如果需要修改网站的icon,可在控制台->外观->自定义->站点身份中上传,如在图片剪裁过程中出现错误,则在主机中安装php-gd:
# 安装php-gd sudo apt install php-gd # 重启Apache systemctl restart apache2
https目前逐渐取代http成为主流协议,故建议将http转为https
首先申请SSL证书,此处为万网提供的一年期免费SSL证书,也可选用其他证书签发机构。
得到的证书包中包含
- xxx_public.crt,为证书文件
- xxx_chain.crt,为证书链
- xxx.key,为私钥文件
在/etc/apache2/目录下新建ssl目录并将以上三个文件上传至其中
启用SSL模块
sudo a2enmod ssl sudo a2ensite default-ssl
使用vim编辑/etc/apache2/sites-enabled/000-default.conf,在文件末尾添加如下内容
<VirtualHost 0.0.0.0:443> DocumentRoot "/var/www/html/wordpress" ServerName zillyrex.com # 键入你自己的域名 SSLEngine on SSLCertificateFile /etc/apache2/ssl/xxx_public.crt SSLCertificateKeyFile /etc/apache2/ssl/xxx.key SSLCertificateChainFile /etc/apache2/ssl/xxx_chain.crt </VirtualHost>
继续在该文件靠前的标签:
<VirtualHost *:80> ... </VirtualHost>
中添加如下内容保存并退出
RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
重启Apache
sudo a2enmod rewrite sudo systemctl restart apache2
此时就可以全站使用https了。