Jdk

  安装分三步:第一步,上传跟 linux 位数相同的 jdk tar 包,解压;第二步:解压 tar 包,配置环境变量,且 source 一下 /etc/profile;第三步:检查版本

  第一步,咱就不废话:看看解压后,咱们可以重名下,数字太长不好看呀

# mv jdk1..0_191/ jdk1.8

jdk的bin目录路径:

# pwd
/opt/jdk1.8/bin

  

  我们的环境变量配置到 jdk 的 /bin 目录就ok了

  vi /etc/profile  其实,这里,只需要引入 JAVA_HOME,jre是 jmeter 要用的,不用就别加也成

到最后面追加

#jdk1.8
JAVA_HOME=/opt/jdk1.8
JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

  这里要注意几点:

  • 等号别手贱加空格,shell 语法等号左右加空格就不能识别为变量了,出问题眼睛盯瞎了都盯不出来
  • JAVA_HOME 后的路径,别加 /bin ,因为后面的 export 才是真正将其引为全局变量的操作,前面加了。后面会找 bin 下面的 bin ,找得到就有鬼了。之前手贱自己加进去了,排查了十好几分钟
  • 配置好之后,别忘了 source 一下 /etc/profile 使它生效

最后:检查一下版本:

# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) -Bit Server VM (build 25.191-b12, mixed mode)

如果想要换 jdk ,把 JAVA_HOME 注释掉,新起一行,换下新的 jdk 路径就好了

完美,叉会儿腰……

Mysql 

1、检查安装:
因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库
[root@lml ~]# rpm -qa | grep mysql   // 这个命令就会查看该操作系统上是否已经安装了mysql数据库

有的话,我们就通过 rpm -e 命令 或者 rpm -e –nodeps 命令来卸载掉

[root@lml ~]# rpm -e mysql // 普通删除模式
[root@lml ~]# rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
在删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!!
 
2、通过yum来进行mysql的安装:
 
输入 下面的命令来查看yum上提供的mysql数据库可下载的版本:

[root@lml ~]# yum list | grep mysql
就可以得到yum服务器上mysql数据库的可下载版本信息:
 
 
使用:
yum install -y mysql-server mysql mysql-devel 
将mysql mysql-server mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)
 
yum install -y mysql-server mysql mysql-devel

此时我们可以通过如下命令,查看刚安装好的mysql-server的版本

rpm -qi mysql-server
这时我们会看到第一次启动mysql服务器以后会提示非常多的信息,目的就是对mysql数据库进行初始化操作,当我们再次重新启动mysql服务时,就不会提示这么多信息了,如:
# service mysqld restart
停止 mysqld: [确定]
正在启动 mysqld: [确定]
我们在使用mysql数据库时,都得首先启动mysqld服务,我们可以 通过  chkconfig –list | grep mysqld 命令来查看mysql服务是不是开机自动启动,如:
# chkconfig --list | grep mysqld
mysqld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
我们发现mysqld服务并没有开机自动启动,我们当然可以通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了
# chkconfig mysqld on
# chkconfig --list | grep mysql
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
 mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :
 /usr/bin/mysqladmin -u root password 'new-password'  // 为root账号设置密码

所以我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是mysql的root账号,非Linux的root账号)

# mysqladmin -u root password '123456'  // 通过该命令给root账号设置密码为 123456

创建新用户:

CREATE USER 'root'@'localhost' IDENTIFIED BY '123456';

登陆进入mysql:
mysql -u root -p 
 
新用户授权并刷新:(解决远程连接报 1130 的错误)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

退出:

quit

简单的命令:

# service mysqld start    ##启动apache
# service mysqld stop ##关闭 apache
# service mysqld restart ## 重启 apache
# chkconfig mysqld on ## 将 apache 设为开机启动
# ps -ef|grep mysqld ## 查看 apache 是否启动

Apache

  一、安装

  yum 安装 apache,遇见提示,输入 'y'

# yum install httpd

  启动apache,出现如下提示:

# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.18.46.17 for ServerName

  

  解决方案:取消注释,重新启动

vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80  (将这一行的注释取消)

  结果:

# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

  简单的命令:

