1. 什么是Linux

Linux服务器搭建:从入门到实践的全流程

  • 系统内核与发行套件的区别
  • Linux系统内核由Linus Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
  • Linux发行套件系统是我们常说的Linux操作系统,是由Linux内核与各种常用软件的集合产品。真正的Linux指的是系统内核,而我们常说的Linux指的是“发行版完整的包含一些基础软件的操作系统”。
  • Linux的特点
  • 稳定且有效率。
  • 免费(或少许费用)。
  • 漏洞少且快速修补。
  • 多任务多用户。
  • 更加安全的用户与文件权限策略。
  • 适合小内核程序的嵌入系统。
  • 相对不耗资源。
  • 2. Linux系统种类

    常见的有红帽企业版Linux(RHEL)等。

    3. Linux的安装方式

  • 硬盘安装方式:一般在Windows系统基础上进行,例如安装Windows和Linux共存的双系统或者系统没有光驱的情况。但Windows和Linux不能安装在一个分区内,因为文件系统格式不同,Linux无法识别硬盘分区。
  • U盘安装方式:服务器一般不配备光驱且光驱安装速度慢,批量安装系统时浪费时间,可通过U盘方式安装。U盘价格低廉、可多次使用,服务器或PC基本都有USB接口,且安装速度快。
  • 网络安装方式:安装单台或数量不多(不超过10台)的服务器时,U盘或光驱方式尚可,但安装几百台甚至上千台服务器时,这种方法不现实。网络安装一般是大批量的自动化安装过程,常见的批量网络安装工具是Kickstart,它是一个无人值守的Linux系统自动安装工具。通过创建一个应答文件自动完成Linux系统的安装,其工作原理是通过典型安装过程中需要人工干预填写的各种参数,生成一个ks.cfg应答文件,安装者只需告诉Kickstart安装程序从何处读取ks.cfg文件,然后Kickstart会根据此文件的设定自动完成系统的安装。不过网络安装需要网络服务支持,对于新手有一定难度。
  • 光驱安装方式:以光驱方式安装Linux系统是最常见的软件安装方式,简单易懂。前提是计算机要有光驱,并且有Linux系统安装光盘。可以从网上下载CentOS Linux版本ISO格式的安装介质,然后将ISO文件刻录成光盘,下载完成后,通过UltraISO、InfraRecorder、Nero Burning ROM等刻录软件将ISO文件刻录到DVD光盘,然后进入BIOS,设置计算机的第一启动顺序为DVD
  • ROM,保存设置后将DVD放入光驱,重新启动计算机,光盘将自动进行引导,启动Linux安装程序。
  • 二、Linux服务器搭建实践步骤

    1. 选择适合的Linux发行版

    常见的Linux发行版有Ubuntu、CentOS、Debian等,它们各有特点和应用场景。对于初学者来说,Ubuntu是一个很好的选择,因为它有着广泛的社区支持和友好的用户界面。

    2. 准备硬件和安装介质

    在搭建Linux服务器之前,需要准备一台可靠的硬件设备,并下载相应的Linux发行版安装介质。可以选择将Linux系统烧录到光盘、USB驱动器或者制作一个启动盘。

    3. 安装Linux系统

    将准备好的安装介质插入服务器,并启动计算机。根据屏幕提示,选择安装Linux系统。在安装过程中,需要进行一些基本的设置,如选择安装语言、键盘布局和系统分区等。对于初学者,建议选择默认设置。

    4. 进行基本配置

    安装完成后,需要进行一些基本的配置来使服务器正常运行。这些配置包括设置主机名、网络连接、更新软件包和安装所需的必备工具。

  • 设置主机名:将服务器命名为希望的名称。
  • 网络连接:根据网络环境,配置网络连接设置,包括静态IP地址、网关和DNS服务器等。
  • 更新软件包:使用命令行工具,输入更新命令,如`sudo apt update`(对于Ubuntu)或`sudo yum update`(对于CentOS)来更新系统软件包。
  • 安装必备工具:安装一些常用的工具,如文本编辑器(如Vim或Nano)、SSH服务等。
  • 5. 配置服务器应用程序

    根据需求,可能需要安装和配置一些服务器应用程序,如Web服务器(如Apache或Nginx)、数据库服务器(如MySQL或PostgreSQL)和邮件服务器等。这些应用程序可以通过包管理器进行安装,并根据具体需求进行配置。

    6. 加强服务器安全

    在搭建完服务器后,为了保护服务器的安全,可以采取一些措施,如:

  • 配置防火墙:限制访问和网络连接,保护服务器免受潜在攻击。
  • 更新和维护软件:定期更新系统和应用程序的补丁,确保服务器免受已知漏洞的威胁。
  • 设置强密码策略:使用复杂的密码,并定期更改密码,以防止未经授权访问。
  • 三、Linux服务器搭建常见问题及解决方案

    1. 服务器内存不足导致启动问题

    需要检查服务器内存使用情况,优化内存使用或者增加内存容量。

    2. 权限问题导致的无法读写执行文件以及写入日志

    检查文件和目录的权限设置,确保用户或进程有相应的权限。

    3. 服务器防火墙的端口未加入防火墙白名单

    将服务器应用程序所需的端口加入防火墙白名单,允许外部访问。

    4. 项目启动命令导致的问题

    检查项目启动命令的正确性,确保所有依赖项都已正确安装和配置。

    5. 运行自己编译的程序时提示找不到.so文件

    检查.so文件的路径是否正确,或者是否需要将其添加到系统的库路径中。

    6. 查看静态库中包含哪些.o文件

    使用`nm`命令或者`objdump`命令查看静态库中的目标文件。

    7. 查看静态库或.o中包含哪些函数

    使用`nm`命令或者`objdump`命令查看静态库或目标文件中的函数。

    8. 如何生成静态库

    使用`ar`命令将多个目标文件打包成静态库。

    9. 统计文件、目录大小

    使用`du`命令统计文件或目录的大小。

    10. 更改MySQL数据目录

    如果需要更改MySQL的数据目录,可以参考以下操作步骤:

  • 运行命令以停止MySQL服务(Alibaba Cloud Linux/CentOS:`sudo systemctl stop mysqld`;Ubuntu/Debian:`sudo systemctl stop mysql`)。
  • 修改配置文件,找到`f`文件(通常位于`/etc/f`),打开文件并修改`datadir`字段,将其值更改为新的数据目录路径。
  • 拷贝数据,将原数据目录中的所有文件和文件夹拷贝到新的数据目录中。
  • 启动MySQL服务(Alibaba Cloud Linux/CentOS:`sudo systemctl start mysqld`;Ubuntu/Debian:`sudo systemctl start mysql`)。
  • 11. MySQL无法启动,提示“Permission denied”错误

    如果MySQL服务无法启动,并提示“Permission denied”错误,可以参考以下步骤操作:

  • 通过查看MySQL的`error.log`文件,可以定位到具体的错误信息(默认位置通常是`/var/log/mysqld.log`或`/var/log/mysql/error.log`)。
  • 检查并清理残留进程,如果存在`mysqld`进程残留,运行命令可以结束这些进程。
  • 启动MySQL服务(Alibaba Cloud Linux/CentOS:`sudo systemctl start mysqld`;Ubuntu/Debian:`sudo systemctl start mysql`)。
  • 12. MySQL无法启动,提示“File './binlog.index' not found”错误

    如果MySQL服务无法启动,并提示“File './binlog.index' not found”错误,可以参考以下步骤:

  • 通过查看MySQL的`error.log`文件,可以定位到具体的错误信息(默认位置通常是`/var/log/mysqld.log`或`/var/log/mysql/error.log`)。
  • 查看MySQL数据目录,发现用户权限不正常(默认数据目录位置通常是`/var/lib/mysql`,如果修改了数据目录,需要修改相关命令)。
  • 执行命令,赋予权限。
  • 启动MySQL服务(Alibaba Cloud Linux/CentOS:`sudo systemctl start mysqld`;Ubuntu/Debian:`sudo systemctl start mysql`)。
  • 13. 远程连接MySQL问题

    ECS实例中的MySQL安装后登录正常,但远程连接MySQL数据库时失败,提示“1045

  • Access denied for user 'root'@''(using password:YES)”错误,原因是在ECS实例中安装MySQL后,默认只能在本机登录,MySQL数据库未授权其它远程IP地址登录。解决方案是远程连接ECS实例,登录数据库,然后执行授权SQL命令,授权远程登录MySQL数据库权限,最后执行`flush privileges;`刷新权限。
  • 14. 远程连接Linux系统的ECS实例中的MySQL失败,提示“ERROR 2003 (HY000): Can't connect to MySQL server on '39.106..' (110)”错误

    可能是由于该IP地址没有访问MySQL的权限(即3306端口不监听该IP地址),导致无法远程连接MySQL。解决方案是远程登录已安装MySQL的Linux实例,执行命令备份`f`文件,修改`f`配置文件,添加`bind

  • address = 0.0.0.0`,重启MySQL服务,确认MySQL的3306端口监听恢复正常。
  • 15. Linux系统的ECS实例通过vsftp上传文件失败,提示“553 Could not create file”错误

    需要检查vsftp的配置和文件系统权限,确保用户有创建文件的权限。