Linux 首先基本包安装(vim啊什么的),源,源优化,项目架构介绍, (LNMuWsgi)Django项目相关软件mysql,redies,python(相关模块)安装配置测试
内容
补充: 查看已启动服务的端口 netstat -tulnp |grep 80(方式1) ss -tulnp|grep 80(方式2) 前期铺垫: 1. Linux要能上网 2. 掌握Linux软件包安装方法 2.1 rpm包管理 软件包格式:名字-版本-平台-rpm 建议:系统基础包,用光盘里的 2.1.1 光盘挂载(为了安装基础包) 方式1 mount /dev/sr0 /mnt(原始设备) 方式2 mount /dev/cdrom /mnt(软连接) cd /mnt ls 2.1.2 安装包(cd 到mnt下的Packages里)(相对路径) rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm (普通安装 有就不安装) rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm (you更新安装,没you普通安装) 2.13 卸载rpm(cd 到mnt下的Packages里)(相对路径) rpm -e vsftpd-3.0.2-22.el7.x86_64 (删除相关文件) 2.1.4 查看是否安装 [root@python3 ~]# rpm -q vsftpd vsftpd-3.0.2-22.el7.x86_64 (已安装) [root@python3 ~]# rpm -q vsftp package vsftp is not installed(没安装) [root@python3 ~]# rpm -qa (查看所有已安装) [root@python3 ~]# rpm -qa |grep vsf(过滤) [root@python3 ~]# which vim(查看命令的路径) /usr/bin/vim [root@python3 ~]# rpm -qf /usr/bin/vim(查看命令来自哪个包) **2.1.5 补充(依赖关系问题:例如安装B之前必须装A) A ----> B ---> C A BC B DF F AC #依赖解决:一起装 rpm -ivh a b c d e f #问题2:具体依赖某个版本的问题: 一个一个找? 2.2 yum包管理器(解决rpm依赖问题版本问题) 2.2.1 使用aliyun yum站点源(可以理解成光盘镜像) Base源(光盘中的软件) cd /etc/yum.repos.d/ (配置文件:告诉yum下载包去哪下载) mv *.repo test wget http://mirrors.aliyun.com/repo/Centos-7.repo EPEL源(扩展源)(安装了Base可以直接 yum安装EPEL源 ) yum install -y epel-release #Extra(外部源) 2.2.2 使用yum安装软件(装) yum install openssl (负责https访问)(不加-y,有提示是否安装) yum install -y openssl-devel 注意:一次性安装多个软件 要-y,openssl*,选择性安装 2.2.3 yum软件包查询及组安装 yum list 所有yum软件包,不管是否安装 yum list |grep vsftpd 查看是否安装,有installed yum grouplist 所有yum软件包组(同类相同功能的归类,放到一个组) yum groupinstall "Development Tools" 安装一个组 2.2.4 卸载软件包 yum remove vsftpd 注意:所有的软件都依赖A,把A卸载了,相当于卸载了很多软件 例如: glibc(系统核心软件包,几乎都依赖它) 2.2.5 优化yum源(本地,局域网) (1)本地镜像yum源(光盘挂载到/mnt下)(/etc/yum.repos.d只能有我们写的本地repo文件,不能有其他的 [初学者,说的不太对]) 进入yum源目录,手动写配置文件(后缀.repo) cd /etc/yum.repos.d vim local.repo 内容 [local] name=localios baseurl=file:///mnt ###来自本地这样写 gpgcheck=0 ###校验软件包的MD5值,我们自己的这里不用校验 yum clean all #重新构建缓存 yum install -y vsftpd #用到了本地源 (2)局域网yum源(ftp) 1.安装ftp软件 yum install -y vsftpd 2.启动ftp服务 [root@python3 ~]# systemctl start vsftpd [root@python3 ~]# 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 2.3 源码包应用 2.3.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.3.2 源码包安装 (1)python3.6源码包安装 ./configure ------> 1 检查环境是否满足安装,定制功能(安装路径,) make 2 编译 生成bytes make install 3 该拷贝到哪到哪,授权 make && make install (2) redis 源码包安装 make 添加环境变量 vim /etc/profile 添加以下一行: export PATH=/opt/redis-3.2.10/src:$PATH 设置后立即生效命令 source /etc/profile 后台启动redis服务 redis-server & (3) 让python链接redis unzip redis-py-master.zip cd redis-py-master python3 setup.py install #让python能连接redis 测试: python3 >>>import redis >>>r = redis.StrictRedis(host='localhost', port=6379) >>>r.set('name', 'oldguo') True >>>r.get('name') 'oldguo' 3. 二进制包(安装mysql5.7.20) 3.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 3.2 编辑环境变量 vim /etc/profile 添加以下一行: export PATH=/opt/mysql/bin:$PATH 生效配置: source /etc/profile 3.3 卸载自带mariadb yum remove mariadb-libs 3.4 生成配置文件(/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 3.5 创建用户和数据目录,并授权 useradd mysql mkdir /opt/mysql/data chown -R mysql.mysql /opt/mysql 3.6 初始化数据 [root@python3 ~]# mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql 2019-01-04T03:58:03.128958Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-01-04T03:58:03.142436Z 0 [ERROR] Could not open file '/var/log/mysql.log' for error logging: Permission denied 2019-01-04T03:58:03.142492Z 0 [ERROR] Aborting 报错解决: 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 3.7 启动mysql服务 cd /opt/mysql/support-files ./mysql.server start #mysql提供的启动脚本 cp mysql.server /etc/init.d/mysqld /etc/init.d/mysqld restart 扩展:使用systemctl 管理mysqld 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 restart mysqld netstat -tulnp |grep 3306 3.8 测试python3链接mysql 创建mysql链接用户 grant all on *.* to root@'10.0.0.%' identified by '123'; create database bbs charset utf8; 测试: 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 4.经典互联网架构项目(LNMP) LNMPT = Linux Nginx MySQL PHP LNMPJ = Linux Nginx MySQL PHP LNMP架构环境部署 1) 使用官方Nginx yum源 [root@nginx ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 #安装Nginx yum install nginx -y 2)启动 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 = 0 [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 3) 配置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 4) 启动php-fpm,并将其加入开机自启 [root@nginx ~]# systemctl start php-fpm [root@nginx ~]# systemctl enable php-fpm 5) 安装mysql数据库 [root@nginx ~]# mysqladmin password '123' [root@nginx ~]# mysql -uroot -p123 2.LNMP架构环境配置 vim /etc/nginx/conf.d/php.conf server { server_name 10.0.0.12; listen 80; root /code/wordpress; index index.php index.html; location ~ \.php$ { root /code/bbs; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }