Coder Social home page Coder Social logo

linux-configuration's Introduction

Linux-Configuration

新买linux基础搭建到运行记录过程慢慢完善

自述

本人长期从事前端开发并未涉及后端服务,所以想记录一下这次配置linux服务器过程,借鉴文档之处需要删除请联系我。

安装常用命令

  • tar
  • zip unzip

1.tar 安装

在 CentOS 中,以 root 用户在 shell 中执行下面的命令安装 tar。

yum install tar

下面的命令会在 Ubuntu 上安装 tar。“sudo” 命令确保 apt 命令是以 root 权限运行的。

yum install tar

下面的 apt 命令在 Debian 上安装 tar。

apt-get install tar

2.zip unzip 安装

CentOS 中

yum install -y unzip zip

安装常用软件

  • node
  • nginx
  • mysql
  • redis
  • pm2

1. node安装
2. nginx安装
3. mysql安装
4. redis安装
5.pm2安装

npm install pm2 -g 全局安装
pm2 start app.js 

pm2详细使用教程

辛苦!辛苦!喝口水!哈哈哈

Editor
Editor

linux-configuration's People

Contributors

yrmatou avatar

Stargazers

 avatar

Watchers

 avatar

linux-configuration's Issues

nginx 安装

nginx 安装包链接

1,wget http://nginx.org/download/nginx-1.20.2.tar.gz (你选择的版本链接,好处是可以指定版本下载)

2,yum install nginx (但是指定不了版本)

解压安装包
image

tar -zxvf 当前你下载的包

解压之后进入nginx的安装目录
image

cd 你解压的文件夹

nginx的配置

./configure 报错的话需要安装 
 gcc 环境 yum install gcc-c++
②安装PCRE依赖库 yum install -y pcre pcre-devel
③安装zlib 依赖库 yum install -y zlib zlib-devel
⑤安装OpenSSL安全套接字层密码库 yum install -y openssl openssl-devel

再次执行配置命令:
./configure
执行成功

编译安装

make install

查找安装路径命令:whereis nginx

image

启动、停止nginx

  • 先进入nginx的目录 cd 你查到到的绝对路径(例如:cd /usr/local/nginx/sbin/)
  • 再执行命令
./nginx 开启
./nginx -s stop 停止
./nginx -s quit
./nginx -s reload
  • 编辑nginx.conf配置文件改端口或者配置代理规则
Editor

可以把你的配置外面然后如图圈中方式引入 这样就可以管理所有人的配置

nginx启动命令以及与配置systemctl

systemctl status nginx

systemctl start nginx

systemctl stop nginx

systemctl restart nginx

1.创建一个nginx.service

在 /usr/lib/systemd/system/目录下面新建一个nginx.service文件。并赋予可执行的权限
vim /usr/lib/systemd/system/nginx.service
chmod +x /usr/lib/systemd/system/nginx.service

编写nginx.service

[Unit]                                                                                      //对服务的说明
Description=nginx - high performance web server              //描述服务
After=network.target remote-fs.target nss-lookup.target   //描述服务类别

[Service]                                                                                 //服务的一些具体运行参数的设置
Type=forking                                                                         //后台运行的形式
PIDFile=/usr/local/nginx/logs/nginx.pid                               //PID文件的路径
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf   //启动准备
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf           //启动命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload                                                 //重启命令
ExecStop=/usr/local/nginx/sbin/nginx -s stop                                                       //停止命令
ExecQuit=/usr/local/nginx/sbin/nginx -s quit                                                        //快速停止
PrivateTmp=true                                                                  //给服务分配临时空间

[Install]
WantedBy=multi-user.target                                               //服务用户的模式

启动服务

在启动服务之前,需要先重载systemctl命令
systemctl daemon-reload
systemctl start nginx.service

配置完成就不用到nginx目录里面去执行命令,直接nginx -t等就可以了

  • 每次修改配置都要先执行一下检查命令 检查通过后再执行更新命令
nginx -t

image

nginx -s reload

开机自启动

