LNMP安装201812012237
发表这篇文章最初的意愿是想做个最新版的zabbix使用,后来看了下好多“软件”都升级了(如nginx、mysql等),就想干脆做个最新版本的LNMP环境得了,再单独做zabbix的最新版本省得以后升级
好了,废话不多说,上步骤.......
cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
uname -r
3.10.0-693.el7.x86_64
master IP 192.168.1.122
所有软件包位置: /home/LNMP
所有软件安装位置: /usr/loca/
声明:该教程是在虚拟机下运行的,编译mysql时的机器配置是4G内存,双核。
编译完mysql后正常使用时的配置是448M内存,单核CPU,仅供测试使用
关闭防火墙:
setenforce 0 #临时
systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config
SELINUX=disabled
安装依赖:
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake
添加mysql禁止登陆的用户
groupadd mysql && useradd -r -g mysql -s /sbin/nologin mysql
mysql目录规划
mysql安装目录:/usr/local/mysql
mysql数据目录:/var/lib/mysql
mysql日志目录:/var/log/mysql
mkdir /usr/local/mysql && chown -R mysql.mysql /usr/local/mysql
mkdir /var/lib/mysql && chown -R mysql.mysql /var/lib/mysql
mkdir /var/log/mysql && chown -R mysql.mysql /var/log/mysql
下载包,解压MySQL并编译安装:
注:mysql-boost-5.7.20.tar.gz此版本带有boost
cd /home/LNMP
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz
tar -zxvf mysql-boost-5.7.24.tar.gz
cd mysql-5.7.24
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/home/LNMP/mysql-5.7.24/boost \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EMBEDDED_SERVER=1
make -j 4 && make install
(此过程比较长)
配置my.cnf文件 (手动添加并编辑该文件)
vim /etc/my.cnf
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
port=3306
user=mysql
datadir=/var/lib/mysql/data
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysql.err
pid-file=/var/run/mysql/mysql.pid
character-set-server=utf8
server-id=1
slow_query_log=ON
long_query_time=2
slow_query_log_file=/var/log/mysql/query_log
log_queries_not_using_indexes=ON
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci
explicit_defaults_for_timestamp=true
[mysqld_safe]
log-error=/var/log/mysql/mysql.err
pid-file=/var/run/mysql/mysql.pid
touch /var/log/mysql/{mysql.err,query_log}
chown -R mysql.mysql /var/log/mysql/
chown -R mysql.mysql /usr/local/mysql/
mkdir /var/run/mysql
chown -R mysql.mysql /var/run/mysql
mkdir -p /var/lib/mysql/data
chown -R mysql.mysql /var/lib/mysql
初始化数据库:
cd /usr/local/mysql/bin/ #mysql安装的位置
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql/data
######################################################################################
坑1:[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
解决1:在/etc/my.cnf中的mysqld的段中添加explicit_defaults_for_timestamp=true
再执行上面的初始化命令即可
######################################################################################
./mysql_ssl_rsa_setup #生成秘钥类似的东西,具体是什么还没去细究。该步按需操作
启动数据库:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
启动mysql:
/etc/init.d/mysqld start
######################################################################################
坑1:
Starting MySQL. ERROR! The server quit without updating PID file (/var/run/mysql/mysql.pid).
解决:/etc/init.d/mysqld status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
rm -rf /var/lib/mysql/data/* #删除数据目录下的所有
chown mysql.mysql /var/lib/mysql/ #修改数据目录的权限
mkdir /var/run/mysql
chown -R mysql.mysql /var/run/mysql
/etc/init.d/mysqld start #还有一种可能就是要重新初始化数据库
######################################################################################
修改数据库mysql用户的密码:
vim /etc/my.cnf
skip-grant-tables #手动添加该行
/etc/init.d/mysqld restart
登录数据库:
/usr/local/mysql/bin/mysql #此时登录数据库是将不要密码,直接按回车即可
修改密码:
use mysql;
update mysql.user set authentication_string=password('123456') where user='root';
查看:
select user,host,authentication_string from mysql.user;
刷新:
flush privileges;
修改完毕后exit退出mysql,并再次打开/etc/my.cnf把skip-grant-tables行删除后重启下mysql后即可登录
修改环境变量
vim /etc/profile
PATH=/usr/local/mysql/bin/:$PATH
export PATH
数据库备份:
mysqldump --defaults-extra-file=/etc/my.cnf database > /data/mysql_bak/bak_test.sql //备份导出数据库
mysql --defaults-extra-file=/etc/my.cnf database < test_db.sql //导入数据库
问题总结:
mysql -uroot -p123456 -e"grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';"
提示:mysql: [Warning] Using a password on the command line interface can be insecure.
解释:mysql5.7不能-p直接输入密码,把-p后面的密码去掉其他不变即可
nginx安装
参考地址:https://www.cnblogs.com/zhang-shijie/p/5294162.html
下载地址:http://nginx.org/download/
cd /home/LNMP/
groupadd nginx && useradd -r -g nginx -s /sbin/nologin nginx
yum -y install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.15.7.tar.gz
tar -zxvf nginx-1.15.7.tar.gz
cd nginx-1.15.7
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock --group=nginx --with-http_ssl_module \
--with-http_stub_status_module --with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ --user=nginx \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre
make && make install
启动前的修改:
vim /usr/local/nginx/conf/nginx.conf
user nginx nginx; #修改启动关闭ngixn的用户
error_log /var/log/nginx/error.log; #修改错误日志位置
listen 8001; #修改监听端口,避免和其他发生冲突
mkdir -p /var/tmp/nginx/client/
mkdir /var/run/nginx #nginx.pid的存放位置
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx/nginx -s reload #不停止服务重读配置文件
/usr/local/nginx/sbin/nginx/nginx -s stop #停止服务
ln -s /usr/local/nginx/sbin/nginx /usr/bin/ #做个软连接
########################################################################
支持的信号:
kill -QUIT 13337 #平缓关闭Nginx,即不再接受新的请求,但是等当前请求处理完毕后再关闭Nginx。
kill -TERM 21665 #快速停止Nginx服务
kill -HUP 21703 #使用新的配置文件启动进程然后平缓停止原有的nginx进程,即平滑重启。
kill -USR1 21703 #重新打开配置文件,用于nginx 日志切割
########################################################################
日期切割的脚本:
#!/bin/bash
PID=`cat /var/run/nginx/nginx.pid`
mv /var/log/nginx/access.log /var/log/nginx/`date +%Y_%m_%d:%H:%M:%S`.access.log
kill -USR1 $PID
[root@Server1 nginx]# kill -USR2 21703 #使用新版本的nginx文件启动服务,然后在平缓停止原有的nginx服务,即平滑升级。
[root@Server1 nginx]# kill -WINCH 21703 #平滑停止nginx的工作进程,用于nginx平滑升级。
########################################################################
PHP安装:
cd /home/LNMP
安装依赖:
yum -y install libxml2 libxml2-devel curl-devel libjpeg-devel libpng-devel freetype-devel \
libxslt libxslt-devel cyrus-sasl-plain cyrus-sasl cyrus-sasl-devel cyrus-sasl-lib \
m4 autoconf gcc gcc-c++ openssl openssl-devel pcre pcre-devel zlib zlib-devel wget net-tools zip
创建组群:
groupadd php-fpm && useradd -s /sbin/nologin -g php-fpm -M php-fpm
下载包:
wget http://cn2.php.net/distributions/php-7.2.12.tar.gz
tar -zxvf php-7.2.12.tar.gz
cd php-7.2.12
./configure --prefix=/usr/local/php7.2 \
--with-config-file-path=/usr/local/php7.2/etc \
--with-curl --with-gd --with-gettext --with-iconv-dir \
--with-kerberos --with-libdir=lib64 --with-libxml-dir=/usr/ \
--with-openssl --with-pcre-regex --with-pdo-sqlite \
--with-pear --with-xmlrpc --with-xsl --with-zlib \
--enable-fpm --enable-bcmath --enable-libxml \
--enable-inline-optimization --enable-mbregex \
--enable-mbstring --enable-opcache --enable-pcntl \
--enable-shmop --enable-soap --enable-sockets \
--enable-sysvsem --enable-xml --enable-zip \
--enable-static --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
--with-freetype-dir --with-jpeg-dir --with-png-dir \
--disable-debug --disable-fileinfo --enable-fpm
注: --with-libxml-dir=/usr 这个参数在centos7.5上会报 collect2: error: ld returned 1 exit status make: *** [sapi/cli/php] 错误 1 加上/usr即可
make && make install
/usr/local/php7.2/bin/php -v #查看php版本,也是查看安装是否安装成功
cd /usr/local/php7.2/etc/
cp /home/LNMP/php-7.2.12/php.ini-production php.ini
cp php-fpm.conf.default php-fpm.conf
配置php-fpm
cd php-fpm.d/
[root@localhost php-fpm.d]# pwd
/usr/local/php7.2/etc/php-fpm.d
cp www.conf.default www.conf
find / -name php-fpm
/home/LNMP/php-7.2.12/sapi/fpm/php-fpm
/var/spool/mail/php-fpm
/usr/local/php7.2/sbin/php-fpm
cp /home/LNMP/php-7.2.12/sapi/fpm/php-fpm /etc/init.d/
chmod +x /etc/init.d/php-fpm
启动php:
/etc/init.d/php-fpm
查看php-fpm启动状况
ps -ef | grep php-fpm
修改php.ini相关参数
vim /usr/local/php7.2/etc/php.ini
expose_php = On #防止Web服务器签名,防止在http头里暴露X-Powered-By:PHP/7.2这样的敏感信息
short_open_tag = On #启用php短标签
max_execution_time = 120 #PHP程序处理请求的最大时间,单位“秒”
max_input_time = 60 #此变量可以以“秒”为单位对通过POST、GET以及PUT方式接收数据时间进行限制
memory_limit = 128M #允许使用内存的最大值限制。设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存
file_uploads = On #确定服务器上的PHP脚本是否可以接受HTTP文件上传
post_max_size = 8M #限制通过POST方法可以接受的信息最大量
upload_max_filesize = 7M #限制PHP处理上传文件的最大值,此值必须小于post_max_size值
date.timezone = Asia/Shanghai #设置PHP执行的默认时间的时区规则
mbstring.func_overload=2
常用的substr()会被自动替换为 mb_substr()
0:代表不重载任何函数(默认值)
1:代表重载mail()函数
2:代表重载str系列字符串处理函数
4:代表重载ereg系列正则处理函数
7:代表重载所有以上提及的函数
修改www.conf相关参数
vim /usr/local/php7.2/etc/php-fpm.d/www.conf
user = nginx #启动进程的帐户
group = nginx #启动进程的组
listen = 127.0.0.1:9000 #该项必须开启
pm = dynamic #默认即可
pm.max_children = 180 #子进程最大数
pm.start_servers = 50 #启动时的进程数
pm.min_spare_servers = 50 #前提是pm = dynamic,保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers = 180 #前提是pm = dynamic,保证空闲进程数最大值,如果空闲进程大于此值,此进行清理
pm.max_requests = 500 #设置每个子进程重生之前服务的请求数,如为0则一直接受请求
request_terminate_timeout = 180 #设置单个请求的超时中止时间
###############################################################################
FPM状态页面的网址. 如果没有设置, 则无法访问状态页面. 默认值: none. munin监控会使用到
;pm.status_path = /status
FPM监控页面的ping网址. 如果没有设置, 则无法访问ping页面. 该页面用于外部检测FPM是否存活并且可以响应请求. 请注意必须以斜线开头 (/)。
;ping.path = /ping
用于定义ping请求的返回相应. 返回为 HTTP 200 的 text/plain 格式文本. 默认值: pong.
;ping.response = pong
设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用.
设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项
request_terminate_timeout = 180
当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中,0为关闭
;request_slowlog_timeout = 10
慢请求的记录日志,配合request_slowlog_timeout使用
;slowlog = log/$pool.log.slow
设置文件打开描述符的rlimit限制,默认值: 系统定义值默认可打开句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改
;rlimit_files = 1024
设置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整数. 默认值: 系统定义值
;rlimit_core = 0
启动时的Chroot目录. 所定义的目录需要是绝对路径. 如果没有设置, 则chroot不被使用
;chroot =
设置启动目录,启动时会自动Chdir到该目录. 所定义的目录需要是绝对路径. 默认值: 当前目录,或者/目录
;chdir = /var/www
重定向运行过程中的stdout和stderr到主要的错误日志文件中. 如果没有设置, stdout 和 stderr 将会根据FastCGI的规则被重定向到 /dev/null . 默认值: 空
;catch_workers_output = yes
###############################################################################
配置php-fpm.conf
vim /usr/local/php7.2/etc/php-fpm.conf
pid = /usr/local/php7.2/run/php-fpm.pid
;error_log = log/php-fpm.log #按需打开,这里未开启
;log_level = notice #错误级别,alert(必须立即处理)error(错误情况)warning(警告情况)notice(一般重要信息)debug(调试信)
;emergency_restart_interval = 0
#在emergency_restart_interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过这个数,php-fpm就会重启。一般保持默认值
启动php-fpm:
/usr/local/php7.2/sbin/php-fpm
添加开机启动php-fpm
echo "/usr/local/php7.2/sbin/php-fpm">>/etc/rc.local
修改nginx解析php页面:
vim /usr/local/nginx/conf/nginx.conf
....
.....
location / {
root html;
index index.php index.html index.htm;
}
....
....
location ~ \.php$ {
root html; #指定php的根目录
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
浏览器访问: IP + Port/index.php
zabbix安装(接上面的环境)
#如果直接在以下命令中加上密码会输出一条类似错误的信息,mysql5.7的一种机制
mysql -uroot -p -e"create database zabbix character set utf8;"
mysql -uroot -p -e"grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';"
mysql -uroot -p -e"grant all privileges on zabbix.* to 'zabbix'@'%' identified by '123456';"
mysql -uroot -p -e"grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by '123456';"
/etc/init.d/mysqld restart
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
导入数据库:
zcat /usr/share/doc/zabbix-server-mysql-4.0.2/create.sql.gz |mysql -uroot -p zabbix
为Zabbix服务器配置数据库:
vim /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log #保持默认
LogFileSize=0 #保持默认
PidFile=/var/run/zabbix/zabbix_server.pid #保持默认
SocketDir=/var/run/zabbix #保持默认
DBHost=localhost #待测试改变成IP形式
DBName=zabbix #保持默认
DBUser=zabbix #保持默认
DBPassword=123456 #登录数据库的zabbix用户的密码
启动zabbix:
groupadd apache && useradd -s /sbin/nologin -g php-fpm -M apache
service zabbix-server start
service zabbix-agent start
systemctl enable zabbix-server
systemctl enable zabbix-agent
chkconfig --level 2345 zabbix-server on
chkconfig --level 2345 zabbix-agent on
Zabbix前端配置
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai #所有都不用改,仅取消该行注释并修改为亚洲时区
修改httpd的端口:
vim /etc/httpd/conf/httpd.conf
Listen 8002
启动httpd:service httpd start
访问zabbix:http://ip:8002/zabbix
账/密:Admin/Zabbix
zabbix配置版块可以参照我的上几篇文章
统一启动:
/usr/local/nginx/sbin/nginx
service httpd start
/etc/init.d/mysqld restart
/usr/local/php7.2/sbin/php-fpm
报错1:
Unable to create the PID file (/usr/local/php7.2/run/php-fpm.pid).: No such file or directory (2)
解决:
mkdir /usr/local/php7.2/run #再启动php-fpm
最后配置zabbix,这里不做详细解释....
这样就实现了我的最新版的LNMP和最新版的zabbix的安装
LNMP安装201812012237的更多相关文章
- 服务器运行环境(LNMP)安装说明
服务器运行环境(LNMP)安装说明 因为公司需要一套流程标准,所以写了如下步骤. 先下载文件environment.tar,将文件上传到服务器. 使用命令解压文件,tar xvf environmen ...
- LNMP安装Let’s Encrypt 免费SSL证书方法:自动安装与手动配置Nginx
前几天介绍了最新StartSSL免费SSL申请与配置,很多人看到部落介绍SSL证书安装时总是推荐了OneinStack,因为OneinStack提供了一键添加和配置Let's Encrypt 免费SS ...
- LNMP安装,FastCGI说明
1.1.工作原理讲解说明 1. 用户请求的静态文件,由nginx服务器处理,根据静态的location配置进行处理 用户请求的动态文件,由php服务进行处理,根据动态的location配置进行处理 2 ...
- LNMP安装目录及配置文件
LNMP安装目录及配置文件位置 LNMP相关软件安装目录Nginx 目录: /usr/local/nginx/MySQL 目录 : /usr/local/mysql/MySQL数据库所在目录:/usr ...
- WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached
VPS主机性能配置如果太差,则在运行Wordpress博客和Discuz! 论坛等高消耗程序时能够明显感觉出VPS有些吃力.另外,即使VPS主机的CPU.内存.硬盘I/O等性能足够好,但是在面对大流量 ...
- centos LNMP第一部分环境搭建 LAMP LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/php/{p.conf.default,p.conf} php运行方式SAPI介绍 第二十三节课
centos LNMP第一部分环境搭建 LAMP安装先后顺序 LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/local/php/{ ...
- lnmp安装exif扩展
lnmp安装exif扩展 1.找到位置 cd /usr/local/lnmp1.4-full/src 2.解压php sudo bzip2 -d php-5.6.31.tar.bz2 sudo tar ...
- lnmp安装mysql
lnmp安装mysql 下载lnmp wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz 解压 tar ‐xf lnmp1..tar.gz 安装数据库 ./i ...
- linux lnmp安装2个版本PHP教程
linux lnmp安装2个版本PHP教程我原先装了5.6版本的PHP 后来想装个PHP7.0.14版本 一方面看看稳定性 另一方面看看性能怎么样 其实原理很简单 php-fpm开启了1个端口来管理P ...
随机推荐
- 【Mysql】mysql乐观锁总结和实践
乐观锁介绍: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突 ...
- Class<?> getClass()
getClass()方法属于Object的一部分,它将产生对象的类,并且在打印该类时,可以看到该类类型的编码字符串,前导"["表示这是一个后满紧随的类型的数组,而紧随的" ...
- Python 练习: 计算器
import re def format_string(s): # 对表达式进行格式化 s = s.replace(' ', '') s = s.replace("--", &qu ...
- agc023C - Painting Machines(组合数)
题意 题目链接 有\(n\)个位置,每次你需要以\(1 \sim n-1\)的一个排列的顺序去染每一个颜色,第\(i\)个数可以把\(i\)和\(i+1\)位置染成黑色.一个排列的价值为最早把所有位置 ...
- 【面试】Python面试题库
https://blog.csdn.net/ChenVast/article/details/81451460 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Py ...
- loadrunner 场景设计-学习笔记之性能误区
场景设计-学习笔记之性能误区 by:授客 QQ:1033553122 场景假设: 每个事务仅包含一次请求,执行10000个并发用户数 性能误区: 每秒并发用户数=每秒向服务器提交请求数 详细解答: 每 ...
- 安卓开发_关于WebView加载页面空白问题
依据我自己的测试,发现有时候用APP打开网页的时候,有的网页加载成功之前需要很久,有的一下就出来了(比如百度) 当加载时间过长的情况下,这时候显示的是空白界面,其实不是代码问题,只是要打开的这个网页太 ...
- 在centos7 上部署 vuepress
vuepress是一款十分优秀简洁的文档生成器,可以根据目录下的md文档自动生成对应的html文件,界面简洁大方.每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加 ...
- [20171113]修改表结构删除列相关问题2.txt
[20171113]修改表结构删除列相关问题2.txt --//测试看看修改表结构删除列产生的redo向量,对这些操作细节不了解,分析redo看看. 1.环境:SCOTT@book> @ &am ...
- 洗礼灵魂,修炼python(13)--模块random,math,pickle
random 1.作用: random模块用于生成随机数 2.常用函数: random:用于生成一个0到1的随机符点数: 0 <= n < 1.0 uniform(a, b):用于生成一个 ...