Python
Centos7中自带的python2,如果要是用python3,就需要自己安装了,因为yum源中没有python3,需要下载包进行源码编译安装。
安装步骤
1、安装python3相关依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
执行这条命令即可,没有报错,表示安装成功
2、添加epel扩展源和安装python-pip
添加epel扩展源
yum -y install epel-release
安装python-pip
yum -y install python-pip
3、安装wget命令
yum -y install wget
4、导入python3源码包
使用wget下载python3源码包,也可以自行去官网下载源码包使用
wget [https://www.python.org/ftp/python/3]
5、解压源码包,并且编译安装
#解压,根据下载版本的不同更改后面的名称
xz -d Python-3.x.xx.tar.xz
tar -xf Python-3.x.xx.tar
\#进入解压后的目录,编译并且安装
cd Python-3.x.xx
./configure prefix=/usr/local/python3
make && make install
这个过程需要点时间,没有报错表示安装完成
安装的时候可能会报了一个错误,ModuleNotFoundError: No module named '_ctypes'
是因为Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。
由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError: No module named ‘_ctypes’"的错误。
解决方法:
yum -y install libffi-devel
执行上面这条命令后重新make && make install,这次没有报错,安装成功。
6、建立软链接
为了能直接使用python3命令,建立软连接,把python3的bin添加到环境变量中使用ls命令为python3建立软链接到/usr/bin下面,我是直接使用python3,因为系统默认python命令是启动python2,如果想使用python命令来启动python3,下面会说明
\
#添加python3的软链接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
\#添加python3 pip的软连接,我这里直接命名为pip3和python2的区别
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
添加python3路径d到环境bi变量
export PATH=$PATH:/usr/local/python3/bin
上面这条命令是临时添加,要想永久添加需要在配置文件中添加。
vim /etc/profile
在文件最后添加 export PATH=$PATH:/usr/local/python3/bin
重新加载配置文件
source /etc/profile
查看配置文件是否添加成功
echo $PATH
出现这个表示配置文件添加成功
/usr/local/python3/bin
优化展示
python命令原来指向python2,改成指向python3,让python2指向的是python2.7
#将原来的链接备份
mv /usr/bin/python /usr/bin/python.bak
因为系统默认python2 和 python都是指向python2.7,所以我们改变python命令的指向不会影响Python2的使用
\#添加python3的软链接
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
要知道执行到这里,python命令启动的是python3.7,python2命令才是启动python2.7
因为yum命令中使用了python2,所以需要改变一些配置,不然yum会无法使用
vim /usr/bin/yum
把#! /usr/bin/python修改为#! /usr/bin/python2
vim /usr/libexec/urlgrabber-ext-down
把#! /usr/bin/python 修改为#! /usr/bin/python2
MySQL
安装部署
1、Centos7默认安装 mariadb ,为防止和MySQL冲突,需要先卸载。
(1)查看mariadb的版本信息。
rpm -qa | grep mariadb
结果显示为(mariadb版本会有不同):mariadb-libs-5.5.65-2.el7.x86_64
(2)卸载(注意mariadb版本)。
sudo rpm -e mariadb-libs-5.5.65-2.el7.x86_64 --nodeps
2、下载MySQL安装包
(1)如果不存在 software 和 mysql 目录,就新建
mkdir -p /usr/software/mysql/
(2)切换到 /usr/software/mysql/
cd /usr/software/mysql/
(3)任选一种方式下载安装包
wget方式下载:
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
curl方式下载:
curl -O https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
3、解压安装包
tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
4、安装MySQL组件
依此安装5个MySQL软件组件,注意顺序千万不能乱!
rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm
5、查看mysql各组件安装情况
rpm -qa|grep mysql
MySQL数据库配置
MySQL刚安装是没有密码的,需要初始化一个临时密码,再去修改。
1、生成临时密码
sudo mysqld --initialize
2、查看临时密码
(1)方法1查看临时密码:
grep 'temporary password' /var/log/mysqld.log
(2)方法2查看临时密码:
tail /var/log/mysqld.log
3、更改 /var/lib/mysql 目录权限
sudo chown -R mysql:mysql /var/lib/mysql
4、启动 MySQL 并查看启动情况
(1)设置开机启动 MySQL:
systemctl enable mysqld
(2-1)启动 MySQL:
systemctl start mysqld
(2-2)停止 MySQL:
systemctl stop mysqld
(2-3)查看 MySQL 运行状态:
systemctl status mysqld
(3)查看启动情况:
ps -aux|grep mysql
5、试试连接 MySQL 并输入临时密码
mysql -uroot -p
6、修改root用户密码(例如 123456 等)
set password = password('123456');
Nginx
安装
1、将Nginx源码压缩包上传机器
2、解压文件 nginx-1.xx.x.tar.gz
1)检查是否存在 nginx(有的话需要卸载掉自带的)
whereis nginx
rm -rf ...
2)找到压缩包并解压
tar -zxvf nginx-1.xx.x.tar.gz
3、配置Nginx
./configure #先执行
make #执行完./configure之后,敲make回车
make install #确认是否安装成功
4、启动Nginx
- 一般是安装在Linux虚拟机上的
/usr/local/nginx
目录下,可以通过查找
whereis nginx #查找nginx文件
cd /usr/local/nginx #进入该文件
启动sbin/
目录下的 nginx 文件
cd ./sbin #进入sbin文件
./nginx #启动nginx程序
5、拓展
常用命令
修改配置文件后,重新加载修改的文件,并在防火墙中开启自定义端口
:wq # 保存并退出
./nginx -s reload #在刚刚的./sbin目录下重新加载该文件
firewall-cmd --zone=public --add-port=81/tcp --permanent # 开启防火墙端口81
systemctl restart firewalld.service #重启防火墙
./nginx -s stop #停止nginx
./nginx -s quit #安全退出
./nginx -s reload #修改了文件之后重新加载该程序文件
ps aux|grep nginx #查看nginx进程
服务自启动
- 编写服务脚本,如script.sh
nohup command > output.log &
- 执行权限
chmod +x /etc/init.d/script
- 修改脚本文件参数
# chkconfig: 2345 10 90
# description: Start and Stop script_name
- 增加系统服务
chkconfig --add script_name
chkconfig --list script_name
- 测试
service script_namestart