在etc的rc.local增加启动代码就可以了。

  vi /etc/rc.local

(1)添加语句

  /usr/local/nginx/sbin/nginx

image

(2)设置权限

  chmod 755 /etc/rc.local

nginx配置系统变量

1:进入 vim /etc/profile 文件
2:添加配置 如下

PATH=$PATH: /usr/local/nginx/sbin  //这个是你nginx的位置
export PATH

3:保存配置

source /etc/profile

4:这样就可以在任意目录使用nginx命令了

nginx -t 
nginx -s reload

node安装

首先 打开官网

Editor
复制拿到链接,下载nodejs
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz(下载链接请到网站复制)

解压 tar -xvf node-v10.15.3-linux-x64.tar.xz (你的链接包)

删除压缩包 rm -rf node-v10.15.3-linux-x64.tar.xz (你的链接包)

配置环境变量

编辑  vim .bash_profile

# .bash_profile 新增环境变量

export NODE_HOME=/node-v10.15.3-linux-x64
export PATH=$PATH:$NODE_HOME/bin 
export NODE_PATH=$NODE_HOME/lib/node_modules

保存.bash_profile
:wq

提交  source .bash_profile

检查是否安装成功
node -v
npm -v
有版本号出现则表示成功

Mysql 5.7安装

1、检查MariaDB
因为这个会和MySQL有冲突,所以先检查一下是否有安装
#查看mariadb
rpm -qa|grep mariadb
#卸载mariadb,mariadb-libs-5.5.44-2.el7.centos.x86_64是上一步查看显示出来的
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
#删除etc目录下的my.cnf
rm /etc/my.cnf
2、检查是否已经存在MySQL
#查看mariadb
rpm -qa | grep mysql
#卸载mysql,mysql-libs-5.1.73-5.el6_6.x86_64是上一步查看显示的结果
rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
3、官网下载安装包
官网地址https://downloads.mysql.com/archives/community/,下载对应版本的安装包,如果不知道版本,输入如下命令即可查看
getconf LONG_BIT
4、上传下载好的文件
可以使用SSH工具连接(WINSCP/FinalShell/Xshell),连接到服务器之后可视化界面上传到任意文件夹下即可,我上传到了home目录下
5、解压
进入/usr/local下,输入如下命令解压
cd /usr/local/
tar -xvf /home/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
解压完成之后,给解压好的文件夹改个名字
mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql
6、创建data目录
mkdir /usr/local/mysql/data
7、创建MySQL用户组和用户
#进入mysql目录
cd /usr/local/mysql
#添加用户组
groupadd mysql
#添加用户
useradd -g mysql mysql
8、更改权限
为了方便,直接给mysql文件夹更改权限
chown -R mysql.mysql /usr/local/mysql
9、配置环境
配置my.cnf文件,如果没有则使用如下命令创建
touch /etc/my.cnf
如果有,直接编辑
vim /etc/my.cnf
按i进入编辑模式,加入环境配置,可直接删除原配置,粘贴下方配置,注意要修改自己安装mysql的位置,如果是和我安装的位置一样,那么直接复制粘贴即可。
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]

设置3306端口

port = 3306

设置mysql的安装目录

basedir=/usr/local/mysql

设置mysql数据库的数据的存放目录

datadir=/usr/local/mysql/data

允许最大连接数

max_connections=200

服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
[client]
port=3306
socket=/usr/local/mysql/mysql.sock
!includedir /etc/my.cnf.d
按ESC键,输入:wq进行保存。
10、初始化
进入mysql的bin目录(第二条命令不要忘记修改自己的mysql安装目录)
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize
此时,如果linux环境缺少libaio.so.1,会报错./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
安装对应的缺少文件后,再执行刚才的命令
yum install -y libaio.so.1
#如果执行了上边的命令不能解决,那么在执行下边的即可
yum install -y libaio
等待安装成功后,重新执行,如下图所示即成功初始化,记住初始密码
11、加入系统服务
同样,再次提醒,不要忘记修改自己的mysql安装目录
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
12、启动MySQL,修改密码
service mysql start
#进入mysql
./mysql -u root -p
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
#刷新权限
flush privileges;
13、配置远程访问
使用刚才设置的密码进行登录,登录成功后输入下面的命令
use mysql;
select user,host,plugin,authentication_string from user;
#mysql8认证方式改了,mysql_native_password这个才能远程连接mysql
alter user 'root'@'%' identified with mysql_native_password by 'root';
flush privileges;
14、Navicat测试连接

