| 
 | 
 
本文不讲废话,现在就开始教你一步步搭建自己的网站,下面大家可以看一下我花费半小时搭建出来自己的博客网站 zempty 笔记  
想搭建一个自己的网站需要准备什么,需要什么技能吗? 
 
-   一台服务器 (阿里云,谷歌云。。。),本人使用的是谷歌云,新用户可以免费使用一年(这里有心人可以去研究一下其实可以一直使用下去,很赞)。
 
 
  
2. 最好准备一个域名,比如本人的域名是 www.zempty.sg, 域名绑定你的服务器,如果你囊中羞涩,推荐使用 freenom 一个 免费的 域名网站,关键还没有各种审核,几分钟以后就可以用了。 
3. 准备好 ssl 证书,给自己的网站加密,可以进行 https 安全访问,推荐一个开源的好用的免费的  ssl 证书工具 github 地址,下文会具体使用到它 certbot/certbot。 
4.  最好具备一点操作 linux server 的知识,不会也不要紧,只要你能通过 ssh 远程连接到 server, 本文也是可以帮到你的。 
以上四点不在本文讲述范围之内,有心人可以自行去解决怎么去使用谷歌云?怎么去购买域名等,如果你有以上的烦恼可以 微信公众号(zempty 笔记)后台留言,看到信息后尽量解决你的问题?如果你愿意折腾你完全可以有一个 免费的server + 免费的域名 + 免费的 ssl 证书 搭建一个个人网站,当然你要会科学上网。 
本文使用 docker + mysql + wordpress + nginx + https 来搭建一个自己的网站,下面就在 centos 7  版本的服务器上面逐一来配置安装上面的各个服务软件,顺便也学习了这几种主流软件的安装和使用。 
 
1.  安装 docker  
Linux 系统上使用 docker 大大降低了我们使用各种软件的门槛,推荐有兴趣的同学一定要去学习一下 docker, 推荐本人学习总结的一篇 docker 的文章 docker 的学习总结,关于如何安装 docker ,我就不在这里赘述了,详细安装步骤参考我提供的官方连接  Get Docker Engine - Community for CentOS,复制命令一步步执行即可: 
docker  安装命令如下复制安装即可: 
 
sudo yum install -y yum-utils device-mapper-persistent-data  lvm2 
 
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
 
sudo yum install -y docker-ce docker-ce-cli containerd 
 
经过上述三个步骤,恭喜你,你的docker 安装成功了,下面运行 docker , 命令如下,启动 docker : 
 
systemctl start docker  
查看 docker 是否已经被启动, 
 
systemctl status docker  
如果你这里显示的是激活(active)状态 ,恭喜你的 docker  安装成功了 !!! 
 
2. 安装 mysql 
在安装 mysql 之前先在 server 上建立一个文件夹用来存放修改配置文件,方便我们快速配置 mysql  : 
 
mkdir -p  ~/software/mysql/conf  ~/software/mysql/logs  ~software/mysql/data 
下面做如下的操作来安装 mysql : 
 
远程拉取 mysql 的数据库 
docker pull mysql 
 
首先运行一个实例: 
docker run -it -d  -- name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql 
 
复制该实例的配置文件到 server 当中: 
docker cp mysql:/etc/mysql/conf.d ~software/mysql/conf  
 
删除旧的实例: 
docker rm -f mysql 
 
重新创建一个 mysql 容器: 
docker run -it -d  
--name mysql 
 -p 3306:3306  
-v ~/software/mysql/conf:/etc/mysql/conf.d  
-v ~/software/mysql/logs:/logs  
-v ~/software/mysql/data:/var/lib/mysql  
-e MYSQL_ROOT_PASSWORD=123456  
mysql 
 
查看容器是否创建成功: 
docker ps 
如果有列出 mysql ,证明你的 mysql 安装成功了 !!! 
 
