Language Linux

Linux入手

一. 主机配置

系统 Ubuntu 20.04.6
CPU Intel(R) Xeon(R) E5-2620 v3 @ 2.40GHz
内存 32G
硬盘 900G

二. 远程连接

1. XShell

https://www.xshell.com/zh/xshell/

远程管理

2. XFTP

https://www.xshell.com/zh/xftp/

文件传输

三. 安装基础服务

1. MySQL (8.0)


1.1 更新系统包

sudo apt update
sudo apt upgrade

1.2 安装MySQL服务器

sudo apt install mysql-server

1.3 启动MySQL服务

sudo systemctl start mysql # 一般安装完成后会自动启动
sudo systemctl status mysql # 检查服务状态

1.4 设置MySQL开机自启

sudo systemctl enable mysql

1.5 运行安全脚本

sudo mysql_secure_installation # 运行安全脚本以设置root密码并移除不安全设置

1.6 登录MySQL

sudo mysql -u root -p

1.7 创建新用户和数据库

CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES; -- 刷新权限

1.8 配置远程访问

如果需要远程访问MySQL,编辑配置文件:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address并将其改为0.0.0.0

接着进入mysql数据库,修改user表 用户root的host属性

mysql -u root -p
mysql > use mysql;
mysql > update user set host = '%' where user ='root';
mysql > flush privileges;

然后重启MySQL服务:

sudo systemctl restart mysql

确保防火墙允许MySQL端口(默认3306)的访问。

2. Nginx


2.1 更新系统包列表

sudo apt update

2.2 安装Nginx

sudo apt install -y nginx

2.3 启动Nginx服务

sudo systemctl start nginx
sudo systemctl status nginx

2.4 允许Nginx通过防火墙

如果你启用了UFW防火墙,你需要允许Nginx通过防火墙。运行以下命令:

sudo ufw allow 'Nginx Full'

这将允许HTTP(端口80)和HTTPS(端口443)流量通过防火墙。

2.5 验证Nginx安装

你可以通过访问服务器的IP地址来验证Nginx是否安装成功。在浏览器中输入你的服务器IP地址,例如:

http://11.111.111.11

如果你看到Nginx的默认欢迎页面,说明安装成功。

2.6 配置Nginx

Nginx的配置文件位于 /etc/nginx/ 目录下。主要的配置文件是 /etc/nginx/nginx.conf,而站点配置文件通常位于 /etc/nginx/sites-available/ 目录下,并通过符号链接到 /etc/nginx/sites-enabled/ 目录。

你可以根据需要编辑这些配置文件来设置你的网站或应用程序。

2.7 测试Nginx配置

在修改Nginx配置文件后,建议使用以下命令测试配置文件的语法是否正确:

sudo nginx -t

2.8 重新加载Nginx配置

如果配置文件测试通过,你可以重新加载Nginx以使更改生效:

sudo systemctl reload nginx

3. Python (3.11)


3.1 更新系统包列表

sudo apt update

3.2 安装依赖项

sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

3.3 安装Python

sudo apt install -y python3.11

3.4 验证安装

python3.11 --version

3.5 安装venv模块

venv是Python 3.3及以上版本中用于创建虚拟环境的标准模块。确保你已经安装了venv模块:

sudo apt install -y python3.11-venv

3.6 创建虚拟环境

mkdir ~/myproject
cd ~/myproject
python3.11 -m venv myenv

这将在~/myproject目录下创建一个名为myenv的虚拟环境。

3.7 激活虚拟环境

source myenv/bin/activate

激活后,你的终端提示符会发生变化,显示虚拟环境的名称(例如(myenv))。

3.8 退出虚拟环境

(myenv) $ deactivate

3.9 安装其他包

在虚拟环境中,你可以使用pip安装所需的Python包。例如:

(myenv) $ pip install requests

3.10 删除虚拟环境

rm -rf ~/myproject/myenv

4. OpenJDK (11)


4.1 更新软件包列表

sudo apt update

4.2 查找可用版本

apt search openjdk

4.3 安装特定版本

sudo apt install openjdk-11-jdk

4.4 验证版本

java -version
javac -version

4.5 切换 Java 版本

如果安装了多个 JDK 版本,使用以下命令切换:


sudo update-alternatives --config java
sudo update-alternatives --config javac

5. Node.js (20)