# service httpd start    ##启动apache
# service httpd stop ##关闭 apache
# service httpd restart ## 重启 apache
# chkconfig httpd on ## 将 apache 设为开机启动
# ps -ef|grep httpd ## 查看 apache 是否启动

  进入我们的 ip:port (未修改配置的话,默认 80 端口)

 

  二、工作模式转换

  apache 有三种工作模式,分别为:prefok  event  worker,yum 安装的默认工作模式为:prefok。

  查看工作模式的命令:

#  httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

  

  转换工作模式的方式:修改配置文件的 httpd 文件命名(一般来讲,这几个文件是在 /etc/httpd 里面)

# cd /usr/sbin/
# ll
-rwxr-xr-x 1 root root 367136 Jun 19 2018 httpd
-rwxr-xr-x 1 root root 379688 Jun 19 2018 httpd.event
-rwxr-xr-x 1 root root 379688 Jun 19 2018 httpd.worker

  要转换成 worker 模式:

mv httpd httpd.prefork
mv httpd.worker httpd

  重启 service httpd restart,重启apache可能会报错,如下图:

  解决方案:安装php-zts

yum -y install php-zts

  ok :

# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]

  三、配置监控

  主要是改配置文件内的 service-status,解除注释,并将 Allow from 改成 all,重启

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
</Location> <Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from all
</Location> ExtendedStatus On  ## 这一行是可以展开更多的监控信息

  配置的监控信息如下:

PHP

  yum 安装 php

  1、安装 php 依赖

yum install gcc libxml2-devel openssl-devel curl-devel -y

  2、依旧是安装依赖(遇见提示,按 'y')

yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath mhash libmcrypt libmcrypt-devel php-fpm php-redis php-solr

  3、安装 php (安装依赖与安装 php 之间无先后顺序)

yum install php

  4、对 php 增加可执行权限

chmod +x /etc/init.d/php-fpm 

  5、开启 php

# service php-fpm start
Starting php-fpm: [ OK ]

  6、验证 php 是否ok,在 apache 的 工程路径: /var/www/html 下 ,新建一个 info.php

<?php
phpinfo()
?>

  7、将 apache 重启,在浏览器内输入:ip/info.php (ip指的是 apache 的ip和端口,我这里默认是80就省略)

  出现 php 的具体信息,就代表 php 安装完成,并且成功和 apache 建立了关联。

Tomcat

  tomcat 是基于 java 的,所以,必须安装好 java ,并且配置好环境变量,这里我们不赘述,看一下 java 版本如何:

  tomcat 我们这里选取最新版本进行安装,因为配置监控信息,tomcat 8-9 的监控配置是不一样的,其中 tomcat 7 配置监控最简单,只需要根据提示即可,不需要另外的其他操作

  一、安装

  1、在官网上下好 tar 包,上传到服务期内,解压即可。

  2、配置好 tomcat 的配置文件,主要是更改3个端口,这三个端口如果启动多个 tomcat 可能会出现冲突:8080,8009,8005

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Server port="8005" shutdown="SHUTDOWN">

 我们既然如果只是启动其中一个,其实就没有必要去修改端口咯,这是只是贴出来如果部署分布式,需要修改的端口位置。

  3、启动 tomcat ,我们可以将其作为 一个 service 去启动,这样就不用每次都到目录下启动,这里偷个懒百度实践下。

  原理:我们的 service [服务名] [选项] ,其实在启动服务的时候是执行 /etc/init.d/ 下的脚本文件 ,就像我们执行 service httpd restart ,那么就是执行 /etc/init.d/ 下的 httpd 脚本文件

  问题点找到了,那么我们怎么将 tomcat 的启动过程,编写成类似 httpd 这样的脚本呢?我们可以依照 httpd 或者其他的脚本仿写一个:

  这里要注意几点:

  • 引入 java 环境变量先,且更改 tomcat9 的路径
  • 编辑好了之后,把这个文件服务执行权限:chmod +x tomcat9
  • 这里只引入了几个功能:restart 、start、stop,其他的功能还未加进去
#!/bin/bash  

# description: Tomcat9 Start Stop Restart  

# processname: tomcat9  

# chkconfig:     

