我想尝试设置一个无头(仅终端)Ubuntu Linux 服务器,并且正在尝试寻找资源来开始。我已经成为 GUI Linux/Windows 用户一段时间了,并且已经完成了在 Ubuntu 桌面上设置服务器(使用 GUI)的教程,但我发现最大的困难是当我尝试仅使用终端时。最终我想尝试设置一个网络服务器并托管个人内容(个人网站,或者可能是个人网站)合流地点)。在服务器上,我还想设置一个数据库(postgres / mysql),我也不会回避使用 Samba 的一些经验。我已经足够在服务器上启用 ssh,这样我就可以 ssh 了。
我唯一一次尝试运行无头服务器时遇到的问题:我想我安装了mysql(使用apt-get),但之后几乎没有掌握任何东西,例如如何让数据库服务与服务器上的服务器一起启动重新启动,如何检查它是否安装正确,甚至如何确保它在不访问可视化进程管理器的情况下运行。
是否有人会专门针对那些不熟悉 Linux 服务器(尤其是使用纯终端界面)的人推荐一个教程?
答案1
首先,我将为您定义一些内容,以便您了解应用程序在 Web 服务器方面正在做什么。
阿帕奇是一个 HTTP Web 服务器,允许您“像互联网一样”提供静态 HTML 和文本文件。您的网络服务器将处理入站请求以及您不想处理的所有其他内容。通常,安装完成后,您可以进入该htdocs
目录并放置一些文件。如果您将浏览器指向localhost
(假设您已使用 Apache 默认值来确定要运行的端口,默认值为 80),您将可以使用这些文件。这就是一个基本网站所需的全部内容。
您可能还想考虑构建支持以下功能的 ApachePHP。 PHP 是一种脚本语言,在网站中大量使用,用于提供动态内容并为静态 html 文件“增添趣味”。
一旦 PHP 和 Apache 一起工作,请考虑使用数据库(例如 MySQL)帮助存储您的数据。大多数网络软件(例如 Wordpress 和论坛)都需要数据库,并且设置起来并不难。 MySQL 有一个漂亮的界面,称为 PHPMyAdmin,它可以安装在您的服务器上,并允许您从浏览器浏览数据库(不用担心,有一个登录)。您可能必须使用命令行与 MySQL 交互的唯一一次是如果您想使用kill
.
将所有这些放在 Linux 机器上,您就创建了一个灯服务器(Linux、Apache、MySQL、PHP)。
如果您已经了解所有这些内容,请原谅我,我只是想为您奠定一个良好的术语基础,因为您似乎对 Linux/服务器的东西很陌生。
为了回答您的实际问题,我看到两种可能的选择。
1- 将 X11 串流至您的工作站。如果您使用的是 Windows,则需要类似的东西超过在您的服务器上,您需要将DISPLAY
环境变量设置为计算机的主机名,如下所示:
export DISPLAY=you_host_name_here:0.0
这样,您将能够在服务器上打开 GUI 应用程序,但在工作站上显示窗口。但是,我认为这并不是您最能受益的。
2- 熟悉终端。无论您喜欢与否,这是您在 Linux 世界中必须做的事情:) 熟悉文件系统(cd
、ls
、mkdir
等)是件好事。但为了提供 Web 内容(.html 或 .php 文件),您需要熟悉基于终端的文本编辑器。我用六,它的学习曲线很陡,但非常强大。替代方案是nano
,emacs
和pico
(当然还有其他)。能够使用编辑器将允许您对文件进行更改,而无需处理 X 转发的 GUI 之类的东西。
最后一点,您已经使用包管理器安装了很多应用程序。您是否尝试过从源代码构建应用程序?我倾向于自己构建东西,因为我觉得我可以更好地控制东西的安装位置和兼容性。对于 Apache,您需要在编译时支持 PHP 和 MySQL。这看起来可能需要花很多功夫,但我向您保证它确实非常简单,并且在使用 Linux 或 UNIX 时它是一个很棒的工具。
答案2
您的问题由大量子问题组成,可能应该单独询问。但是,对于如何知道 mysql 是否正在运行的具体问题:
在一般情况下,我建议 htop ( sudo apt-get install htop
) 监视进程/RAM 使用情况/终止任务。它就像顶级但更好。
有关查看服务器是否正在运行的具体情况,请查看sudo /etc/init.d/service_name command
,其中服务是 mysql/apache2/nginx/postgresql/ssh/ufw。 (键入ls /etc/init.d
以查看更完整的列表)命令是启动/停止/重新启动/状态之一。一些其他服务应通过 进行监控sudo service service_name command
。所以在这种情况下sudo service mysql status
应该告诉你mysql是否正在运行。
要设置/配置数据库,请在线阅读各种教程,购买一本书。就个人而言,如果您不需要非常高级的数据库,我建议使用更简单的数据库,例如 sqlite。与 postgresql/mysql/oracle 等成熟的数据库套件相比,设置和使用要简单得多。请记住,正确调整的数据库对于设置和管理来说并不容易;这就是为什么数据库管理员通常是一份全职工作。看:http://www.sqlite.org/whentouse.html确定 sqlite 是否不够强大。
答案3
读了这本书Nginx HTTP 服务器
对于初学者来说,这是一本特别好的书——第一章解释了 Linux 入门所需了解的一切,等等。
另外,您将学习如何设置一个非常好的服务器nginx——这几天很流行。