redis 安装

默认端口是 6379 需要在服务器安全组开放

安装包

版本列表

wget http://download.redis.io/releases/redis-3.0.0.tar.gz 下载你需要的指定版本

将redis-3.0.0.tar.gz拷贝到/usr/local下

cp -r redis-3.0.0.rar.gz /usr/local

解压源码

tar -zxvf redis-3.0.0.tar.gz 

安装到指定目录 如 /usr/local/redis

make PREFIX=/usr/local/redis install

redis.conf是redis的配置文件,redis.conf在redis源码目录。
拷贝配置文件到安装目录下
进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下

cd /usr/local/redis
cp /usr/local/redis-3.0.0/redis.conf  /usr/local/redis/bin

进入安装目录bin下

cd /usr/local/redis/bin

后端模式启动

修改redis.conf配置文件, daemonize yes 以后端模式启动

vim /usr/local/redis/bin/redis.conf

image

执行如下命令启动redis:

cd /usr/local/redis
./bin/redis-server ./redis.conf

连接redis

/usr/local/redis/bin/redis-cli 

关闭redis

强行终止redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,命令为:

cd /usr/local/redis
./bin/redis-cli shutdown

强行终止redis

pkill redis-server

redis开机自启

vim /etc/rc.local
//添加
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf

后台启动redis服务

设置在后台运行redis,打开并编辑redis.conf,把daemonize设置为yes 设置好后保存并退出(:wq)

vim redis.conf

image
redis.conf配置文件中daemonize守护线程,默认是NO,daemonize是用来指定redis是否要用守护线程的方式启动

daemonize yes : redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
daemonize no :当daemonize选项设置成no时,当前界面将进入redis的命令行界面,exit强制退出或者关闭连接工具(putty,xshell等)都会导致redis进程退出。
执行后台启动命令

./redis-server redis.conf

执行以下命令查看redis是否启动成功

ps -ef|grep redis

image

参考文章

mysql 安装

默认端口3306,需要在服务器安全组开放

安装前,我们可以检测系统是否自带安装 MySQL:

rpm -qa | grep mysql  

如果你系统有安装,那可以选择进行卸载:

rpm -e mysql  // 普通删除模式
rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

安装 MySQL:

下载地址

image

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server

权限设置:

chown mysql:mysql -R /var/lib/mysql

初始化 MySQL:

mysqld --initialize

启动 MySQL:

systemctl start mysqld

查看 MySQL 运行状态:

systemctl status mysqld

验证 MySQL 安装

mysqladmin --version
输出类似这种说明mysql安装成功 mysqladmin  Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386

设置root密码

[root@host]# mysql
[root@host]# mysqladmin -u root password "new_password";

通过这样连接mysql服务器
[root@host]# mysql -u root -p
Enter password:*******

1.mysql8.0之前版本设置远程访问

授权所有主机都可以通过root用户,密码123456,进行访问数据库
123456:给新增权限用户设置的密码
%:代表所有主机,也可以具体到主机ip地址

适用于 MySQL 8.0之前的版本,可以直接授权

grant all privileges on . to 'root'@'%' identified by '123456' with grant option;

刷新权限

flush privileges;

2.mysql8.0包括之后版本设置远程访问

授权所有主机都可以通过root用户,密码123456,进行访问数据库
123456:给新增权限用户设置的密码
%:代表所有主机,也可以具体到主机ip地址
MySQL 8.0之后的版本,需要先创建一个用户,再进行授权

create user root@'%' identified by '123456';
grant all privileges on . to root@'%' with grant option;

刷新权限

flush privileges;

参考文章
详细点的文章

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.