JAVA_HOME=/opt/jdk1.

export JAVA_HOME  

PATH=$JAVA_HOME/bin:$PATH  

export PATH  

CATALINA_HOME=/opt/tomcat9

case $ in  

start)  

sh $CATALINA_HOME/bin/startup.sh  

;;   

stop)     

sh $CATALINA_HOME/bin/shutdown.sh  

;;   

restart)  

sh $CATALINA_HOME/bin/shutdown.sh  

sh $CATALINA_HOME/bin/startup.sh  

;;   

esac      

exit 

  最后我们看看效果:

# service tomcat9 start
Using CATALINA_BASE: /opt/tomcat9
Using CATALINA_HOME: /opt/tomcat9
Using CATALINA_TMPDIR: /opt/tomcat9/temp
Using JRE_HOME: /opt/jdk1.
Using CLASSPATH: /opt/tomcat9/bin/bootstrap.jar:/opt/tomcat9/bin/tomcat-juli.jar
Tomcat started.

完美。叉会儿腰……  好像偏题了,接下来干点儿啥呢?配置个监听吧,先把其改成 nio 的工作模式,再启动个 sever-status监听

  二、修改工作模式并且启动监听

  问题来了,在哪修改工作模式,模式一般都是在配置文件内找:去 tomcat 路径下的 conf 内找找看:vi /opt/tomcat9/conf/server.xml

  这里,咱们先不配置工作模式,看看默认的是啥,如果默认就是 nio 就不配置了咯,nio 是异步阻塞,某种程度上可以增进性能; bio 是同步阻塞的模式,一个线程只能处理一个请求。

那么,先配置监听吧,过程就不贴了,直接进入要更改的项:

  1、vi /opt/tomcat9/conf/tomcat-users.xml  

  这里要注意,这是配置 manager 权限,不要把这两行粘贴到最后去了,要粘贴在 </tomcat-users> 之上 ,这是 xml 的格式,贴到外面了肯定就不生效

<role rolename="manager-gui"/>
<user username="tomcat9" password="" roles="manager-gui"/>

  2、vi /opt/tomcat9/webapps/manager/META-INF/context.xml  ,把 Contest 的内容全部注释,如下所示

<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
-->

  3、重启 tomcat ,看效果,不难发现,这里就是 nio 的模式,无需修改。

  自从 tomcat 8 以来,默认的就是 nio 的模式,这里我们就不需要修改了,那 tomcat 7 就需要修改工作模式

  vi /opt/tomcat9/conf/server.xml

<Connector port=""protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout=""
redirectPort="" />

 

Nginx

  编译安装 Nginx ,并且配置监听。为啥要编译呢?因为要启动监听就必须编译安装

一、安装依赖

使用源码编译安装,包括具体的编译参数信息。

正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。

安装make:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

1.选定源码目录

可以是任何目录,本文选定的是/usr/local/src

cd /usr/local/src

2.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz

tar -zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure

make && make install

3.安装zlib库

http://zlib.net/zlib-1.2.11.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /usr/local/src

wget http://zlib.net/zlib-1.2.11.tar.gz

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure

make && make install

4.安装ssl(某些vps默认没装ssl)

cd /usr/local/src

wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz

tar -zxvf openssl-1.1.0b.tar.gz

cd openssl-1.1.0b

./config make && make install

二、安装Nginx

  把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

cd /usr/local/src

wget http://nginx.org/download/nginx-1.10.2.tar.gz 

tar -zxvf nginx-1.10.2.tar.gz 

cd nginx-1.10.2

1、配置Nginx的安装参数

./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.39 --with-zlib=/usr/local/src/zlib-1.2.11 --with-openssl=/usr/local/src/openssl-1.1.0b  --prefix=/usr/local/nginx --with-http_stub_status_module

2、编译安装

make && make install

3、启动Nginx

/usr/local/nginx/nginx 

网页访问查看是否正常启动:因为 80 端口被 apache 占用,所以这里我们用 81 端口

4 、同样的,我们可以将 nginx 作为一个 service 来启动:

  

编写nginx文件,放入/etc/init.d/

nginx文件内容如下,黄色部分为自己实际nginx安装的路径。

