一. 主机配置
系统 | 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.conf
和 postgresql.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