草庐IT

利用WordPress搭建属于自己的网站

张飞的猪的技术总结 2023-03-28 原文

怎么用WordPress给自己搭建了一个网站?可能很多人都想拥有属于自己的网站,这篇文章就找你怎么利用WordPress搭建属于自己的网站。如果你也正好有搭建个人网站的想法,那么本文会给你一个参考,我尽量写的比较详细,给自己做一个记录,也给大家一个参考。

写在前面

在教程之前,先给大家show 一下效果,欢迎你去点点点~
网站地址:https://zhangfeidezhu.com

准备工作

一台Linux服务器

在开始搭建网站之前,当然第一步是购买一个属于自己的 『服务器』。

你可以选择如下渠道进行购买:阿里云、腾讯云、Ucloud等的大厂服务器,不要贪图便宜去买国外的服务器厂商,因为速度很慢很多,很影响体验。

我的就是在腾讯云上购买的,刚开始买个最低配置的服务器就行,以后不够用了,可以慢慢升级,扩容。可以先领个券,再购买更实惠:点击领券

一个专属的域名

买了服务器后,你就会拥有一个公网ip,如果网站搭建起来了,你完全可以使用这个 ip 去访问,但仅供开发、测试使用。
如果要真正运营起来,想要有流量,还得搞一个域名,方便你推广。

域名的购买建议和上面服务器使用同一个厂商,可以省去一些麻烦。比如阿里云购买的域名要备案是需要你在阿里云下有一台服务器的。

一个远程登陆软件

由于后面我使用的是手工部署的方式,所以要登陆服务器进行操作。

登陆的方法有两种:

  1. 厂商提供的控制台界面登陆:Workbench和VNC,这种方法对于不经常登陆服务器运维的人来说,还是可以的,但是不推荐交互比客户端的感觉差一些。

  1. 自己下载专业的远程登陆软件:Tabby、Xshell或者CRTSecure,在使用这些远程登陆软件时,你需要在服务器厂商控制台上面先获取到三个信息服务器公网IP、服务器SSH端口、服务器远程连接密码。这里我选择Tabby,因为这个是免费的,直接使用就可以,界面也比较简洁

部署方式选择

部署方式,可分为两种

  1. 使用服务器管理软件,实现自动化部署,最著名的就是宝塔面板。
  2. 手动登陆远程服务器,实现脚本化部署。

那么如何选择呢?

  • 使用宝塔部署,门槛低,只要会界面点一点即可。
  • 而使用脚本自己手工部署,需要你学会远程登陆服务器:使用Xshell或者直接使用厂商提供的在线SSH窗口
    一些Linux的基本操作:比如Vi/Vim的使用,目录及文件的基本操作等

在这里建议大家跟着我使用第二种方法,也就是手工使用脚本进行部署,更精细的部署步骤会让你对WordPress的运作方式有更深的理解,比如使用了哪些软件,装了哪些包?自己搭建了网站,难免以后会碰到各种各样的服务器问题,尽早的接触Linux,熟悉各项配置,对以后的运维工作会有很有帮助。

部署LNMP

什么是LNMP

LNMP是Linux+Nginx+MySQL+PHP组合的简写。

类似的组合还有:
LAMP的全称是Linux+Apache+MySQL+PHP
LNAMP的全称是Linux+Nginx+Apache+MySQL+PHP

  • Linux是类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
  • Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
  • Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
  • MySQL是一个关系型数据库管理系统。

这些软件一个一个安装比较费力,特别是数据库。有人把这些软件的安装部署过程集成为一个Shell脚本,只要下载并执行它就可以直接安装了。

安装LNMP

