一、Linux软件包安装
1.安装程序的方式
- 软件包管理器:如RPM。
- 软件包管理器的前端工具:如YUM。
- 源码包应用。
- 通用二进制格式:直接解压压缩文件,就可以使用。但一定要注意安装平台。
2.RPM
RPM早期被称为RedHat Package Manager,但由于目前RPM非常流行,且已经成为Linux工业标准。所以RPM现在又被称为RPM is Package Manager。
RPM管理支持事务机制。增强了程序安装卸载的管理。
RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理。
但是RPM无法解决软件包的依赖关系。因为Linux中的程序大多是小程序,而程序与程序之间存在非常复杂的依赖关系。
光盘挂载
# 只要挂载好光盘,安装软件会显的特别方便
# 1.把/dev/cdrom挂载到/mnt
mount /dev/cdrom /mnt
# 进入/mnt查看,你会发现有一个Packages的目录,里面有所有下载安装的包
cd /mnt
ls
使用
# 安装rpm包
rpm -ivh 包名
# 更新rpm包
rpm -Uvh 包名
# 卸载rpm
rpm -e 包名
# rpm包的查询
rpm -q 包名
# 查询过滤
rpm -qa |grep vsf
# 查询文件所在路径
which vim
# 查询某文件是由哪个rpm包安装生成的
rpm -qf /usr/bin/vim
3.yum
YUM是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
YUM使用Python语言写成。YUM客户端基于RPM包进行管理,可以通过HTTP服务器下载、FTP服务器下载、本地软件池的等方式获得软件包,可以从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系。
YUM在安装RPM时,会从服务器下载相应包,且缓存在本地。
使用YUM进行RPM包的管理,非常简单方便。
更改yum站点源
# 使用aliyun yum站点源
# BASE源:一些基本的软件包
# 1.进入yum的源
cd /etc/yum.repos.d/
# 2.该文件夹里有安装系统是自动从官方下载的源,可以不要,我们把它挪走
mv *.repo /tmp
# 3.获取阿里的源
wget http://mirrors.aliyun.com/repo/Centos-7.repo
# EPEL源:扩展的软件包
yum install -y epel-release
操作
# yum安装软件
# -y:下载软件后会遇到选项:是否安装,有了-y会默认安装
# openssl openssl-devel :这两个一定要先安装
yum install -y openssl openssl-devel
# 软件包查询
yum list |grep vsftpd
# 软件包组查询
yum grouplist
# 软件包组安装
yum groupinstall "Development Tools"
# 卸载软件包
yum remove
优化yum源
# 本地镜像yum源(光盘挂载到/mnt下)
# 挂在以后,下载yum源会从本地光盘找
# 1.进入yum的源,必须把/etc/yum.repos.d/里的.repo结尾的文件挪走,linux先看到哪个配置,就用哪个配置文件
cd /etc/yum.repos.d/
# 2.创建一个yum的配置文件必须是.repo结尾
vim local.repo
# 3.在编辑模式中
[local]
name=localios
baseurl=file:///mnt # 挂载到本地文件/mnt
gpgcheck=0
# 4.清空yum的缓存
yum clean all
# 局域网yum源(ftp)
# 本地镜像yum源必须随身携带关盘,比较麻烦,所以搭建局域网yum源,可以通过局域网下载软件
# 1.安装ftp软件
yum install -y vsftpd
# 2.启动ftp服务,并设置开机自启动
systemctl start vsftpd
systemctl enable vsftpd
# 3.创建站点目录,并将光盘软件拷贝其中
# 现在就可以通过ftp://IP地址/pub/centos7/访问
cp -a /mnt/* /var/ftp/pub/centos7
# 4.如果你的电脑想要通过局域网下载软件,就需要配置repo文件
# 具体步骤和本地镜像yum源差不多
# 唯一不同的是配置
[ftp]
name=centos7
baseurl=ftp://10.0.0.100/pub/centos7
gpgcheck=0
4.源码包应用(python3.6、redis)
解压
# .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
安装
# 把压缩文件放到/opt里
cd /opt
# mysql 源码包
# 1
cmake
# 2.编译
make
make install
# 或 make && make install
# python3.6源码包安装
# 解压后进入文件
# 1.定制功能
./configure
# 2.编译
make
make install
# 或 make && make install
# redis 源码包安装
# 解压后进入文件
# 1.编译
make
# 2.修改环境变量
vim /etc/profile
# 添加以下一行:
export PATH=/opt/redis-3.2.10/src:$PATH
# 3.生效配置
source /etc/profile
python链接redis
# 解压后进入文件
cd redis-py-master
# 用python3运行
python3 setup.py install
# 测试
#运行python3
[root@xcq redis-py-master]# python3
>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379)
>>> r.set('name', 'oldguo')
True
>>> r.get('name')
b'oldguo'
5.二进制包(mysql5.7.20)
安装及配置mysql
# 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
# 3.生效配置:
source /etc/profile
# 4.卸载自带mariadb
yum remove mariadb-libs
# 5.生成配置文件(/etc/my.cnf)
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
# 6.创建用户和数据目录,并授权
# 对mysql操作时,默认要有一个mysql用户
useradd mysql
mkdir /opt/mysql/data
chown -R mysql.mysql /opt/mysql
# 7.初始化数据
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
启动mysql
# 1.进入目录
cd /opt/mysql/support-files
# 2.执行脚本
./mysql.server start
# 为了启动方便,把mysql.serve,移动到/etc/init.d/mysqld
# 这样就不用每次要进入目录在启动
cp mysql.server /etc/init.d/mysqld
# 以后用这条命令启动mysql
/etc/init.d/mysqld start
# 扩展:使用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
# 配置好之后,以后就用systemctl来启动mysql
systemctl start mysqld
python3链接mysql
# 创建mysql链接用户
[root@xcq redis-py-master]# mysql
mysql> grant all on *.* to root@'10.0.0.%' identified by '123';
Query OK, 0 rows affected, 1 warning (0.13 sec)
mysql> create database bbs charset utf8;
# python代码测试
pip3 install pymysql
vim testmysql.py
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)
LNMP = Linux Nginx MySQL PHP
1.Nginx 安装
# 1.新建官方Nginx yum源的repo配置文件
vim /etc/yum.repos.d/nginx.repo
# 配置官方Nginx yum源
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
# 2.下载安装
yum install nginx -y
# 3.启动Nginx,并将Nginx加入开机自启
systemctl start nginx
systemctl enable nginx
# 之后就可以通过http://10.0.0.100(IP地址)访问页面了
2.Django安装
# 1.安装依赖包
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y
# 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
3.uwsgi安装
# uwsgi可以通过端口访问Django项目了
# 1.安装
pip3 install -i https://pypi.doubanio.com/simple/ uwsgi
# 2.测试uwsgi是否正常
# 新建test.py文件
vim test.py
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello Django"]
# 运行
# & :在后台运行
# 我们就可以在浏览器通过10.0.0.100(IP地址):8001访问
uwsgi --http :8001 --wsgi-file test.py &
# 3.测试django是否正常,运行:
# 新建django项目demosite
django-admin.py startproject demosite
# 进入项目demosite根目录
cd demosite
# 运行项目demosite
python3 manage.py runserver 0.0.0.0:8002
# 在浏览器内输入:http://10.0.0.100:8002,检查django是否运行正常。
# 注:测试Django项目时,要在settings.py中配置ALLOWED_HOST=['*'],放开所有地址都可以访问
4.nginx+uwsgi配置django空项目
# 为什么要nginx+uwsgi一起来配置,因为
# 单独只用uwsgi的话会显示出端口号,如果加上nginx就不会显示出端口
# 能隐藏自己的真实端口,对于用户来说只是访问了域名而已
# 1.配置uwsgi
# 在Django项目根目录创建uwsgi.ini
vim /root/demosite/uwsgi.ini
# 配置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
# 以Django项目里的uwsgi.ini的配置来启动uwsgi
uwsgi --ini /root/demosite/uwsgi.ini &
# 2.配置Nginx
vim /etc/nginx/conf.d/py.conf
# 配置
server {
# 监听来自80端口的请求
listen 80;
# IP地址
server_name 10.0.0.100;
client_max_body_size 100M;
location / {
index index.html;
include uwsgi_params;
# 同uwsgi内容,通过这个去访问uwsgi
uwsgi_pass 127.0.0.1:9999;
# Django项目demosite的wsgi
uwsgi_param UWSGI_SCRIPT demosite.wsgi;
# 要配置Django项目目录
uwsgi_param UWSGI_CHDIR /root/demosite;
}
}
# 重启nginx
systemctl restart nginx
# 配置好后就可以通过http://10.0.0.100访问Django