5.1 卸载旧版本Node.js

sudo apt remove nodejs npm -y
sudo apt autoremove -y

5.2 安装依赖工具

sudo apt update
sudo apt install -y curl

5.3 添加NodeSource仓库

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

5.4 安装Node.js

sudo apt install -y nodejs

5.5 验证安装

node -v
npm -v

6. Redis


6.1 更新系统包列表

sudo apt update

6.2 安装Redis

sudo apt install redis-server

6.3 启动Redis服务

sudo systemctl start redis-server
sudo systemctl status redis-server

6.4 设置Redis开机自启

sudo systemctl enable redis-server

6.5 配置Redis

Redis的配置文件位于 /etc/redis/redis.conf。你可以根据需要编辑此文件来调整Redis的配置。例如,修改绑定IP地址、设置密码等。

编辑配置文件:

sudo nano /etc/redis/redis.conf

修改完成后,重启Redis服务以使更改生效:

sudo systemctl restart redis-server

6.6 测试Redis

你可以使用Redis自带的命令行工具 redis-cli 来测试Redis是否正常工作:

redis-cli

在Redis命令行中,输入 ping,如果返回 PONG,说明Redis工作正常:

127.0.0.1:6379> ping
PONG

6.7 防火墙配置

如果你的服务器启用了防火墙,确保允许Redis的端口(默认是6379)通过:

sudo ufw allow 6379

6.8 安全配置

为了增强Redis的安全性,建议设置密码认证。编辑Redis配置文件 /etc/redis/redis.conf,找到 # requirepass foobared 这一行,取消注释并将 foobared 替换为你自己的密码:

requirepass yourpassword

保存并退出,然后重启Redis服务:

sudo systemctl restart redis-server

7. PostgreSQL (11.7)

7.1 更新系统包

sudo apt update
sudo apt upgrade -y

7.2 添加 PostgreSQL 官方仓库

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

7.3 导入仓库签名密钥

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

7.4 更新包列表

sudo apt update

7.5 安装 PostgreSQL

sudo apt install postgresql-11

7.6 验证安装

sudo systemctl status postgresql@11-main

7.7 配置 PostgreSQL

默认情况下,PostgreSQL 只允许本地连接。如果你需要远程访问,可以编辑 pg_hba.confpostgresql.conf 文件:

  • pg_hba.conf 文件路径:/etc/postgresql/11/main/pg_hba.conf

  • postgresql.conf 文件路径:/etc/postgresql/11/main/postgresql.conf

pg_hba.conf 中添加或修改以下行以允许远程连接:

host    all             all             0.0.0.0/0               md5

postgresql.conf 中修改以下行以监听所有 IP 地址:

listen_addresses = '*'

修改完成后,重启 PostgreSQL 服务:

sudo systemctl restart postgresql@11-main

7.8 设置 PostgreSQL 用户和数据库

默认情况下,PostgreSQL 会创建一个名为 postgres 的用户。你可以切换到该用户,修改密码或创建新的数据库和用户:

sudo -u postgres psql
ALTER USER postgres PASSWORD 'your_password';

CREATE USER your_user WITH PASSWORD 'your_password';
CREATE DATABASE your_database OWNER your_user;

7.9 连接到 PostgreSQL

psql -U your_user -d your_database -h localhost

7.10 防火墙配置

如果你启用了防火墙,确保允许 PostgreSQL 的默认端口(5432):

sudo ufw allow 5432/tcp

7.11 安装失败可能的原因

```Shell
systemd[1]: postgresql@11-main.service: Starting requested but asserts failed.
systemd[1]: Assertion failed for PostgreSQL Cluster 11-main.
systemd[1]: postgresql@11-main.service: Starting requested but asserts failed.
systemd[1]: Assertion failed for PostgreSQL Cluster 11-main.
```

PostgreSQL 使用集群(Cluster)来管理数据库实例。你可以通过以下命令检查集群状态:

pg_lsclusters

输出示例:

Ver Cluster Port Status Owner    Data directory              Log file
11  main    5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log

如果状态为 down,说明集群未启动。

如果集群配置损坏(可能是之前卸载postgreSQL不干净导致的),可以尝试删除并重新创建集群:

sudo pg_dropcluster 11 main --stop
sudo pg_createcluster 11 main

然后启动集群:

sudo systemctl start postgresql@11-main

你可能也会喜欢...