Linux基本部署配置及常见扩展应用

Linux软件包安装方法

  1. 安装:
    整个安装过程可以分为以下几步:
    1) 取得应用软件:通过下载、购买光盘的方法获得;
    2)解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar
–xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar –xvf 解压后的tar包”进行解包;
    3) 阅读附带的INSTALL文件、README文件;
    4) 执行“./configure”命令为编译做好准备;
    5) 执行“make”命令进行软件编译;
    6) 执行“make install”完成安装;
    7) 执行“make clean”删除安装时产生的临时文件。
  好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说,
Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的
INSTALL和README文件,一般都会有说明。
  2. 卸载:
    通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。
    那么是不是说就不能够卸载呢!其实也不是,有两个软件能够解决这个问题,那就是Kinstall和Kife,它们是tar包安装、卸载的黄金搭档。

rpm包管理

  1.光盘挂载(只有将光盘挂在上一个文件,我们才能使用)

 mount /dev/cdrom /mnt
cd /mnt
ls

  2.安装rpm包

rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm

  3.卸载rpm

rpm -e vsftpd-3.0.2-22.el7.x86_64

  4.rpm包的查询

rpm -q vsftpd
有则返回其文件名
rpm -q vsftp
无则返回没有安装该包
rpm -qa |grep vsf
在rpm文件下模糊搜索
which vim
查询vim的目录
rpm -qf /usr/bin/vim
查看某个文件下的某个包

  5.补充

  因为一些包之前存在着依赖关系,所以下载某些包时,需要先下载其依赖,但是有时候依赖有可能是这样的

A的依赖BC   B的依赖DF   F的依赖AC

  如果出现这种情况我们可以:rpm  -ivh  a b c d e f

yum的使用

  1.使用aliyun yum站点源

    Base源:

cd /etc/yum.repos.d/
进入到该文件下进行操作
mv *.repo /tmp
先将原本的源文件移走,不然若先匹配到原有的源文件,会直接去匹配到的文件指向的地址下载
wget http://mirrors.aliyun.com/repo/Centos-7.repo
设置地址

    EPEL源:

yum install -y epel-release

  2.使用yum安装软件

yum install -y openssl openssl-devel

  3.软件包查询及组安装

yum list |grep vsftpd
查询
yum grouplist
这是针对一个包的安装
yum groupinstall "Development Tools"
这是一个组的安装

  4.卸载软件包

yum remove 包名

  5.优化yum源

    (1)本地镜像yum源(光盘挂载到/mnt下)

我们需要自己写一个后缀为repo的文件,格式如下
[local]
name=localios
baseurl=file:///mnt
gpgcheck=0
写完后,清缓存
yum clean all

    (2)局域网yum源(ftp)

1.安装ftp软件
yum install -y vsftpd 2.启动ftp服务
systemctl start vsftpd
开启服务
systemctl enable vsftpd
开机自启动 3.创建站点目录,并将光盘软件拷贝其中
[root@python3 ~]# cp -a /mnt/* /var/ftp/pub/centos7 4.生成ftp站点的yum源配置文件
[ftp]
name=centos7
baseurl=ftp://10.0.0.100/pub/centos7
gpgcheck=0 5.安装软件测试
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y

  

源码包应用

  1.解压

压缩格式:
.zip
unzip xxx.zip
.tar
.tar.gz
.tgz
.tar.bz2
.tar.xz
解压方式(需要下载依赖):
tar xf xxx.tar
.iso
mount -o loop xxx.iso /test
.cpio
cpio -idcmv < xxx.cpio

  2.源码包安装

    (1)python3.6源码包安装

./configure       ------> 定制功能
make
make install

      mysql源码包安装

cmake
make
make install

    (2)redis源码包安装

解压后,make即可

    (3)修改环境变量(可做可不做)

vim /etc/profile
添加以下一行:
export PATH=/opt/redis-3.2.10/src:$PATH
生效配置
source /etc/profile

    (4)测试让python链接redis

unzip redis-py-master.zip
cd redis-py-master
python3 setup.py install
对redis的单实例进行连接操作
python3
>>>import redis
>>>r = redis.StrictRedis(host='localhost', port=6379)
>>>r.set('name', 'oldguo')
True
>>>r.get('name')
'oldguo'

  

二进制包(mysql5.7.20)

  1.解压及制作软连接

tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql

  2.编辑环境变量

vim  /etc/profile
添加以下一行:
export PATH=/opt/mysql/bin:$PATH
生效配置:
source /etc/profile

  3.卸载自带mariadb

yum remove mariadb-libs

  4.生成配置文件

