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连接到主机:

  1. ssh user_name@ip_addr

然后键入init_pass,此时会提醒设置密码,设置成功后就可以通过ssh正常使用了。

2. 配置LAMP环境

LAMP,即Linux+Apache+MySQL+PHP,是使用WordPress的基础环境。

Linux

Linux的安装已在第一步创建主机时完成。

后续的安装及最后的日常操作可能需要一个非root账户,故首先创建一个新用户,后续操作均使用此新用户账户完成,创建新用户的过程应在root账户下完成。

  1. # 新建用户
  2. adduser username
  3. # 然后根据提示键入密码,之后的选项可以全选默认项
  4. # 将新建的用户加入sudo组
  5. adduser username sudo

然后退出ssh,用新的用户密码登陆。

Apache

  1. # 更新apt源
  2. sudo apt update
  3. # 安装Apache
  4. sudo apt install apache2
  5. # 检查UFW是否具有Apache的应用程序配置文件
  6. sudo ufw app list
  7. # 查看Apache Full的配置文件,它应该显示它启用了端口80和443
  8. sudo ufw app info "Apache Full"
  9. # 允许此配置文件的传入HTTP和HTTPS流量
  10. sudo ufw allow in "Apache Full"
  11. # 打开Apache
  12. sudo systemctl start Apache2
  13. # 设置开机启动
  14. update-rc.d apache2 defaults

此时打开浏览器访问http://ip_addr,可以看到Apache的默认测试页。

该测试页为/var/www/http/下的index.html,你可以修改一下这个文件并刷新浏览器,可以看到测试页被更新。

MySQL

MySQL的安装可以按照DigitalOcean的官方教程来配置,十分详细。

最后打开MySQL并设置开机启动

  1. # 打开MySQL
  2. sudo systemctl start mysql
  3. # 设置开机启动
  4. update-rc.d mysql defaults

PHP

  1. # 安装相关版本的PHP
  2. sudo apt install php libapache2-mod-php php-mysql
  3. # 为了测试,在以下目录创建一个PHP的测试页
  4. sudo vim /var/www/html/info.php
  5. # 使用vim键入如下文本并保存退出
  6. <?php
  7. phpinfo();
  8. ?>

此时用浏览器访问http://ip_addr/info.php可以看到如下页面,表示PHP安装成功

3. 配置WordPress

  1. # 进入下载目录
  2. cd ~/Download
  3. # 下载最新版本的WordPress
  4. wget https://wordpress.org/latest.tar.gz
  5. # 解压
  6. tar -xzvf latest.tar.gz
  7. # 将解压出的文件夹移入/var/www/html/
  8. mv wordpress /var/www/html/
  9. # 修改权限以便后续的设置
  10. 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)来访问。

  1. # 修改/etc/apache2/apache2.conf
  2. sudo vim /etc/apache2/apache2.conf
  3. # 添加如下内容保存并退出
  4. <Directory /var/www/html/wordpress/>
  5. Options Indexes FollowSymLinks
  6. AllowOverride All
  7. Require all
  8. </Directory>
  9. # 修改/etc/apache2/sites-available/000-default.conf
  10. sudo vim /etc/apache2/sites-available/000-default.conf
  11. # 将DocumentRoot改为如下内容保存并退出
  12. DocumentRoot /var/www/html/wordpress/
  13. # 进入MySQL
  14. mysql -uroot -p
  15. # 键入MySQL密码
  16. # 在MySQL shell中选择wordpress数据库
  17. >use wordpress;
  18. # 修改表单数据
  19. update wp_options set option_value='http://www.domain.com' where option_name="home";
  20. update wp_options set option_value='http://www.domain.com' where option_name="siteurl";
  21. # 重启Apache和MySQL
  22. sudo systemctl restart apache2
  23. sudo systemctl restart mysql

现在可以直接通过你的域名访问你的个人网站了。


如果需要修改网站的icon,可在控制台->外观->自定义->站点身份中上传,如在图片剪裁过程中出现错误,则在主机中安装php-gd:

  1. # 安装php-gd
  2. sudo apt install php-gd
  3. # 重启Apache
  4. systemctl restart apache2

https目前逐渐取代http成为主流协议,故建议将http转为https

首先申请SSL证书,此处为万网提供的一年期免费SSL证书,也可选用其他证书签发机构。

得到的证书包中包含

  • xxx_public.crt,为证书文件
  • xxx_chain.crt,为证书链
  • xxx.key,为私钥文件

在/etc/apache2/目录下新建ssl目录并将以上三个文件上传至其中

启用SSL模块

  1. sudo a2enmod ssl
  2. sudo a2ensite default-ssl

使用vim编辑/etc/apache2/sites-enabled/000-default.conf,在文件末尾添加如下内容

  1. <VirtualHost 0.0.0.0:443>
  2. DocumentRoot "/var/www/html/wordpress"
  3. ServerName zillyrex.com # 键入你自己的域名
  4. SSLEngine on
  5. SSLCertificateFile /etc/apache2/ssl/xxx_public.crt
  6. SSLCertificateKeyFile /etc/apache2/ssl/xxx.key
  7. SSLCertificateChainFile /etc/apache2/ssl/xxx_chain.crt
  8. </VirtualHost>

继续在该文件靠前的标签:

  1. <VirtualHost *:80>
  2. ...
  3. </VirtualHost>

中添加如下内容保存并退出

  1. RewriteEngine on
  2. RewriteCond %{SERVER_PORT} 80
  3. RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]