#!/bin/bash

# nginx Startup script for the Nginx HTTP Server

# it is v.0.0. version.

# chkconfig: -  

# description: Nginx is a high-performance web and proxy server.

# It has a lot of features, but it's not for everyone.

# processname: nginx

# pidfile: /var/run/nginx.pid

# config: /usr/local/nginx/conf/nginx.conf

nginxd=/usr/local/nginx/sbin/nginx

nginx_config=/usr/local/nginx/conf/nginx.conf

nginx_pid=/var/run/nginx.pid

RETVAL=

prog="nginx"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 

[ -x $nginxd ] || exit 

# Start nginx daemons functions.

start() {

if [ -e $nginx_pid ];then

   echo "nginx already running...."

   exit 

fi

   echo -n $"Starting $prog: "

   daemon $nginxd -c ${nginx_config}

   RETVAL=$?

   echo

   [ $RETVAL =  ] && touch /var/lock/subsys/nginx

   return $RETVAL

}

# Stop nginx daemons functions.

stop() {

        echo -n $"Stopping $prog: "

        killproc $nginxd

        RETVAL=$?

        echo

        [ $RETVAL =  ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid

}

# reload nginx service functions.

reload() {

    echo -n $"Reloading $prog: "

    #kill -HUP `cat ${nginx_pid}`

    killproc $nginxd -HUP

    RETVAL=$?

    echo

}

# See how we were called.

case "$1" in

start)

        start

        ;;

stop)

        stop

        ;;

reload)

        reload

        ;;

restart)

        stop

        start

        ;;

status)

        status $prog

        RETVAL=$?

        ;;

*)

        echo $"Usage: $prog {start|stop|restart|reload|status|help}"

        exit 

esac

exit $RETVAL

第二步:

执行

chkconfig --add /etc/init.d/nginx
chmod 755 /etc/init.d/nginx
chkconfig --add nginx

如果想随系统启动就执行

/sbin/chkconfig --level 345 nginx on

第三步

nginx启动、停止、无间断服务重启,可选  start | stop | restart | reload | status |  help

service nginx start

service nginx stop

service nginx reload

三、配置Nginx的监控

配置文件路径:

vi /usr/local/nginx/nginx.conf

添加如下代码:

#设定Nginx状态访问地址

location /NginxStatus {

    stub_status on;

    access_log on;

    auth_basic "NginxStatus";

    #auth_basic_user_file conf/htpasswd;

}

配置完成重启Nginx,命令:

/usr/local/nginx/nginx  -s reload

6、状态查看

配置完成后在浏览器中输入http://ip:监听端口/NginxStatus查看,显示信息如下:

7、 参数说明

  active connections – 活跃的连接数量

  server accepts handled requests — 总共处理了107520387个连接 , 成功创建107497834次握手, 总共处理了639121056个请求

  每个连接有三种状态waiting、reading、writing

  reading —读取客户端的Header信息数.这个操作只是读取头部信息,读取完后马上进入writing状态,因此时间很短。

  writing — 响应数据到客户端的Header信息数.这个操作不仅读取头部,还要等待服务响应,因此时间比较长。

  waiting — 开启keep-alive后等候下一次请求指令的驻留连接.

  正常情况下waiting数量是比较多的,并不能说明性能差。反而如果reading+writing数量比较多说明服务并发有问题。


补充:
  查看Nginx并发进程数:ps -ef | grep nginx | wc -l
  查看Web服务器TCP连接状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

四、nginx与php关联

  nginx 与 php 怎么关联起来呢?我们先去 nginx 的工程路径下:/usr/local/nginx/html 新建一个同样的 info.php

  然后, vi /usr/local/nginx/nginx.conf,将以下几行注释去掉,并且将 /scripts 改成 $document_root ;root 后面跟的是工程路径 ,默认是 html 下,如果要部署项目,可以自己定义去转发到相对应的路径下

    location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

  最后,重启 nginx ,就可以看到

  ip:port/info.php。如果一直是 nofound ,那么就是 上面一步没配好