vim /etc/my.cnf
[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
socket=/tmp/mysql.sock
user=mysql
log_error=/var/log/mysql.log
log_bin=/opt/mysql/data/mysql-bin
server_id=100
[mysql]
socket=/tmp/mysql.sock

  5.初始化数据

由于权限问题我们呢需要手动创建并且授权
touch /var/log/mysql.log
chown -R mysql.mysql /var/log/mysql.log
初始化数据命令
mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql

  6.启动mysql

cd /opt/mysql/support-files
./mysql.server start cp mysql.server /etc/init.d/mysqld
重启mysql服务
/etc/init.d/mysqld restart 扩展:使用systemctl 管理mysql
vim /etc/systemd/system/mysqld.service
写入
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target [Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
重启mysql服务
systemctl restart mysqld
查询服务是否启动成功
netstat -tulnp |grep 3306

  7.测试python3链接mysql

创建mysql链接用户

grant all on *.* to root@'10.0.0.%' identified by '123';
create database bbs charset utf8; python代码测试: pip3 install --upgrade pip
pip3 install pymysql vim testmysql.py
#!/usr/bin/python3
import pymysql
db = pymysql.connect("10.0.0.100","root","123","bbs" )
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close() python3 testmysql.py

  

LNMP架构环境部署

简介:

LNMPT =  Linux  Nginx  MySQL  PHP  Tomcat
LNMPJ =  Linux  Nginx  MySQL  PHP  Jboss

  1.使用官方的Nginx yum源

vim /etc/yum.repos.d/nginx.repo
写入
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1 执行命令
yum install nginx -y

  2.启动Nginx,并将Nginx加入开启自启

systemctl start nginx
systemctl enable nginx

  3.使用第三方扩展源安装php7.1

 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm [root@nginx ~]# yum remove php-mysql-5.4 php php-fpm php-common
[root@nginx ~]# vim /etc/yum.repos.d/php.repo
[php]
name = php Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = [root@nginx ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
) 配置php-fpm用户与Nginx的运行用户保持一致 [root@nginx ~]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
[root@nginx ~]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf
) 启动php-fpm,并将其加入开机自启 [root@nginx ~]# systemctl start php-fpm
[root@nginx ~]# systemctl enable php-fpm
) 安装mysql数据库 [root@nginx ~]# mysqladmin password ''
[root@nginx ~]# mysql -uroot -p123

  4.LNMP架构环境部署

django项目:

依赖包
[root@web01 ~]# yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y 1.安装python3
[root@web01 ~]# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
[root@web01 ~]# tar xf Python-3.6.2.tgz
[root@web01 ~]# cd Python-3.6.2/
[root@web01 Python-3.6.2]# ./configure --prefix=/usr/local/
[root@web01 Python-3.6.2]# make && make install
[root@web01 Python-3.6.2]# ./configure && make && make install 2.安装Django框架和uwsgi vim re.txt
asn1crypto==0.24.0
beautifulsoup4==4.6.3
bs4==0.0.1
certifi==2018.4.16
cffi==1.11.5
chardet==3.0.4
Click==7.0
cryptography==2.3.1
Django==1.11.9
Flask==1.0.2
Flask-Cors==3.0.6
gevent==1.3.6
greenlet==0.4.15
idna==2.7
ItsDangerous==1.1.0
Jinja2==2.10
lxml==4.2.6
MarkupSafe==1.0
numpy==1.15.3
Pillow==5.3.0
pycparser==2.18
PyMySQL==0.9.2
pytz==2018.7
requests==2.19.1
selenium==3.141.0
six==1.11.0
urllib3==1.23
virtualenv==16.1.0
Werkzeug==0.14.1
wordcloud==1.5.0 pip3 install -i https://pypi.doubanio.com/simple/ -r re.txt
pip3 install -i https://pypi.doubanio.com/simple/ uwsgi 3.测试uwsgi是否正常,新建 test.py文件,内容如下:
[root@web01 ~]# vim test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello Django"] #然后在终端运行:
uwsgi --http :8001 --wsgi-file test.py & 4.测试django是否正常,运行:
[root@web01 ~]# django-admin.py startproject demosite
[root@web01 ~]# cd demosite
[root@web01 demosite]# python3 manage.py runserver 0.0.0.0:8002
在浏览器内输入:http://127.0.0.1:8002,检查django是否运行正常。 5.配置uwsgi
[root@web01 demosite]# vim /root/demosite/uwsgi.ini
写入
[uwsgi]
socket = 127.0.0.1:9999
master = true
workers = 2
max-requests = 1000
buffer-size = 30000
pidfile = /run/uwsgi.pid
daemonize = /var/log/uwsgi.log uwsgi --ini /root/demosite/uwsgi.ini & 6.配置Nginx
[root@web01 demosite]# vim /etc/nginx/conf.d/py.conf
写入
server {
listen 80;
server_name 10.0.0.100;
client_max_body_size 100M; location / {
index index.html;
include uwsgi_params;
uwsgi_pass 127.0.0.1:9999;
uwsgi_param UWSGI_SCRIPT demosite.wsgi;
uwsgi_param UWSGI_CHDIR /root/demosite;
}
} 重启nginx

