Ubuntu上搭建网站【建立数据隧道,降低开支】_ubuntu搭建网站-程序员宅基地

技术标签: apache  ubuntu  linux  服务器  

上篇:Ubuntu搭建web站点并发布公网访问

目录

1.安装WordPress

2.创建WordPress数据库

3.安装相对URL插件

4.内网穿透将网站发布上线

1.命令行方式:

2.图形化操作方式

5.图书推荐


cpolar官网

1.安装WordPress

在前面的介绍中,我们为大家展示了如何在Linux系统中安装cpolar,并对cpolar的web-UI界面有了一些了解。接下来,我们可以根据实际案例,对cpolar的功能有更深刻的认识,甚至从中找到新的cpolar应用场景,让cpolar真正成为我们生活和工作的好帮手。现在,我们就结合本地网站发布到公网的情况,为大家介绍cpolar的数据隧道功能。

在以往,网站建设必须先租用网络服务器,再将网站内容和脚本上传服务器,再经过复杂配置,才能正式上线接受访客的访问。这一流程不仅复杂,还会产生不少开支。

通过cpolar的数据隧道功能,可以将以往需要存在网络服务器上的数据和脚本放回本地电脑上,再使用cpolar建立的数据隧道,临时对网页上传后的效果进行测试;或者建立起稳定的隧道,省去租用网络服务器的开支。而想要在本地电脑上搭建网站,就必须先构建起网站的运行环境,以及对应的数据库。这里我们还是以wordpress为例(对使用者较为友好的建站软件)。

首先我们先安装网站所需的运行环境即数据库,我们可以在Ubuntu系统桌面,点击鼠标右键,并在菜单中点击“在终端中打开”,进入Ubuntu系统的命令行界面。

接着在命令行中输入命令,安装apache2

sudo apt install apache2 php -y

在apache2安装完成后,还需要安装数据库,才能支持worepress网站的正常运行。同样的,我们在命令行窗口输入命令,安装mySQL数据库。

sudo apt install mariadb-server php-mysql -y

最后,我们就可以在命令行中输入wordpress的下载和安装。不过与apache和mySQL不同,wordpress是网站运行的包合集,因此我们需要先将wordpress的压缩包下载到单独的文件夹,在解压后才能使用这些文件。

我们先输入命令,转入上一级目录

cd /var/www/html

在该目录下输入命令,下载wordpress的压缩包

sudo wget http://wordpress.org/latest.tar.gz

下载完成后,再输入命令解压

sudo tar xzf latest.tar.gz

解压完成后,我们需要将wordpress的文件移动到上级目录,输入命令移动所有文件。

