本篇文章是从本人为知笔记上誊抄过来的,文章内容最初是当作笔记进行整理的,没有组织语言结构,各位看官自行查阅取舍
官网下载jdk8:jdk-8u231-linux-x64.tar.gz
在/usr/local
下创建java
目录:mkdir java
,上传gz包到此目录下
解压:tar -zxvf jdk-8u231-linux-x64.tar.gz
(-z
:调用gzip;-x
: 从备份文件中还原文件;-v
:显示执行过程;-f
:运行指定文件)
配置环境变量: vim /etc/profile
,在最后加上如下配置:
#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_231
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
使配置生效
source /etc/profile
使用java -version
查看是否安装成功
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/
目录下生成两个repo文件:mysql-community.repo
、mysql-community-source.repo
/etc/yum.repos.d/
目录后再执行:yum install mysql-server
systemctl start mysqld
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p + 临时密码
,如果登录不了,vim /etc/my.cnf
,在[mysqld]
标签下添加如下内容:skip-grant-tables
跳过密码验证过程,然后重启mysql:systemctl restart mysqld
首先去镜像站下载tar包:http://uni.mirrors.163.com/mysql/Downloads/MySQL-5.7/
上传并解压到服务器/usr/local/mysql
目录中
为Centos添加mysql用户组和mysql用户(-s /bin/false
参数指定mysql用户仅拥有所有权,而没有登录权限):
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
给mysql用户赋予mysql文件夹的权限:
chown -R mysql:mysql /usr/local/mysql/
安装mysql:
./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
编辑/etc/my.cnf
[mysqld]
port=3306
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
user=mysql
max_connections=200
bind-address=0.0.0.0
# ignore table name cases
lower_case_table_names=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
启动mysql成功:
[root@CentOS7 mysql]# ./support-files/mysql.server start
Starting MySQL. SUCCESS!
将mysql进程放入系统进程中:
cp support-files/mysql.server /etc/init.d/mysqld
可使用系统服务方式启动:(start/stop/restart
service mysqld restart
配置mysql环境变量:并source /etc/profile保存生效
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
使用系统默认密码登录mysql:然后修改root的密码,参考下面的步骤
mysql -u root -p
如果系统自带mariadb,首先清除掉,否则安装不了mysql:rpm -qa |grep mariadb |xargs yum remove -y
下载相关rpm包:在https://dev.mysql.com/downloads/mysql/选择为Red Hat Enterprise Linux 7/Oracle Linux 7,把os的版本选择为all,直接下载mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar,所有的rpm包都在里面;
将下载的包放到/usr/local/mysql目录下(没有就创建),然后解压:tar -zxvf xxx.tar.gz
按顺序执行如下组件:
rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
修改mysql配置:vim /etc/my.cnf
#datadir=/var/lib/mysql
datadir=/data/mysql (没有就创建)
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
进行mysql的初始化:
mysqld --initialize
chown mysql:mysql /data/mysql -R
systemctl start mysqld.service
systemctl enable mysqld
启动mysql
启动:systemctl start mysqld.service
停止:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
通过 cat /var/log/mysqld.log | grep password
命令查看数据库的初始密码:
2019-02-16T09:46:38.945518Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,#t#dlkOG0j0
登录测试是否成功:mysql -u root -p 并且输入上一步查看到的初始密码
修改root的初始密码
set global validate_password.policy = 0;
set global validate_password.length=8;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'XXXXXXXX';
出现错误,提示:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决办法:
查看初始密码策略:SHOW VARIABLES LIKE 'validate_password%';
设置密码的验证强度等级,设置 validate_password_policy
的全局参数为 LOW
:
set global validate_password_policy=LOW;
当前密码长度为8位,如果要改成其它位数,则:set global validate_password_length=6
; (具体就几位就设置几位,注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,只要设置密码的长度小于 3 ,都将自动设值为 4 )
关于 mysql 密码策略相关参数;
a)validate_password_length
固定密码的总长度;
b)validate_password_dictionary_file
指定密码验证的文件路径;
c)validate_password_mixed_case_count
整个密码中至少要包含大/小写字母的总个数;
d)validate_password_number_count
整个密码中至少要包含阿拉伯数字的个数;
e)validate_password_policy
指定密码的强度验证等级,默认为MEDIUM
;
关于validate_password_policy
的取值:
LOW
:只验证长度;
MEDIUM
:验证长度、数字、大小写、特殊字符;
STRONG
:验证长度、数字、大小写、特殊字符、字典文件;
f)validate_password_special_char_count
整个密码中至少要包含特殊字符的个数;
设置新密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXXXX';
开启mysl远程访问:
mysql -u root -p + 新密码登录后:
create user 'root'@'%' identified with mysql_native_password by 'XXXXX';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
mysql初始化脚本命令:source /xxx/xxx/init.sql
另一篇笔记里有详细记录 :CENTOS7下安装REDIS
启动:service redisd start
停止:service redisd stop
,这么停止的话可能会报如下错误,因为redis里设置了密码
[root@localhost ~]# service redisd stop
Stopping ...
(error) NOAUTH Authentication required.
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
解决:
用命令行:redis-cli -a ‘你设置的redis密码’
登录,执行SHUTDOWN
命令关闭
[root@localhost bin]# redis-cli -a 123456
127.0.0.1:6379> SHUTDOWN
not connected> exit
遇到的问题:我按上述操作把密码重新修改后,启动的时候报错:
/var/run/redis_6379.pid exists, process is already running or crashed
解决办法:执行rm -rf /var/run/redis_6379.pid
将这个文件移除掉就可以了
进入到fastdfs
github主页 https://github.com/happyfish100/fastdfs/wiki
基本上按照官方文档可以安装成功,但是文档也有一些坑,下面这个教程是具体验证可行的
查看自己服务器的LAN地址:ip addr
,得到我的ip地址为:172.16.0.8
安装编译环境
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
创建数据存储目录:mkdir /home/dfs
切换到安装目录:cd /usr/local/src
安装libfatscommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
进入目录:cd libfastcommon/
编译安装libfastcommon
./make.sh && ./make.sh install
返回到 /usr/loca/src
目录,安装fastdfs
git clone https://github.com/happyfish100/fastdfs.git --depth 1
进入目录:cd fastdfs 编译安装fastdfs
./make.sh && ./make.sh install
配置文件准备:如果报错提示“目录或文件不存在” ,就把cp后面的 /usr去掉、直接从/etc开始写
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
返回到 /usr/loca/src
目录,安装fastdfs-nginx-module
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
返回到 /usr/local
目录,下载nginx安装包:wget http://nginx.org/download/nginx-1.15.4.tar.gz
,下载完后解压:tar -zxvf nginx-1.15.4.tar.gz
进入到 cd nginx-1.15.4/
添加fastdfs-nginx-module
模块:./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
然后编译安装:make && make install
vim /etc/fdfs/tracker.conf
修改如下内容:
port=22122 # tracker服务器端口(默认22122,一般不修改)
# 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下
base_path=/home/dfs # 存储日志和数据的根目录
vim /etc/fdfs/storage.conf
修改如下内容:
port=23000 # storage服务端口(默认23000,一般不修改)
# 这里原本为base_path=/home/yuqing/fastdfs,将他改为如下
base_path=/home/dfs # 数据和日志文件存储根目录
# 这里原本为base_path0=/home/yuqing/fastdfs,将他改为如下
store_path0=/home/dfs # 第一个存储目录
# 这里可能会存在两条相同的配置,注释掉一条即可,然后ip改成最开始让记录下来的你的ip,这里因为我的是192.168.1.103,所以我改成了这个
tracker_server=172.16.0.8:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
vim /etc/fdfs/client.conf 修改如下内容:
# 这里也是改成与之前相同的
base_path=/home/dfs
# 这里也可能存在两条,注释掉一条即可,ip改成自己的ip
tracker_server=192.168.1.103:22122 #tracker服务器IP和端口
关闭防火墙,不关无法访问:systemctl stop firewalld.service
启动tracker
服务:
/etc/init.d/fdfs_trackerd start
chkconfig fdfs_trackerd on #重启后会自启动tracker服务
启动storage服务
/etc/init.d/fdfs_storaged start
chkconfig fdfs_storaged on #重启后会自启动storage服务
查看服务器有没有启动:ps -ef|grep fdfs
,看到如下证明启动成功
[root@VM_0_8_centos sbin]# ps -ef|grep fdfs
root 10512 1 0 17:13 ? 00:00:00 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
root 10806 1 0 17:15 ? 00:00:02 /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
通过Xftp上传一张图片到/data/fdfs
目录下 (fdfs目录我自己创建的,不一定是这个目录,可以放其它目录),然后调用上传命令:fdfs_upload_file /etc/fdfs/client.conf /data/fdfs/test.png
成功后返回一串地址:group1/M00/00/00/rBAACF34niqAYRhqAABaKM8uF9M042.jpg
vim /etc/fdfs/mod_fastdfs.conf
修改如下内容:
# 原本为false 改为 true
url_have_group_name=true
store_path0=/home/dfs
#原本为tracker_server=tracker:22122 改为如下,ip为自己的ip
tracker_server=172.16.0.8:22122
配置nginx.config
:vim /usr/local/nginx/conf/nginx.conf
在nginx原有配置中添加如下内容:(主要是location ~/group[0-9]/
这一配置)
server {
listen 8888; ## 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
# 主要是添加一个location映射
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
因为我是的腾讯云服务器,8888商品默认是没有开放的,需要是腾讯的安全配置组添加一条映射:
启动nginx:/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx
启动浏览器测试:http://www.xxx.com:8888/group1/M00/00/00/rBAACF34niqAYRhqAABaKM8uF9M042.jpg
正常访问了,success!
vim /etc/hots可以配置一条映射,这样以后ip变了就不用改fastdfs的配置了
先安装依赖:
#gcc安装,nginx源码编译需要
yum install gcc-c++
#PCRE pcre-devel 安装,nginx 的 http 模块使用 pcre 来解析正则表达式
yum install -y pcre pcre-devel
#zlib安装,nginx 使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel
#OpenSSL 安装,强大的安全套接字层密码库,nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http)
yum install -y openssl openssl-devel
下载包解压,tar -xzvf nginx.tar.gz
cd nginx安装目录
./configure
make && make install
查看nginx安装目录:whereis nginx
nginx程序主目录:/usr/local/nginx/sbin
./nginx #启动
./nginx -s stop #停止,直接查找nginx进程id再使用kill命令强制杀掉进程
./nginx -s quit #退出停止,等待nginx进程处理完任务再进行停止
./nginx -s reload #重新加载配置文件,修改nginx.conf后使用该命令,新配置即可生效
#重启nginx,建议先停止,再启动
./nginx -s stop
./nginx
#查看nginx进程,如下返回,即为成功
[root@VM_0_12_centos ~]# ps aux|grep nginx
root 5984 0.0 0.0 112708 976 pts/1 R+ 14:41 0:00 grep --color=auto nginx
root 18198 0.0 0.0 20552 612 ? Ss 11:28 0:00 nginx: master process ./nginx
nobody 18199 0.0 0.0 23088 1632 ? S 11:28 0:00 nginx: worker process
添加开机自启动
#在rc.local增加启动代码即可
vi /etc/rc.local
#增加一行 /usr/local/nginx/sbin/nginx,增加后保存
#设置执行权限
cd /etc
chmod 755 rc.local
配置文件路径:/usr/local/nginx/conf/nginx.conf
修改配置重新加载配置生效:./usr/local/nginx/sbin/nginx -s reload
nginx跨域相关配置:
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}