以上的操作步骤就是成功安装了一个 mysql 数据库很简单有木有 ? 下面有一个问题就是这个数据库是不支持远程连接的,下面配置远程连接: 
 
运行一下命令登陆数据库: 
docker exec -it mysql  mysql  -uroot -p输入密码进入数据库即可。 
配置远程连接的操作如下: 
设置远程连接,切换到 mysql 数据库: 
use mysql;修改数据库 user 表进行远程连接: 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';刷新修改: 
flush privileges; 
进行到这里你可以愉快的使用数据库了,恭喜你!!! 
 
3. 安装 wordpress 
wordpress 是什么就不做介绍了,请使用你的搜索引擎先去了解一下,推荐两个学习 wordpress 的学习资源: 
 
如何使用 wordpress 做一个精美的网站 
教你简单的使用 wordpress 
 
下面我们来安装 wordpress : 
远程仓库拉取 wordpress: 
docker pull wordpress 
 
先运行一个 wordpress 实例: 
docker run -it -d --name wordpress --link mysql:mysql -p 9001:80 wordpress  
 
复制现有的 wordpress  文件到当前 server : 
docker cp wordpress:/var/www/html  ~/software/wordpress 
 
删除刚安装的容器: 
docker rm -f wordpress 
 
重新安装 wordpress 容器: 
docker run -it -d --name wordpress -p 9001:80 -v  ~software/wordpress/:/var/www/html --link mysql:mysql wordpress  
到这里我们的网站就出来了,下面打开浏览器输入: 
http://你自己server的ip:9001 
恭喜你, 你的网站出来了 !!! 
 
根据上面的步骤操作一个网站也就出来了,但是使用 wordpress 上传图片和视频的时候是限制大小的,如何配置大小呢? 
修改 ~/software/wordpress 文件夹下面的 .htaccess 文件,打开增加如下两行: 
RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
#增加如下两行配置上传文件的大小 
php_value post_max_size 24M 
php_value upload_max_filesize 8M 
重启 wordpress : 
docker restart wordpress 
请去优化自己的网站吧,美不美,帅不帅,有你决定!!! 
 
4. 安装 nginx 
经过上面的安装,一个网站已经出来了,但是有美中不足之处,如何绑定域名到网站上面呢?下面我们使用 nginx 来解决这个问题。 
 
安装 nginx: 
远程仓库拉取 nginx: 
docker pull nginx  
 
先运行一个 nginx 的容器: 
docker run -it -d --name nginx  nginx 
 
复制配置文件: 
docker cp nginx:/etc/nginx/ ~/software/ 
 
删除 nginx 的容器: 
docker rm -f nginx 
 
重新建立一个 nginx 的容器: 
docker run -it -d 
 --name nginx 
-v ~/software/nginx/:/etc/nginx/ 
-v ~/software/nginx/logs:/var/log/nginx/  
-v ~/software/nginx/www/:/usr/share/nginx/html/ -p 80:80  
nginx 
 
 
查看 nginx 是否正常运行: 
docker ps  
看一下运行的服务当中是否有 nginx , 有,恭喜你 ,nginx 安装成功了!!! 
下面来进行 nginx 配置通过域名来访问我们的网站,打开 ~/software/nginx/conf.d/default.conf, 需要使用到 vim ,不会使用vim 的推荐阅读本人的 vim 文章,很详细: 
精通 vim 此文就够了 
 