Linux 安装Jdk、mysql、apache、php、tomcat、nginx的更多相关文章

  1. Linux 安装jdk+mysql+tomcat

    参考: 安装 jdk+mysql+tomcat   https://www.w3h5.com/post/65.html 安装 mysql  https://blog.csdn.net/qq_23123 ...

  2. linux安装jdk mysql

    mysql 安装进入到mysql官网 点击archives 选择版本下载tar linux 安装mysql数据库——tar.gz包解压安装法 mysql数据库有多种安装方式,本文只介绍在Linux服务 ...

  3. Linux安装JDK、MySQL和Tomcat

    1 依赖的安装 因为JDK.Tomcat和MySQL的安装过程中需要从网上下载部分支持包才可以继续,所以需要提前安装好依赖. yum install glibc.1686 yum -y install ...

  4. linux系统下安装jdk,mysql,tomcat 和redis 和jedis入门案例

    Day47笔记Linux+redis入门 Day47   知识讲解:Jedis 1.Linux上jdk,mysql,tomcat安装(看着文档安装) 准备工作: 因为JDK,TOMCAT,MYSQL的 ...

  5. Linux+Redis实战教程_Linux上安装jdk,mysql,tomcat_安装jdk

    1. Linux上安装jdk,mysql,tomcat[重点] Windows 控制面板 添加/卸载程序 进行程序的安装.更新.卸载.查看 rpm命令:相当于windows的添加/卸载程序 进行程序的 ...

  6. (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

    Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...

  7. Linux安装JDK详细步骤

    Linux安装JDK步骤 1.先从网上下载jdk(jdk-7u1-linux-i586.rpm),下载地址:http://www.oracle.com/technetwork/java/javase/ ...

  8. Linux安装Jdk,CentOS安装Jdk

    Linux安装Jdk,CentOS安装Jdk >>>>>>>>>>>>>>>>>>>& ...

  9. window、linux安装jdk,excel 导入oracle,WebService,window 端口查看,svn服务安装,oracle用户解锁

    内存泄露分析插件http://download.eclipse.org/mat/1.3/update-site/birt插件http://download.eclipse.org//birt/upda ...

  10. linux 安装jdk

    1.Linux安装JDK步骤1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也 ...

随机推荐

  1. python 多线程稀疏矩阵乘法

    import threading, time import numpy as np res = [] class MyThread(threading.Thread): def __init__(se ...

  2. POJ-3894 迷宫问题 (BFS+路径还原)

    定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, ...

  3. java回收算法

    两个最基本的java回收算法:复制算法和标记清理算法                 复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B.此为新生代最常用的算法              ...

  4. vscode使用集

    abotteram.typescript-react-snippets-0.1.9akamud.vscode-javascript-snippet-pack-0.1.5alechp.react-too ...

  5. SqlServer中的merge操作(转载)

    SqlServer中的merge操作(转载)   今天在一个存储过程中看见了merge这个关键字,第一个想法是,这个是配置管理中的概念吗,把相邻两次的更改合并到一起.后来在technet上搜索发现别有 ...

  6. linux系统管理的基本命令

    系统管理类命令: 关机或重启: halt, poweroff reboot -f: 强制,不调用shutdown -p: 切断电源 shutdown: shutdown [OPTION]... TIM ...

  7. JavaScript事件简述

    事件简述 技术一般水平有限,有什么错的地方,望大家指正. 事件是我们平时经常使用,这次就来了解一下事件.首先我们要明确几个概念,JavaScript是单线程,浏览器是多线程的,并不是所有的事件处理函数 ...

  8. 2018-2019-2 网络对抗技术 20165202 Exp1 PC平台逆向破解

    一.基础知识 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码. NOP指令为空指令,当运行该指令时CPU不做任何事情,但是会占用一个指令的时间,当指令间需要有延时,可以插入NOP指令 ...

  9. tp 邮件发送

    1.需要phpmail邮件发送包, 2.邮件发送函数function sendMail($to, $title, $content){ require_once('./PHPMailer_v5.1/c ...

  10. Ubuntu使用Remastersys封装制作系统ISO镜像

    首先下载Remastersys的Deb软件包 链接:http://pan.baidu.com/s/1i3tYPKT 密码:qvyd 使用命令强制安装 dpkg --force-all -i remas ...