一、系统升级,安装系统常用工具及配置
1.1 升级软件及Centos 内核
yum update -y
yum clean all
cat /etc/redhat-release
1.2 安装虚拟机守护进程
yum install qemu-guest-agent -y
1.3 安装系统常用工具包
yum install lrzsz vim wget dnf -y
1.4关闭seinux
vim /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
shutdown -r now
getenforce #查看SEliunx状态
1.5 关闭IPV6
方法一:
1.5.1 vim /etc/sysctl.conf
增加net.ipv6.conf.all.disable_ipv6=1
1.5.2 vim /etc/sysconfig/network
增加 NETWORKING_IPV6=no
1.5.3 vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改IPV6INIT=no
1.5.4关闭防火墙ipv6 自动启动
systemctl disable ip6tables.service
1.5.5执行sysctl -p或者reboot重启命令
sysctl -p
方法二:
vim /etc/sysctl.conf
添加下面两行内容
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
sysctl -p 生效配置
二、安装java 1.8
2.1 yum 搜索可安装的java版本
yum list java*
2.2选择安装java1.8
yum install java-1.8.0-openjdk-devel.x86_64 -y
2.3查看安装版本
java -version
三、安装Nginx
3.1安装环境依赖包
yum install pcre-devel expat-devel zlib zlib-devel openssl-devel expat-devel -y
yum install gcc gcc-c++ pcre pcre-devel -y
3.2下载nginx 并解压nginx
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar xf nginx-1.20.2.tar.gz
3.3创建nginx 用户和组
useradd -r -s /sbin/nologin nginx
3.4 编译安装Nginx
cd nginx-1.20.2
vim nginx.sh (将下列信息复制到脚本)
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib64/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=nginx \
--group=nginx \
--with-compat \
--with-file-aio \
--with-threads \
--with-http_addition_module \
--with-http_auth_request_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_mp4_module \
--with-http_random_index_module \
--with-http_realip_module \
--with-http_secure_link_module \
--with-http_slice_module \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_sub_module \
--with-http_v2_module \
--with-mail \
--with-mail_ssl_module \
--with-stream \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module
--------------------------------------------------------------------------------------
chmod +x nginx.sh #赋予脚本可执行权限
./nginx.sh #运行脚本
make && make install #编译并安装
3.5 添加环境变量,查看版本,
export PATH=$PATH:/usr/sbin/nginx
source /etc/profile
nginx -v
3.6 测试nginx
netstat -lnt | grep 80
nginx -t
nginx -c /etc/nginx/nginx.conf
nginx -s reload
问题:
nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
解决: mkdir -p /var/cache/nginx/client_temp
3.7 设置Nginx 开机自启动
vim /lib/systemd/system/nginx.service
填写以下信息
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf #路径请根据实际配置修改
ExecReload=/usr/sbin/nginx -s reload #路径请根据实际配置修改
ExecStop=/usr/sbin/nginx -s quit #路径请根据实际配置修改
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl enable nginx.service 设置开机自启
3.8 设置反向代理
vim /etc/nginx/nginx.conf 增加2个server模块 进行反向代理
server {
listen 80 default_server;
server_name localhost;
location / {
rewrite ^/ http://www.123.com/;
}
}
server {
listen 80;
server_name localhost;
location / {
index index.php index.html index.htm; #定义首页索引文件名称
proxy_set_header Host $host; #http请求的header中的host字段也放到转发的请求
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_http_version 1.1; #添加HTTP 1.1的支持
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 90; #nginx和后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k 设置
proxy_busy_buffers_size 64k; #高负荷缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
add_header Cache-Control no-cache;
add_header X-Cache $upstream_cache_status;
proxy_pass http://127.0.0.1:8081; #反向代理到127.0.0.1:8081
}
}
nginx -t #修改配置后 运行nginx -t 测试是否有误
systemctl restart nginx #重启nginx 服务
3.9 防火墙放行80,8081端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
systemctl restart firewalld.service
四、安装redis
4.1 下载解压安装
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar xf redis-6.2.6.tar.gz
cd redis-6.2.6
make
make install PREFIX=/usr/local/redis
4.2 使用前台启动redis(不能退出)
cd /usr/local/redis/bin/
./redis-server
4.3 设置后台启动redis
从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录
cp /root/redis-6.2.6/redis.conf /usr/local/redis/bin/
修改 redis.conf 文件,把 daemonize no 改为 daemonize yes
vim /usr/local/redis/bin/redis.conf
后台启动
cd /usr/local/redis/bin/
./redis-server redis.conf
4.4 添加redis开机自启动服务
vim /etc/systemd/system/redis.service
(将以下内容复制进redis.service)
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
4.5设置redis开机启动
systemctl daemon-reload
systemctl start redis.service
systemctl enable redis.service
4.6创建 redis 命令软链接
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis
五、安装PGSQL
5.1下载并安装数据库
yum install -y
https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql12-server
5.2初始化数据库
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
5.3 设置开机启动
systemctl enable postgresql-12
systemctl start postgresql-12
5.4 创建用户和数据库
5.4.1使用postgres用户登录(PostgresSQL安装后会自动创建postgres用户,无密码)
su - postgres
5.4.2 登录postgresql数据库
psql
5.4.3 创建用户和数据库并授权
create user sms with password '*****'; // 创建用户, 设置密码 *号代替
create database pgsms owner sms //创建数据库
grant all privileges on database pgsms to sms //授权
5.4.4 退出psql(输入 \q 再按回车键即可)
\q
exit
5.5 开启pgsql远程访问
find / -name "pg_hba.conf"
vi /var/lib/pgsql/12/data/pg_hba.conf
找到IPv4 local connections: 加入下列一行
host all all 10.0.0.0/23 md5
(允许10.0.0.0/23 网段远程连接)
vi /var/lib/pgsql/12/data/postgresql.conf
#listen_addresses='localhost' #取消该行注释,并修改为
listen_addresses = '*' #监听来自任何主机的连接请求
问题:psql: 致命错误: 对用户"sms"的对等认证失败
解决:find / -name "pg_hba.conf"
vi pg_hba.cpnf 将peer 修改为md5
systemctl restart postgresql-12 重启服务
5.6 修改默认生成的 postgres 用户密码
(此postgres非上面的postgres用户,此为数据库的用户,上面的为操作系统的用户)
su - postgres
psql -U postgres
alter user postgres with encrypted password '*****'; #设置密码 *号代替
或:
su - postgres
psql -d postgres -U postgres
alter user postgres with password '*****'; #设置密码 *号代替
5.7 防火墙放行pgsql 远程端口
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
systemctl restart firewalld.service
5.8 去掉和指定用户连接数据库权限
5.8.1去掉用户postgres 对postgress数据库的链接权限
revoke connect on database postgres from postgres;
5.8.2去掉用户postgres 对pgsms数据库的链接权限
revoke connect on database pgsms from postgres;
5.8.3添加指定用户sms对pgsms的链接权限
GRANT connect on database pgsms to sms;
systemctl restart postgresql-12 重启服务
5.9导入pgsql数据库
cd /usr/pgsql-12/bin
./psql -U sms pgsms</opt/public.sql