vim  ~/software/nginx/conf.d/default.conf 
修改配置文件如下: 
server_name 配置新申请的域名,如下我的域名是 www.zempty.sg 和 zempty.sg, 
proxy_pass 配置自己 wordpress 的访问路径: http://zempty.sg:9001 
server { 
        listen       80 default_server; 
        listen       [::]:80 default_server; 
        server_name  zempty.sg www.zempty.sg 
        # Load configuration files for the default server block. 
        include /etc/nginx/default.d/*.conf; 
 
        location / { 
        proxy_pass http://zempty.sg:9001/; 
        proxy_set_header        X-Real-IP       $remote_addr; 
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 
 
        } 
 
        error_page 404 /404.html; 
            location = /40x.html { 
        } 
 
        error_page 500 502 503 504 /50x.html; 
            location = /50x.html { 
        } 
    } 
     
做完以上操作 , 恭喜你 ,你可以通过域名访问你的网站了,浏览器输入域名试一下吧   。 
 
5. 配置 https 
现在的浏览器如果没有通过 https 访问就会提示不安全,既然网站都搭建好了,为什么不去做安全处理呢?下面我通过使用免费的 ssl 证书来解决这个问题,现在去购买证书着实有点贵呀,个人网站用个免费的加密挺好,下面进行 https 加密配置详解,步骤很简单,跟着一步步来很快解决问题? 
 
同上面的第四点nginx 的操作步骤相同,区别是多打开一个 443 端口,在这里很重要,我因为这个端口没有打开曾折腾了很久,很羡慕你看到了这篇文章。 
docker run -it -d 
 --name nginx 
-v ~/software/nginx/:/etc/nginx/ 
-v ~/software/nginx/logs:/var/log/nginx/  
-v ~/software/nginx/www/:/usr/share/nginx/html/ 
-p 80:80  
-p 443:443 
nginx 
免费的 ssl 证书应该怎么生成呢?  
提供一个 github 的地址:[certbot/certbot] ,这个仓库可以帮我们生成 ssl 证书,太良心,start 一下吧! 
请在 server 上先安装git: 
yum install git  
拉取远程仓库到本地: 
git clone git@github.com:certbot/certbot.git 
切换到仓库根目录下面,这里我把仓库放在 ~/software 下面: 
cd ~/software/certbot 
关键一步生成 ssl 证书: 
 
先关闭 nginx :  
docker stop nginx 
生成证书: 
./certbot-auto certonly -m kickcodeman@qq.com -d zempty.cf -d www.zempty.cf解释一下上面命令的几个参数: -m 后面是自己的邮箱, -d  后面的自己的域名,一般有两个,按照屏幕提示一步步操作下去最终在 /etc//etc/letsencrypt/live/个人域名目录/ 下面会有 fullchain.pem 和 privkey.pem 两个文件. 
请把这两个文件移动到 ~/software/nginx/ 下面: 
cp  /etc/letsencrypt/live/个人域名目录/fullchain.pem  ~/software/nginx 
cp  /etc/letsencrypt/live/个人域名目录/privkey.pem  ~/software/nginx 
 
- 配置 ~/software/nginx/conf.d/defalut.conf 文件:
 
  切换到配置文件目录: 
cd  ~/software/nginx/conf.d 打开配置文件作如下配置:  
vim default.conf配置文件修改如下: 
server { 
        listen       80 default_server; 
        server_name zempty.cf www.zempty.cf; 
        return         301 https://$server_name$request_uri; 
 
   } 
 
  server { 
        listen       443 ssl; 
        server_name  zempty.cf www.zempty.cf; 
        ssl_certificate fullchain.pem; 
        ssl_certificate_key privkey.pem; 
        ssl_session_cache    shared:SSL:1m; 
        ssl_session_timeout  5m; 
        ssl_ciphers  HIGH:!aNULL:!MD5; 
        ssl_prefer_server_ciphers  on; 
        autoindex on; 
 
               location / { 
                proxy_pass http://zempty.cf:9001; 
                proxy_set_header        X-Real-IP       $remote_addr; 
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for; 
 
        } 
 
    } 
docker restart nginx 请打开你的浏览器输入你的域名 www.zempty.cf  ,可以看到 https 访问网站成功, 
恭喜你,到这里你的网站已经做出来了!!! 
总结: 
通过以上操作你可以快速搭建好自己的网站,你的网站用途是什么,就需要你下功夫去布局整理一下了。在此,恭喜你拥有了自己的网站 。 |   
 
 
 
 |