下载LNMP安装脚本(版本查看:https://lnmp.org/download.html)

wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz

解压并执行它

tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

接下来会出现大量的选项,如果你不是很懂各个选项间的区别,按默认就行。

运行脚本后,首先会让你选择数据库的版本,没有特殊需要,建议使用默认配置,直接回车或输入序号再回车。

选好数据库,会让你设置数据库root用户的密码,此时如果你直接回车,会默认设置为lnmp.org#随机数字,在输入密码的时候,对于新手有一点注意:如果输入有错误需要删除,需要按住Ctrl再按Backspace键进行删除。密码输好后,回车进入下一步

询问是否需要启用MySQL的InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入y。如果确定确实不需要该引擎可以输入n,(MySQL5.7+版本无法关闭InnoDB),输入完成,回车进入下一步;

选择PHP版本,建议安装PHP7+的版本,回车进入下一步;

选择是否安装内存优化:可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。

如果是LNMPA或LAMP的话还会提示设置邮箱和选择Apache:"Please enter Administrator Email Address:";

设置管理员邮箱,该邮箱会在报错时显示在错误页面上。再选择Apache版本:按提示输入对应版本前面的数字序号,回车。

提示"Press any key to install…or Press Ctrl+c to cancel"后,按回车键确认开始安装。

LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin等软件及相关的组件。安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。

如果显示“Nginx: OK,MySQL: OK,PHP: OK”,表明安装成功。

最后几行的输出

  • 3306 端口是 MySQL 监听的
  • 80 是 HTTP 端口
  • 22 是 SSH 端口

配置Nginx

安装好后,使用如下指令查看nginx配置文件(如果你的服务器上找不到该文件,那请使用 find / -name nginx.conf 搜索一下)

cat /usr/local/nginx/conf/nginx.conf

你会看到如下内容:

上图表明,安装好的nginx将网站的根目录设置为/home/wwwroot/default,这个可以根据自己的喜好进行修改。
用浏览器打开http://ip,可以看到如下内容(如果访问不了,有可能是你服务器的安全组没有开放80端口,去控制台开放一下即可)
其实这就是一个简单的网页demo了,自己随便修改index.html,就会有不同的内容。

安装WordPress

WordPress是使用PHP语言开发的博客平台,也就是一个博客框架,上一步安装的LNMP,只是保证了WordPress的基本运行环境,
想要把你的个人网站跑起来,咱还需要安装WordPress。方法也很简单,下面跟着操作就行。

  1. 安装 wordpress 安装包并解压到 /home/wwwroot
wget https://cn.wordpress.org/latest-zh_CN.zip && unzip latest-zh_CN.zip -d /home/wwwroot
  1. 登录MySQL(密码在前面部署LNMP时你设置过),创建wordpress表,创建完后输入exit退出。
$ mysql -u root -p
Enter password:
MySQL > create database wordpress;
  1. 使用vim修改nginx配置文件(不会vim的自行百度)
$ vim /usr/local/nginx/conf/nginx.conf

找到网站根目录位置,如下图所示:

修改成如下内容:

随后,使用:wq保存配置退出即可。

验证nginx是否有配置错误:

nginx -t

如果出现ok,successful字样,说明没有错误。没有错误,重新加载nginx:

$ nginx -s reload

修改wordpress目录权限:

cd /home/wwwroot && chown -R www wordpress/ && chgrp -R www wordpress/

用浏览器打开http://ip/wp-admin/setup-config.php,你可以看到如下内容:

现在就开始,进行安装。填写信息如下:

其中,*** 改为你设置的MySQL数据库密码。点击提交,出现如下内容:

在/home/wwwroot/wordpress下,创建并编写wp-config.php文件:

$ vim wp-config.php

将上图内容复制进去并:wq保存退出,然后点击现在安装。最后就是配置用户信息了,这个是你登录wordpress用户后台的,要记住:

最后点击安装WordPress,安装成功会出现如下界面:

点击登录,输入账户密码,就可以登录自己的 wordpress 后台了。

这时候你使用浏览器去访问http://ip,就可以看到你搭建的第一个网站了。

此时你看到的这个网站,是wordpress默认为你安装的免费主题(应该有三个),可能并不是那么的好看,但没关系,后面你可以自己挑选一个自己合适的主题,把你的网站装扮得有模有样。

装扮你的网站

到这里,你的网站部署已经全部完成,但是还差最后一步,也是使用WordPress最为核心的一步:让你的网站看起来更加专业,更加成熟。

为此我们需要做两件事:

  • 安装主题:让网站变得好看
  • 安装插件:丰富网站的功能

安装主题

同样都使用的WordPress的网站,外观上却天差地别。有的很酷炫,有点很简约,这是因为选了不同的主题。在你安装完WordPres后,本身就自带了几个免费的主题。几乎没人会使用它们,因为有点丑。在WordPress的自带了主题商店,里面有大量的免费主题,各式各样的都有,可能有你喜欢的。

你也可以通过搜索引擎找到了一个你喜欢的主题,甚至自己开发一个主题,开发主题可以自己百度,都到了开发这个程度,应该就不用我这里教了。

安装插件

前期不用安装太多的插件,基本够用就行,下面列举一下比较常用:

  • WP User Avatar:原生WordPress默认使用Gravatar头像,用户(包括访客评论)的头像调取都是根据所留邮箱匹配的Gravatar头像。
    没有Gravatar怎么办?只要装上WP User Avatar这个插件就能可以使用WordPress 媒体库中的图片作为默认头像了。
  • WP-PostViews:安装了WP-PostViews,就可以统计你文章的浏览次数。
  • WP Editor.md:这是一个WordPress中最好,最完美的Markdown编辑器。可以像md2all和mdnice那样,即时显示Markdown的渲染效果。
  • Simple Custom CSS:在修改WordPress主题时,CSS修改是最经常用到的方法,比如调整字体、调整颜色、边距之类的都需要用到自定义的CSS代码。虽然说WordPress本身提供了CSS修改的功能,不过使用起来有很多的弊端,其中最麻烦的一点就是每次更换或者更新主题之前的修改都会消失,需要重复的添加。使用Simple Custom CSS这个插件可以避免这种尴尬,安装后他会在外观下新增一个自定义CSS的选项。
  • 百度搜索推送管理:百度搜索推送管理插件是一款针对WP开发的功能非常强大的百度和Bing搜索引擎收录辅助插件。
    利用该插件,站长可以快速实现百度搜索资源平台和Bing站长平台URL数据推送及网站百度收录数据查询等。
  • Smart SEO Tool:Smart SEO Tool是一款专门针对WordPress开发的智能SEO优化插件,与众多WordPress的SEO插件不一样的是,Smart SEO Tool更加简单易用,帮助站长快速完成WordPress博客/网站的SEO基础优化。

部署https

要部署https,首先要去有资质的平台申请证书,如百度云,腾讯云等,这里我选择腾讯云。

然后按流程一直点击下一步,知道申请成功,然后再证书管理里面,下载到本地后,你会得到一个zip包,解压一下,就可以看到证书文件及私钥。

因为这里使用的是Nginx,因此获取Nginx下的两个文件上传到我的服务器上的nginx目录下。

先使用 find 命令查找一下你的 nginx.conf 路径

$ find / -name nginx.conf
/usr/local/nginx/conf/nginx.conf

你的证书文件可以和nginx.conf放在同一目录下

/usr/local/nginx/conf

接下来使用vim编辑该文件,找到server,添加如下行。

server
    {
        listen 443 ssl;
        # 注释掉该行
                # listen 80 default_server reuseport;

        #证书文件名称
        ssl_certificate 1_iswbm.com_bundle.pem;
        #私钥文件名称
        ssl_certificate_key 0_iswbm.com.key;

                ...
    }

最后重启nginx

$ systemctl restart nginx

尝试用https访问一下我的网站https://zhangfeidezhu.com ,成功了。

到了这里,还差最后一步,重写http到https,也就是使用http访问你的网站,会跳转到https访问。这里很简单修改一下nginx.conf就好。

    ##这里是将http默认的80端口重定向到https
    server 
    {
        listen       80;
        server_name  zhangfeidezhu.com;
        return 301 https://zhangfeidezhu.com$request_uri;
    }
    
    ## https    
    server
    {
        listen 443 ssl http2;
        ssl_certificate zhangfeidezhu.com_bundle.crt;
        ssl_certificate_key zhangfeidezhu.com.key;
        server_name _;
        index index.html index.htm index.php;
        root  /home/wwwroot/wordpress;
    }

这里后台再设置一下就大功告成了。

博客原文:https://zhangfeidezhu.com/?p=99

有关利用WordPress搭建属于自己的网站的更多相关文章

  1. ruby - Ping ruby 网站? - 2

    在Ruby中可以使用哪些替代方法来ping一个ip地址?标准库“ping”库的功能似乎非常有限。我对在这里滚动我自己的代码不感兴趣。有没有好的gem?我应该接受它并忍受它吗?(我在Linux上使用Ruby1.8.6编写代码) 最佳答案 net-ping值得一看。它允许TCPping(如标准ruby​​ping),但也允许UDP、HTTP和ICMPping。ICMPping需要root权限,但其他则不需要。 关于ruby-Pingruby网站?,我们在StackOverflow上找到一个类

  2. ruby-on-rails - 如何测试自己对 Ruby/ROR 的了解? - 2

    是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby​​和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T

  3. ruby - 使用 Ruby 和 Mechanize 登录网站 - 2

    我需要从站点抓取数据,但它需要我先登录。我一直在使用hpricot成功地抓取其他网站,但我是使用mechanize的新手,我真的对如何使用它感到困惑。我看到这个例子经常被引用:require'rubygems'require'mechanize'a=Mechanize.newa.get('http://rubyforge.org/')do|page|#Clicktheloginlinklogin_page=a.click(page.link_with(:text=>/LogIn/))#Submittheloginformmy_page=login_page.form_with(:act

  4. ruby-on-rails - Rspec 测试属于并且有很多 - 2

    我正在运行rspec测试以确保两个模型通过has_many和belongs_to相互关联。下面是我的测试。describe"testingforhasmanylinks"dobeforedo@post=Post.new(day:"Day1",content:"Test")@link=Link.new(post_id:@post.id,title:"google",url:"google.com")endit"inthepostmodel"do@post.links.first.url.should=="google.com"endend测试告诉我url是一个未定义的方法。我的测试有什么

  5. 网站日志分析软件--让网站日志分析工作变得更简单 - 2

    网站的日志分析,是seo优化不可忽视的一门功课,但网站越大,每天产生的日志就越大,大站一天都可以产生几个G的网站日志,如果光靠肉眼去分析,那可能看到猴年马月都看不完,因此借助网站日志分析工具去分析网站日志,那将会使网站日志分析工作变得更简单。下面推荐两款网站日志分析软件。第一款:逆火网站日志分析器逆火网站日志分析器是一款功能全面的网站服务器日志分析软件。通过分析网站的日志文件,不仅能够精准的知道网站的访问量、网站的访问来源,网站的广告点击,访客的地区统计,搜索引擎关键字查询等,还能够一次性分析多个网站的日志文件,让你轻松管理网站。逆火网站日志分析器下载地址:https://pan.baidu.

  6. ruby-on-rails - 从带有 ruby​​ on rails 的网站获取 html - 2

    如何使用ruby​​onrails获取网络上某处其他网站的页面数据? 最佳答案 您可以使用httparty只是获取数据示例代码(来自example):requireFile.join(dir,'httparty')require'pp'classGoogleincludeHTTPartyformat:htmlend#google.comredirectstowww.google.comsothisislivetestforredirectionppGoogle.get('http://google.com')puts'','*'*7

  7. ruby - Class 怎么可能属于 Class 类而没有 Class 实例方法呢? - 2

    我正在研究Ruby解释器是如何实现的,并且出现了一个问题,但我还没有得到答案。这就是标题中的那个:因为Class(r_cClass)将super设置为自身(忽略元类,因为实际上super是r_cClass的元类),如果我向Class对象发送一个方法,这将在Class的方法表中查找'类(class)。但是Class的类是Class,所以我不应该最终寻找Class的实例方法吗?但事实并非如此,因为在文档中Class类方法和Class实例方法是分开的。在Ruby的eval.c中的search_method中,我没有发现对Class类有什么特别的检查。任何人都可以阐明这一点吗?

  8. ruby-on-rails - Rails 3 ActiveAdmin CanCan。如何设置用户只能看到属于他的记录? - 2

    我设置了属于客户类别的admin_users(客户是一家公司)。所以Customer有很多admin_users。我正在尝试限制对属于特定客户的装运记录的访问。我不希望客户看到其他客户的数据。所以我设置了它,但它似乎什么也没做......类(class)能力包括CanCan::Abilitydefinitialize(user)user||=AdminUser.newifuser.role=="administrator"can:manage,:allelsecannot:create,:allcannot:update,:allcannot:destroy,:allcan:read,

  9. ruby-on-rails - 如何检索网站图标? - 2

    我正在使用RubyonRailsv3.0.9,我想检索我设置了链接的每个网站的favicon.ico图像。也就是说,如果在我的应用程序中我设置了http://www.facebook.com/URL,我想检索Facebook的图标并在我的网页中使用\插入它。当然,我也想为所有其他网站这样做。如何以“自动”方式从网站检索favicon.ico图标(“自动”是指在网站中搜索图标并获取它的链接-我认为不是,因为并非所有网站都有一个名为“favicon.ico”的图标。我想以“自动”方式识别它)?P.S.:我想做的是像Facebook在您的Facebook页面中添加链接\URL时所做的那样:它

  10. ruby - 在公差范围内确定两条线段是否属于同一线段的最有效方法是什么? - 2

    编辑:更改了标题。我对两个部分是否相同不太感兴趣,而是如果它们在一定的公差范围内彼此共线。如果是这样,那么这些线应该聚集在一起作为一个单独的线段。编辑:我想有一个简短的说法:我试图以一种有效的方式将相似的线段聚集在一起。假设我有线段f(fx0,fy0)和(fx1,fy1)和g(gx0,gy0)和(gx1,gy1)这些来自计算机视觉算法边缘检测器之类的东西,在某些情况下,两条线基本相同,但由于像素容差而被视为两条不同的线。有几种情况f和g共享完全相同的端点,例如:f=(0,0),(10,10)g=(0,0),(10,10)f和g共享大致相同的端点和大致相同的长度,例如:f=(0,0.01

随机推荐