day95的更多相关文章

  1. python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)

    昨日内容回顾 1. rest framework serializer(序列化)的简单使用 QuerySet([ obj, obj, obj]) --> JSON格式数据 0. 安装和导入: p ...

  2. day95:flask:SQLAlchemy数据库查询进阶&关联查询

    目录 1.数据库查询-进阶 1.常用的SQLAlchemy查询过滤器 2.常用的SQLAlchemy查询结果的方法 3.filter 4.order_by 5.count 6.limit&of ...

  3. 10.23 crm(3)

    2018-10-23 20:34:30 继续增加新的功能!在代码注释里面有! 越努力,越幸运!永远不要高估自己! 还有明天再加上rbca权限管理系统就完美了! 然后crm做完,再过几天不挂针一切好了也 ...

  4. CRM - 讲师与学生

    一.讲师与学生简介 1.初始化 course_record, study_record.2.学习记录3.录入成绩4.显示成绩 ajax 查询 柱状图展示成绩 highcharts 5.上传作业(os模 ...

  5. CRM - 销售与客户

    一.销售与客户 - 表结构 ---公共客户(公共资源) 1.没有报名 2.3天没有跟进 3.15天没有成单 客户分布表 龙泰 男 yuan 2018-5-1 3天未跟进 龙泰 男 三江 2018-5- ...

  6. Python全栈day9(Python基础)

    Python基础 一,Windows安装Python3.5 下载地址:https://www.python.org/ftp/python/3.5.2/python-3.5.2rc1-amd64.exe ...

  7. CRM——讲师与学生

    一.课程记录和学习记录 1.初始化 course_record, study_record.2.学习记录3.录入成绩4.显示成绩 ajax 查询 柱状图展示成绩 highcharts 5.上传作业(o ...

  8. 老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天)

    点击了解更多Python课程>>> 老男孩Python高级全栈开发工程师三期完整无加密带课件(共104天) 课程大纲 1.这一期比之前的Python培新课程增加了很多干货:Linux ...

  9. 22期老男孩Ptython全栈架构师视频教程

    老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...

随机推荐

  1. Android图片的Base64编码与解码

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较 ...

  2. JMeter 配置元件之随机变量(RandomVariable)介绍

    配置元件之随机变量(Random Variable)介绍   by:授客 QQ:1033553122 测试环境 apache-jmeter-3.2 1. 计数器简介 允许用户创建一个在线程组范围之内都 ...

  3. iOS开发GCD(3)-数据安全

    /* 多个线程可能访问同一块资源,造成数据错乱和数据安全问题 为代码添加同步锁(互斥锁) */ -(void)synchronized{ @synchronized(self){ //需要锁住的代码, ...

  4. aspectj 简单的模拟权限检查、事务、日志记录

    package com.ij34.service; public class Hello { public void he() { System.out.println("执行Hello的h ...

  5. django数据查询之聚合查询和分组查询

    <1> aggregate(*args,**kwargs): 通过对QuerySet进行计算,返回一个聚合值的字典.aggregate()中每一个参数都指定一个包含在字典中的返回值.即在查 ...

  6. C#实现CRC校验

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web; ...

  7. (转)Eclipse中快速输入System.out.println()的快捷键

    https://blog.csdn.net/ShiMengRan107/article/details/73614417 善用 Eclipse 组合键,可以提高输入效率. Step1: Eclipse ...

  8. C++多线程同步技巧(二)--- 事件

    简介 Windows在线程控制方面提供了多种信号处理机制,其中一种便是使用 CreateEvent() 函数创建事件,然后使用信号控制线程运行.其中将事件变为有信号可使用 SetEvent() 函数, ...

  9. June 7. 2018 Week 23rd Thursday

    Half is worse than none at all. 一知半解比一无所知更痛苦. From Westworld. If we go looking for the truth, get th ...

  10. 使用freemarker生成静态页面

    一 说明 需要在spring mvc项目中加入下列包: <dependency> <groupId>org.freemarker</groupId> <art ...