sudo mv wordpress/* .

从顺序上来看,之前下载的wordpress压缩包就在这一层文件夹中(可以输入“ls”查看文件夹中的文件进行确认)。为防止干扰,我们可以将wordpress的压缩包删除,输入命令

sudo rm -rf wordpress latest.tar.gz

再输入命令确认压缩包已经删除

ls

同时,我们输入命令将该文件删除(该文件是网站错误文件,会显示在wordpress之前,影响wordpress的设置进程)

rm index.html

接着,我们将存有wordpress文件的文件夹定义为网站文件夹,并且赋予其相应权限。在命令行窗口输入命令

sudo chown -R www-data: .

这条命令执行完成后,再输入命令,查看权限是否赋予成功。

ls -l

如上图所示,只要各文件名前显示出www,就说明我们的赋权操作已经完成。到这里,我们在Ubuntu上建立网站的软件都已经安装齐备,剩下的工作就是对这些软件进行相应的配置。

2.创建WordPress数据库

之前我们提到,wordpress网站想要正常运行,必须配备有相应的数据库,虽然我们安装了mySQL软件,但此时还没有建立其容纳数据的数据库,因此我们首先要对mySQL进行配置。由于数据库的设定涉及很多权限的确定,因此在这里需要小心,避免留下我们网站被入侵的漏洞。
在命令行窗口执行命令,将mySQL数据库初始化。

sudo mysql_secure_installation

接着,mySQL会提出一系列问题,用以确定数据库的操作权限。这些问题的顺序分别为

  1. 要求root mysql数据库的密码(新安装的软件没有预置数据库,因此无密码,直接回车);
  2. 是否要设置root数据库的密码(会要求输入两次密码,密码一定要一致);
  3. 是否移动匿名账号;
  4. 是否关闭root的远程登录;
  5. 是否移除测试数据库;
  6. 是否对修改内容重刷权限表;

这些问题都输入Y即可通过,但我们要注意,数据库的密码很重要,必须设置不易破解的密码,并且进行妥善记录防止遗忘。

完成这些步骤后,数据库的设置也就正式完成。

接下来我们就着手创建一个wordpress专用的数据库,创建这个数据库的命令行为

sudo mysql -uroot -p

这条命令中,-u后直接连接(无空格)用户名,此处我们连接的是root用户,所以为-uroot,而-p则是用户密码。而mySQL也会要求输入用户密码和数据库密码。

完成这一步后,我们输入命令指挥mySQL创建一个wordpress专用数据库

create database wordpress;

接着,输入命令为wordpress数据库进行权限设置(为防止输入命令时全角和半角错误,可以直接复制该命令)。

GRANT ALL PRIVILEGES ON wordpress.* TO 'root'@'localhost' IDENTIFIED BY '这里为你的root数据库密码';

最后执行命令刷新一次。

flush privileges;

由于一直处于命令行模式操作,并不如图形化操作直观,为确定我们的步骤没问题,我们可以输入命令确认我们成功建立起了wordpress专用数据库。

show databases;

如上图所示,只要在反馈中出现了“wordpress”名称的数据库,就证明我们的设置步骤没错。
最后,我们在Ubuntu的浏览器的地址栏中输入“localhost”(本机地址),就能打开我们熟悉的wordpress安装页面(如果浏览器没有显示wordpress安装页面,可以选择以隐私界面打开localhost,就能正常显示)。

剩下的步骤都是常规设置,如显示语言、数据库设置、wordpress用户注册等等。这里需要注意的,就是wordpress数据库的设置,一定要和mySQL数据库中设置wordpress数据库时所留的用户名及密码一致!(当然,当时我们设置的数据库名称就是wordpress)

完成这些设置后,我们就能正式进入wordpress的主界面了。

至此,我们对wordpress网站的运行环境设置已经完成

3.安装相对URL插件

要让本地的网页能为公共互联网的用户访问到,必须有符合现行互联网规范的地址,即URL。但wordpress本身并不自带生成URL地址的功能,我们必须通过为wordpress安装插件来实现这一功能。还是回到wordpress的主界面,在左侧,我们能找到插件项,点开后在搜索框输入relative URL,就能找到这款插件,接着点击安装启用即可。

完成URL插件的安装后,我们还需要对wordpress本身进行一项小修改,我们要教会wordpress正确应对外部访问请求,因此我们要打开Ubuntu命令行界面,输入命令,转入站点根目录

/var/www/html

转入站点根目录后,再输入命令对wordpress的配置文件进行编辑。

nano wp-config.php

在wordpress编辑界面,我们要找到如下位置,输入两行命令,分别为:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

由于命令行对于标点符号有全角半角的要求,因此最好还是复制命令,避免输入错误,导致wordpress运行错误。

确认命令输入无误后,就可以按快捷键Ctrl+X退出编辑,系统会询问我们是否保存更改,我们输入Y即可。

如果我们要返回wordpress的设置界面,只要在浏览器中输入地址http://localhost/wp-admin,就能回到wordpress的仪表盘

而我们也能在这里,选择自己喜欢的网站外观,打造自己心仪的网站。

至此,我们在Ubuntu上搭建的网站就基本成型了。

4.内网穿透将网站发布上线

通过前面介绍中的操作,我们已经成功的在Linux系统中搭建起网页运行所需的环境,并且通过wordpress成功制作了一个网页。但此时的网页还仅存在于本地电子设备上,想要将其发布到互联网上,还需要通过cpolar建立的数据隧道才能实现。今天,我们就尝试使用cpolar建立的数据隧道,让本地网页能够为互联网访客所访问的集中方法。

在此之前,我们已经在本地电脑上安装了cpolar,因此我们可以采用命令方式和图形化操作两种方式,建立起数据隧道。

1.命令行方式:

我们只要在本地Ubuntu的命令行窗口,直接输入命令,建立起一条本地端口号为80的数据隧道。

cpolar http 80

其中,“http(s)://6010e200.cpolar.cn”是数据隧道的互联网端口,公网上的访客可以通过这个端口,访问到本地电脑(http://localhost:80)上的网页,从而实现通过cpolar将本地网页发布到公共互联网上的目的。

2.图形化操作方式

在浏览器中输入cpolar的web-UI界面地址localhost:9200(这是cpolar的web-UI地址,通过本地9200端口输出)

此处,此处我们只要输入注册时的用户名和密码,就能进入cpolar的图形化界面,并在此建立数据隧道。登录后,我们可以直接在cpolar主界面左侧选择“隧道管理”项,并在下来菜单中点击“创建隧道”进入隧道建立页面。在这个页面中,我们能对打算建立的隧道进行定义,包括

  • 隧道名称(用以区别其他隧道,或对隧道用途进行简单说明)
  • 协议类型(适用于网页发布或设备互联)
  • 本地地址(即本地输出的端口号)等信息

在填入这些信息后,点击页面下方的“创建”按钮,就能方便快捷的创建起相应隧道。

当然,无论以那种方式创建隧道,都可以在cpolar官网看到所创建隧道的信息。

而我们,也可以直接在浏览器中输入cpolar生成的隧道地址,检测数据隧道是否打通。

到这里,我们的网页已经正式发布到互联网上,能够为互联网访客虽访问到了。由于此时我们建立的数据隧道还处于临时连接状态,每个24小时就会重置,因此并不适合长期存在的网页链接。但这样的临时链接对于网页测试却有好处,既能实测网页发布后的实际运行情况,帮助找到潜在的bug,还不占用宝贵的稳定数据隧道名额。

5.图书推荐

Linux操作系统是目前最为流行的一款开源操作系统,从服务器系统到嵌入式设备,Linux的身影无处不在。云计算、物联网、大数据、人工智能等一系列技术领域,其背后同样离不开Linux。现如今,越来越多的开发者以及爱好者投入了Linux系统维护和Linux系统编程等领域。然而,Linux因其复杂性,让无数新手望而却步。

技术的学习之路大多是艰难而枯燥的, Linux系统编程的学习之路更是困难重重。一方面,它需要我们了解基本的编程技术,特别是C语言编程技术;另一方面,它还需要我们了解Linux操作系统的底层技术知识。

进程是如何创建的?

进程间是如何进行通信的?

文件系统是如何运行的?

systemd是如何管理守护进程的?

如何编写静态库与动态库?

编译器是如何工作的?

如何对程序进行调试?……

一系列技术问题让人应接不暇。

如何了解Linux操作系统?

如何在Linux系统下进行编程开发?

从什么地方开始着手学习?

这些问题困扰了很多人,让人踟蹰不前,不知如何下手,这本《Linux系统编程》会给予大家一些指引。

 

本次送书 3 本   评论区抽3位小伙伴送书
活动时间:截止到 2023-04-11 14:00:00

抽奖方式:利用程序进行抽奖。

参与方式:关注博主、点赞、收藏,评论区评论 "人生苦短,我用Linux!"

迫不及待的小伙伴也可以了解详情:

 Linux系统编程

 获奖名单

 

名单公布时间: 2023-04-11 14:00:00

 

霜_哀

Super algorithm

大寄一场.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Javascript_tsj/article/details/130015081

智能推荐

高频交易及化资策与区_hudson river trading-程序员宅基地

文章浏览阅读406次。转 高频交易及量化投资的策略与误区一、高频交易公司和量化投资公司的区别一般来说,高频交易公司和量化投资公司既有联系,又有区别。在美国,人们常说的高频交易公司一般都是自营交易公司,这些公司主要有Getco、Tower Research、Hudson River Trading、SIG、Virtu Financial、Jump Trading、RGM Advisor、Chopper Tradi..._hudson river trading

C语言文件操作相关的函数_c语言与文件处理有关的函数-程序员宅基地

文章浏览阅读865次。文件的打开和关闭文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件 的关系。ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件。FILE * fopen ( const char * filename, const char * mode ); int fcl..._c语言与文件处理有关的函数

java 无法读取文件_java 读取文件,无法显示文件内容,如何解决? 谢谢。-程序员宅基地

文章浏览阅读1.1k次。从来没见过进行文件读取写入时,在写入中需要随机数的,你读取文件就是从一个地方获取输入流,然后将这个输入流写到别的地方,根本不要随机数。给你一个示例://copyafiletoanotherfilebyusingFileReader/FileWriterimportjava.io.*;publicclassTFileRead{publicstaticvoidmain(S..._java复制文件文件没有内容显示

vue引入原生高德地图_前端引入原生地图-程序员宅基地

文章浏览阅读556次,点赞2次,收藏3次。由于工作上的需要,今天捣鼓了半天高德地图。如果定制化开发需求不太高的话,可以用vue-amap,这个我就不多说了,详细就看官网 https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install然而我们公司需要英文版的高德,我看vue-amap中好像没有这方面的配置,而且还有一些其他的定制化开发需求,然后就只用原生的高德。其实原生的引入也不复杂,但是有几个坑要填一下。1. index.html注意,引入的高德js一定要放在头部而_前端引入原生地图

ViewGroup重写大法 (一)-程序员宅基地

文章浏览阅读104次。本文介绍ViewGroup重写,我们所熟知的LinearLayout,RelativeLayout,FrameLayout等等,所有的容器类都是ViewGroup的子类,ViewGroup又继承View。我们在熟练应用这些现成的系统布局的时候可能有时候就不能满足我们自己的需求了,这是我们就要自己重写一个容器来实现效果。ViewGroup重写可以达到各种效果,下面写一个简单的重写一个Vi..._viewgroup 重写

Stm32学习笔记,3万字超详细_stm32笔记-程序员宅基地

文章浏览阅读1.8w次,点赞279次,收藏1.5k次。本文章主要记录本人在学习stm32过程中的笔记,也插入了不少的例程代码,方便到时候CV。绝大多数内容为本人手写,小部分来自stm32官方的中文参考手册以及网上其他文章;代码部分大多来自江科大和正点原子的例程,注释是我自己添加;配图来自江科大/正点原子/中文参考手册。笔记内容都是平时自己一点点添加,不知不觉都已经这么长了。其实每一个标题其实都可以发一篇,但是这样搞太琐碎了,所以还是就这样吧。_stm32笔记

随便推点

Java从零开始 第10.5讲 面向对象的习题课_编写一个测试类booktest,创建几个book对象,并打印它们的字符串表示,同时判断-程序员宅基地

文章浏览阅读197次。面向对象的习题课类的定义员工类Employee求和类Sum类与对象书籍类BookBook类的测试类BookTest异常能扩容的MyList类剪刀石头布转载请注明出处在这一讲中我会给出一些关于面向对象部分的习题,同样希望在不看答案的情况下自己编写,即使看过了答案,也要能够在不看答案的情况下写出来。类的定义员工类Employee定义在同一个公司工作的Employee类,要求其中含有属性:员工的名字,员工的年龄,员工的爱好,员工的公司名(注意当公司更名时,所有员工的公司名都需要更名),工作地点默认为中国(_编写一个测试类booktest,创建几个book对象,并打印它们的字符串表示,同时判断

Spark伪分布安装(依赖Hadoop)_下载spark的hadoop依赖-程序员宅基地

文章浏览阅读6.7k次,点赞7次,收藏14次。一、伪分布安装Spark安装环境:Ubuntu 14.04 LTS 64位+Hadoop2.7.2+Spark2.0.0+jdk1.7.0_761、安装jdk1.7(1)下载jdk-7u76-linux-x64.tar.gz;(2)解压jdk-7u76-linux-x64.tar.gz,并将其移动到/opt/java/jdk路径下(自建);命令:tar -zxvf jdk-_下载spark的hadoop依赖

TCP/IP 是用于因特网 (Internet) 的通信协议_广泛应用在internet中的tcp/ip的网络管理主要使用的是 ____协议。 (填空题)-程序员宅基地

文章浏览阅读6.7k次。计算机通信协议计算机通信协议是对那些计算机必须遵守以便彼此通信的规则的描述。什么是 TCP/IP?TCP/IP 是供已连接因特网的计算机进行通信的通信协议。TCP/IP 指传输控制协议/网际协议 (Transmission Control Protocol / Internet Protocol)。TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准..._广泛应用在internet中的tcp/ip的网络管理主要使用的是 ____协议。 (填空题)

java中的一些经典算法_java中temsize+=1运算-程序员宅基地

文章浏览阅读360次。转自:落尘曦的博客:http://blog.csdn.net/qq_23994787 原文链接:https://blog.csdn.net/qq_23994787/article/details/77951244#_Toc9101经典算法的Java实现(1)河内塔问题: 42(2)费式数列 43(3)巴斯卡(Pascal)三角形 44(4)蒙地卡罗法求 PI 45(..._java中temsize+=1运算

Linux习题简答题_linux中,第一个普通用户的uid为____。-程序员宅基地

文章浏览阅读3.1k次,点赞6次,收藏27次。第一章Q1 简述Linux系统的应用领域 Linux服务器;嵌入式Linux系统;软件开发平台;桌面应用Q2 简述Linux系统的特点 开放性、多用户、多任务、良好的用户界面、设备独立性、丰富的网络功能、可靠的系统安全、良好的可移植性Q3 简述Linux系统的组成 内核、shell、文件系统、应用程序Q4 简述主流的Linux发行版本 Redhat SUSE Oracle CentOS Ubuntu Debian Mandriva Gentoo Slackware Fe_linux中,第一个普通用户的uid为____。

【路径规划】基于matlab粒子群算法新型概率密度无人机作战路径规划【含Matlab源码 2620期】_已知目标出现概率热图matlab无人机路径规划-程序员宅基地

文章浏览阅读183次。粒子群算法新型概率密度无人机作战路径规划完整的代码,方可运行;可提供运行操作视频!适合小白!_已知目标出现概率热图matlab无人机路径规划