重启Apache

  1. sudo a2enmod rewrite
  2. sudo systemctl restart apache2

此时就可以全站使用https了。

基于DigitalOcean+LAMP+WordPress搭建个人网站的更多相关文章

  1. 【docker构建】基于docker构建wordpress博客网站平台

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...

  2. 宝塔控制面板+wordpress搭建个人网站

    上个月买了服务器和域名之后就搁置了,今天有空闲就来配合教程尝试一下搭建个人网站,下面是网站搭建的详细过程以及中间的一些细节问题,写这篇文章的目的就是希望能够帮到一些小伙伴,或者为以后搭建网站做一些参考 ...

  3. LAMP环境搭建实现网站动静分离[转]

    目录: 1.环境概述 2.动静分离拓扑图 3.各服务器功能规划 4.各服务器基础环境配置 5.httpd安装配置 6.php安装配置及启用opcache加速功能 7.mysql安装配置 8.wordp ...

  4. LAMP+Wordpress搭建博客

    作为一名技术控,看到别人都有专属于自己的博客,小夜也忍不住自己操刀做个自己的博客.有兴趣的童鞋接下来可要认真地练习比对哦.如果出现错误也不要着急上火,咱们可以交流学习.我们的口号是:遇水搭桥,遇山凿山 ...

  5. 一元建站-基于函数计算 + wordpress 构建 serverless 网站

    前言 本文旨在通过 快速部署一个 wordpress 网站到阿里云函数计算平台 这个示例来展示 serverless web 新的开发模式, 包括 FUN 工具一键初始化 NAS, 同步网站到 NAS ...

  6. 使用Nginx+WordPress搭建个人网站

    背景 很多研究技术的朋友喜欢写博客.如果希望搭建一个完全属于自己的网站,也并不困难.这里简要分享一下我搭建这个博客网站的经验. 关键步骤 购买服务器.域名.DNS云解析服务 网站备案(可选) 安装Ng ...

  7. 使用wordpress搭建的网站如何去掉域名中的wordpess

    我们搭建好的网站当以文件夹的形式把wordpress程序放在空间的根目录时,访问的时候要加上文件夹名,访问地址就是:http://www.xxx.com/wordpress,直接用域名是无法访问,解决 ...

  8. 使用WordPress搭建的网站如何使URL中不出现”wordpress”

    问题描述: 当我们在服务器中安装WordPress时,通常,WordPress默认是将WordPress的文件安装到了一个名为"wordpress"的文件夹里.这样在一般情况下,如 ...

  9. PHP LAMP环境搭建及网站配置流程(完整版)

    心血来潮想做一个自己的博客网站,写一些文章做技术分享,平时遇到的一些问题的解决办法都记录下来,网站搭建成功,那么第一篇博客自然就是整个网站的搭建以及域名的注册.备案.解析流程,总共分为以下几步: 1. ...

随机推荐

  1. /bin/bash^M: bad interpreter

    (1)使用linux命令dos2unix filename,直接把文件转换为unix格式: (2)使用sed命令sed -i "s/\r//" filename 或者 sed -i ...

  2. gym102222 G. Factories

    gym102222 G. Factories 地址 题目大意: 给一棵n个点的树,选m个点,这m个点只能在叶子节点上,问着m个点中两两之间到达其余各点的距离和最小值是多少题解:任意两点的树上距离和问题 ...

  3. MySQL性能优化 分区

    简述 分区是指根据一定的规则,数据库将表分解为多个更小的,更容易管理的部分,就访问数据库而言,逻辑上只有一张表或一个索引,但实际上这张表可能又多个物理分区共同构成,每一个分区都是一个独立的对象,可以独 ...

  4. E4A碰到打开自动闪退又自动打开又闪退一直循环的问题

    E4A碰到打开自动闪退又自动打开又闪退一直循环的问题 这几天写了一个脚本,自己手机上,模拟器上,均测试没有问题,可以正常操作 发给另一个人,他那边居然没有一个设备能运行成功! 而且一直闪退,闪退后又打 ...

  5. js使用WebSocket,java使用WebSocket

    js使用WebSocket,java使用WebSocket 创建java服务端代码 import java.net.InetSocketAddress; import org.java_websock ...

  6. 组合模式( Composite Pattern)

    参考文档:http://blog.csdn.net/ai92/article/details/298336 定义: 组合多个对象形成树形结构以表示“整体-部分”的结构层次. 设计动机: 这幅图片我们都 ...

  7. 集合类 Map接口 HashTable

    集合类的另外一种重要实现为Map接口,Map接口提供的方法如下: Map接口一个不常见实现为HashTable,HashTable对所有有并发访问问题的方法通过 synchronized 关键字进行并 ...

  8. 【Beta】Phylab 发布说明

    Phylab Beta阶段发布说明 一.发布地址 Phylab 二.新功能 1. Markdown(Html)报告生成 在生成报告界面可以选择报告生成方式:Latex或Markdown模板.目前支持M ...

  9. [Beta]Scrum Meeting#1

    github 本次会议项目由PM召开,时间为5月6日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 beta初步计划 撰写博客整理文档 swoip 前端改进计划 模块松耦合 ...

  10. 多线程高效合作之master-warker模式

    对于高并发的任务,有些任务是相互独立的,任务与任务之间没有依赖关系,因此可以采用 master - worker 模式. master 用于接受任务和分发任务给 worker,并将 worker 返回 ...