一.Linux要能上网
二.掌握Linux软件包安装方法
-
rpm -redhat系列,软件管理器
-
yum -解决rpm安装方式的不足
-
源码包安装
-
二进制包,解压完成即可使用
三.rpm包管理
光盘挂载
mount /dev/cdrom /mnt
cd /mnt
ls
cd Packages 软件包位于mnt目录下的Packages
安装rpm包
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm 直接安装软件
rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm 安装并且更新
卸载rpm
rpm -e vsftpd-3.0.2-22.el7.x86_64 只能在软件包完整未损坏状态下进行卸载
rpm包的查询
rpm -q vsftpd 查看指定软件的状态
rpm -qa |grep vsf 只查看软件的详细信息
which vim 查看指定命令的具体路径
rpm -qf /usr/bin/vim 查看指定路径的安装软件包
rpm -ql vsftpd 查看指定软件安装中产生的所有文件
软件的依赖问题
安装软件A时,A依赖于B,就必须要先安装B
存在相互依赖的冲突问题 a依赖于b b依赖于c c又依赖于a
- rpm -ivh a b c d - 可以同时将多个软件包共同安装,来解决相互依赖的冲突问题
四.yum 使用(依赖于网络的软件源)
1,使用阿里云的yum源 https://opsx.alibaba.com/mirror
- Base源 :本质是光盘中的一些软件
- EPEL源 :基于redhat的扩展源,即光盘中不自带的软件
- Extra源 :外部源
2,安装Base源
cd /etc/yum.repos.d 默认放置yum源的位置
注意:内置国外的一些yum源
mkdir official 新建一个文件夹
mv *.repo official 将原始的yum源放置在自己的指定文件夹内
wget http://mirrors.aliyun.com/repo/Centos-7.repo 配置阿里云的Base源 (还能使用清华源、网易源等)
3 安装EPEL源
yum install -y epel-release 必须先安装Base源
4. 使用Yum安装软件
yum install openssl 过程中有提醒
yum install openssl-devel -y 使用-y使安装无提醒
yum install openssl* 安装所有与openssl相关的所有软件
5. 软件信息查询
yum list 查看所有yum源的软件包
yum list |grep python 查看指定软件是否存在yum源中
yum grouplist 查看yum源的软件包组
yum groupinstall "Development tools" 安装指定软件组,注意引号的使用
6.软件的卸载(危险)- yum remove 指定软件
7.优化yum源
7.1 配置本地镜像yum源(光盘挂在到/mnt) - 依赖于本地光盘,加快软件安装的速度
cd /etc/yum.repos.d
mkdir ali
mv *.repo ali
vim local.repo
[local] 标签名
name=localios 随意取名
baseurl=file:///mnt
file://表示告诉yum源地址来自于本地,注意存在三个斜杠,地址为光盘挂载地址 gpgcheck=0 不用进行校验
yum clean all 防止yum直接读取缓存
yum install vsftpd
7.2 配置局域网yum源 - 依赖于光盘(光盘挂在到/mnt)
yum install -y vsftpd 安装ftp软件
systemctl start vsftpd 启动ftp软件服务(centos7命令)
systemctl enable vsftpd 开机自启(centos7命令)
将光盘数据拷贝到ftp的站点目录(/var/ftp/pub)下
mkdir /var/ftp/pub/centos7 在ftp站点目录下创建目录
cp -a /mnt/* /var/ftp/pub/centos7 将光盘挂载的目录内所有文件都复制到指点目录下的指定目录内
cd /etc/yum.repos.d
rm -rf local.repo 删除原来的本地源
vim ftp.repo 创建表示来自于ftp的yum源,生成ftp站点yum源配置文件
[ftp]
name=centos7
baseurl=ftp://10.0.0.100/pub/centos7
gpgcheck=0
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y 安装软件测试
yum clean all 清缓存
五.源码包安装
1. 常见压缩包及解压方式
– .zip
unzip xxx.zip 解压,需要yum安装 yum install -y 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.python3.6的源码包安装
cd /opt
将本地.tar.gz格式源码包上传到服务器 - secureCRT使用rz上传
安装相关依赖
yum install -y gcc*
yum install -y openssl*
tar xf Python-3.6.1.tar.xz
cd Python-3.6.1
./configure 检查linux当前环境是否满足软件包安装,并进行一些配置,后续参数可以指定选择功能的安装与否
ls
make
make install
或者:make && make install
3.redis 源码包安装
cd /opt
rz 上传文件
tar xf redis-3.2.10.tar.gz 解压源码包
cd redis-3.2.10 进入目录
make 执行安装
vim /etc/profile 配置环境变量(最后面添加)
export PATH=/opt/redis-3.2.10/src:$PATH
source /etc/profile 生效配置文件
redis-server & 开启redis服务
4.安装redis的python包,让python可以连接redis
cd /opt
rz 上传文件
unzip redis-py-master.zip 解压
cd redis-py-master 切换到目录下面
python3 setup.py install
5.手工验证python连接redis
python3 进入python交互模式
import redis 尝试导入包
r = redis.StrictRedis(host='localhost', port=6379)
r.set('name', 'test')
r.get('name')
六.二进制包安装
1.MySQL包的安装(5.7.20)
cd /opt
rz 上传文件
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 设置软连接
vim /etc/profile 编辑环境变量(最后一行添加这句)
export PATH=/opt/mysql/bin:$PATH
source /etc/profile 生效环境变量
yum remove mariadb-libs 卸载自带mariadb的库
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
2.创建用户和数据目录并授权
useradd mysql
mkdir /opt/mysql/data
chown -R mysql.mysql /opt/mysql
3.初始化数据
mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql 初始化命令
解决以上报错问题:
touch /var/log/mysql.log
chown -R mysql.mysql /var/log/mysql.log
4.启动服务器
cd /opt/mysql/support-files
./mysql.server start
cp mysql.server /etc/init.d/mysqld
上步操作之后,以后的启动、关闭、重启操作
/etc/init.d/mysqld restart
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
netstat -tulnp |grep 3306 查看服务器端口启动状态
5.systemctl 管理mysql(centos7)
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 daemon-reload
systemctl start mysqld
6.代码连接测试
6.1安装pymysql模块
- pip3 install pymysql
6.2 手动测试代码
建立数据库
mysql 进入数据库
grant all on . to root@‘10.0.0.%’ identified by ‘123’; 创建数据库的用户名密码 root@当前ip,密码为123 (本地)
grant all on . to root@‘172.27.0.0/255.255.240.0’ identified by ‘123’; 同上,云端ssh,mysql操作,内网ip/子网掩码
create database bbs charset utf8; 创建bbs库 (指定编码格式,要和导入文件的编码格式一致)
vim testmysql.py 编写脚本文件
#!/usr/bin/python3
import pymysql
db = pymysql.connect("10.0.0.5","root","123","bbs" )
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print ("Database version : %s " % data)
db.close()
python3 testmysql.py
七 网站架构方式
- LAMP
- LNMP
- LNMPT = Linux+Nginx+MySQL+PHP+Tomcat
- LNMPJ = Linux +Nginx+MySQL+PHP+Jboss
- LNMuWSGI (python架构环境)
八.LNMP
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
CentOS-6.5下配置替换一句 :baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
2.安装并启动Nginx
yum install nginx -y
systemctl start nginx 开启nginx服务(centos6.5: service nginx start)
systemctl enable nginx 开机自启(centos6.5: chkconfig --add nginx)
九.搭建python项目环境
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel zlib zlib-devel -y 依赖包安装
安装Django框架和uwsgi等模块(单步执行)
pip3 install --upgrade
pip pip3 install uwsgi
pip3 install -i https://pypi.doubanio.com/simple/ uwsgi
pip3 install django
pip3 install pymysql
pip3 install pyredis
pip3 install other
pip3 install bs4
上述安装模块的优化方式(生成脚本优化文件)
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
uWSGI == 2.0.17.1
pip3 install -i https://pypi.doubanio.com/simple/ -r re.txt
安装 uwsgi 的报错信息原因,用pip3执行install uwsgi命令
pip3 install uwsgi
pip3 install -i https://pypi.doubanio.com/simple/ uwsgi
1.uwsgi的配置文件
vim /root/demosite/uwsgi.ini 进入demosite项目中进行配置
[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 & 在后台执行项目目录下/root/demosite的uwsgi.ini文件
2 Nginx配置文件
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 uwsgi_param UWSGI_CHDIR /root/demosite; 使用项目目录的路径/root/demosite
}
}
重启nginx
systemctl restart nginx
3.测试uwsgi的正常使用
cd /opt
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 & 后台在8001端口执行test.py文件,注意文件的路径
4.测试Django的正常使用
django-admin.py startproject demosite 生成一个空项目
cd demosite 进入项目
python3 manage.py runserver 0.0.0.0:8002 执行项目文件,部署在本地8002端口
在浏览器内输入:http://127.0.0.1:8002,检查django是否运行正常。
cd到项目里(两次cd,到核心文件里面)
vim setting.py
ALLOWED_HOSTS=["*"]
杀掉相关进程重启
ps -ef|grep python3
kill -9 进程号
重启项目
python3 manage.py runserver 0.0.0.0:8002 执行项目文件,部署在本地8002端口
Nginx配置文件后启动 + uwsgi配置文件启动
结果:输入指定ip,跳转Nginx,Nginx根据配置文件,跳转uwsgi,uwsgi指向Django项目