CentOS5.6安装nginx+tomcat+jdk+mysql5.1.58详细过程

Nginx+php7+mysql5.6的编译安装教程 先配置网络连接(下面为参考地址) https://jingyan.baidu.com/article/76a7e409ed694dfc3a6e1548.html yum  install epel-release  //扩展包更新包 yum  update //更新yum源 1.nginx的安装 准备工作: ①.开启iptables中的80 3306端口 vi /etc/sysc 阅读详情
====================================================================================
======安装和配置nginx服务器======================================================
====================================================================================
1.创建目录/usr/local/nginx
2.下载nginx压缩包(wget http://nginx.org/download/nginx-1.2.6.tar.gz)
3.解压压缩包(tar -zxvf nginx-1.2.6.tar.gz)
4.安装依赖包(yum install pcre-*)
5.进入解压的目录(cd nginx-1.2.6)
6.配置安装目录(./configure  --prefix=/usr/local/nginx)
7.执行安装命令:make
8.安装:make install
9.启动测试nginx服务(/usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf)
10.设置开机自启动(需要脚本:http://blog.youkuaiyun.com/devilzy2656/article/details/8593013)
    vi /etc/rc.d/init.d/nginx
    内容见nginx文件
    #chmod 775/etc/rc.d/init.d/nginx                       赋予文件执行权限
      #chkconfig nginx on                                         设置开机启动
11.停止Nginx
(1)从容停止Nginx。
kill - QUIT Nginx主进程号  或者   kill -QUIT `/usr/local/nginx/logs/nginx.pid`
(2)快速停止Nginx
kill - TERM Nginx主进程号 或者  kill -TERM `/usr/local/nginx/logs/nginx.pid`
kill - INT Nginx主进程号    或者   kill -INT `/usr/local/nginx/logs/nginx.pid`
(3)强制停止所有Nginx进程
pkill –9 nginx
12.重新启动
检查nginx的配置文件 引用: # /usr/local/nginx/sbin/nginx -t
一:service nginx restar
二:启动nginx 引用:
三:# /usr/local/nginx/sbin/nginx
重启nginx :
# /usr/local/nginx/sbin/nginx -s  reload


问题1:主机无法访问虚拟机的服务?
今天忙了一天,刚把nginx装在CentOS上,出现了好多问题,快大功告成了,用本机访问虚拟机的时候却出现了不能访问的问题,查了资料以后,原来是防火墙的问题。
具体情况如下:
   防火墙可以ping通虚拟机,虚拟机也可以ping通防火墙。
 接着检查了服务器端的80端口是否可以访问的到:telnet 192.168.131.130 80, 结果访问不到,原来果真防火墙的问题。
   做如下处理:
  -----#/sbin/iptables -I INPUT -p tcp  --dport 80 -j ACCEPT
   然后保存:
      -----#/etc/rc.d/init.d/iptables save
   重启防火墙:
      -----#/etc/init.d/iptables restart
   至此,OK了,主机已可访问虚拟机的nginx服务。
  CentOS防火墙的关闭,关闭其服务即可:
     查看CentOS防火墙信息:/etc/init.d/iptables status
     关闭CentOS防火墙服务:/etc/init.d/iptables stop
   永久关闭防火墙:
#chkconfig –level 35 iptables off

====================================================================================
======安装jdk==================================================================
====================================================================================
第一种:tar包
1.下载jdk并解压:(我选的是tar包的文件)
    www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
2.解压:(tar -zxvf jdk-7u15-linux-x64.tar.gz -C /usr/local)
3.配置jdk环境变量
#vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.7.0_15
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
:wq
#source /etc/profile
4.执行#java -version
5.编写测试类
第二种:bin包
1.#chmod +x jdk-6u27-linux-x64.bin
2.#./jdk-6u27-linux-x64.bin

====================================================================================
======安装tomcat==================================================================
====================================================================================
1.下载tomcat并解压(依旧是tar包)
2.解压:(tar -zxvf apache-tomcat-7.0.37.tar.gz -C /usr/local)
3.配置tomcat环境变量
#vi /etc/profile
#TOMCAT
export TOMCAT_HOME=/usr/local/apache-tomcat-7.0.37
export PATH=$PATH:$TOMCAT_HOME/bin
:wq
#source /etc/profile
4.执行启动tomcat
#chmod 777 /usr/local/apache-tomcat-7.0.37/bin/*.sh
#catalina.sh start
tail  -f  /usr/local/apache-tomcat-7.0.37/logs/catalina.out
成功!
主机无法访问?
启动之后如果在主机访问不了很可能是防火墙的原因。解决方法如nginx解决方法一样:
   做如下处理:
  -----#/sbin/iptables -I INPUT -p tcp  --dport 8080 -j ACCEPT
   然后保存:
      -----#/etc/rc.d/init.d/iptables save
   重启防火墙:
      -----#/etc/init.d/iptables restart
然后继续访问:http://192.168.152.144:8080/

====================================================================================
======安装mysql==================================================================
====================================================================================
1.下载mysql:
    http://downloads.mysql.com/archives.php
    Source and other files mysql-5.1.58.tar.gz (1 Jul 2011, 23.2M)
2.解压mysql(#tar -zxvf mysql-5.6.2-m5.tar.gz)
3.安装mysql文件
    # cd mysql-5.1.58(以下操作默认都是mysql-5.1.58文件夹)
    编译:
    #./configure --prefix=/usr/local/mysql --localstatedir=/data/mysql --with-character-sets=utf-8,gbk,gb2312
    #make
    #make install
4.配置mysql
    #cp support-files/my-large.cnf /etc/my.cnf (注意:my-large.cnf适用于1G内存左右的服务器,可以根据自己配置情况选用my-large.cnf 或 my-huge.cnf 等不同配置)
    #cp support-files/mysql.server /etc/init.d/mysqld
5.初始化mysql配置文件
    #useradd mysql -s /sbin/nologin
    #/usr/local/mysql/bin/mysql_install_db  --user=mysql
    #ls /data/mysql (检查元数据目录是否生成)
6.将mysql加入开机启动
    #chmod +x /etc/init.d/mysqld
    vi /etc/init.d/mysqld(编辑此文件,查找并修改以下变量内容:)
    basedir=/usr/local/mysql
    datadir=/data/mysql/
    :wq
    chkconfig --add mysqld
    chkconfig --level 345 mysqld on
    
    重新启动系统
    #shutdown -h now
    /usr/local/mysql/bin/mysqladmin -u root password "123456"
    解决mysql命令不存在
    ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
7.配置mysql
    7.1用root帐号登录后,在/etc/my.cnf 中的
        找到客户端配置[client] 在下面添加
        default-character-set=utf8 默认字符集为utf8
        在找到[mysqld] 添加
        default-character-set=utf8 默认字符集为utf8
        init_connect='SET NAMES utf8'
        [mysqld]后添加添加lower_case_table_names=1,
        重启MYSQL服务,这时已设置成功:
        lower_case_table_names = 0其中 0:区分大小写,1:不区分大小写
    7.2.安装innodb插件
        mysql> INSTALL PLUGIN INNODB SONAME 'ha_innodb.so';
    7.3授权用户
        mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.152.146' IDENTIFIED BY '123456' WITH GRANT OPTION;
8.启动mysql
    方式1. service mysqld start
    方式2./usr/local/mysql/bin/mysqld_safe --user=mysql
9.停用mysql
    service mysqld stop

====================================================================================
======安装mysql从数据库============================================================
====================================================================================
1.下载mysql:(与主数据库相同)
2.解压mysql:(与主数据库相同)
3.安装mysql文件:(与主数据库相同)
4.配置mysql:(与主数据库相同)
5.初始化mysql配置文件:(与主数据库相同)
6.将mysql加入开机启动:(与主数据库相同)
7.配置mysql:
    7.1用root帐号登录后,在/etc/my.cnf 中的
        找到客户端配置[client] 在下面添加
        default-character-set=utf8 默认字符集为utf8
        在找到[mysqld] 添加
        default-character-set=utf8 默认字符集为utf8
        init_connect='SET NAMES utf8'
        [mysqld]后添加添加lower_case_table_names=1,
        重启MYSQL服务,这时已设置成功:
        lower_case_table_names = 0其中 0:区分大小写,1:不区分大小写
    7.2.安装innodb插件
        mysql> INSTALL PLUGIN INNODB SONAME 'ha_innodb.so';
    7.3.查看mysql主从数据库配置.txt文档
8.启动mysql:(与主数据库相同)
9.停用mysql:(与主数据库相同)

遇到的问题:
1.Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
重启操作系统

====================================================================================
======配置nginx和tomcat============================================================
====================================================================================
1.配置nginx/conf/nginx.conf文件
#运行nginx所在的用户名和用户组
#user  nobody;

#启动进程数  
worker_processes  8;

#全局错误日志及PID文件   
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
error_log  logs/nginx_error.log  crit;

#pid        logs/nginx.pid;

worker_rlimit_nofile 65535;   
#工作模式及连接数上限   
#工作模式有:select(标准模式),poll(标准模式),kqueue(高效模式,适用FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 and MacOS X),
#epoll(高效模式,本例用的。适用Linux 2.6+,SuSE 8.2,),
#/dev/poll(高效模式,适用Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+)
events {
    use epoll;   
    worker_connections  65535;
}

#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
    include       mime.types;
    default_type  application/octet-stream;

    #include /usr/local/webserver/nginx/conf/proxy.conf;  
    #charset  gb2312;   
    #设定请求缓冲     
    server_names_hash_bucket_size 128;   
    client_header_buffer_size 32k;   
    large_client_header_buffers 4 32k;   
    #client_max_body_size 8m;   

    #流行的 web 服务器里面都提供 sendfile 选项用来提高服务器性能(http://www.vpsee.com/2009/07/linux-sendfile-improve-performance/)
    sendfile        on;
    #nginx中使用了send_file 并且配合TCP_CORK/TCP_NOPUSH进行操作(http://www.pagefault.info/?p=228)
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    tcp_nodelay on;

    #解决NGINX 502 Bad Gateway是因为nginx因为内存不足(具体可以百度百科)
    fastcgi_intercept_errors on;
    fastcgi_connect_timeout 300;   
    fastcgi_send_timeout 300;   
    fastcgi_read_timeout 300;   
    fastcgi_buffer_size 64k;   
    fastcgi_buffers 4 64k;   
    fastcgi_busy_buffers_size 128k;   
    fastcgi_temp_file_write_size 128k;   

    #使用gzip 压缩可以降低网站带宽消耗,同时提升访问速度,要求安装gzip 在运行./config时要指定

    gzip on;
    gzip_proxied expired no-cache no-store private auth;
    gzip_min_length  1k;   
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_disable "MSIE[1-6]\."
    gzip_vary on;   

    proxy_temp_path /data/proxy_temp_dir;
    #设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
    proxy_cache_path /data/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=10g;

    server {
    listen       80;
    server_name  192.168.152.145;
    index index.html index.htm index.jsp;
    root /usr/local/apache-tomcat-7.0.37/webapps;   
      
    #limit_conn   crawler  20;
    
    location / {
        #用作反向代理
        #原:http://10.0.0.20/first/second/test.html
        #转:http://127.0.0.1:8080/first/second/test.html
        proxy_pass http://127.0.0.1:8080;
    }
    
    #location /NginxStatus{
        #Nginx中的stub_status模块主要用于查看Nginx的一些状态信息
        #stub_status on;
        #access_log off;
    #}
    
    location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ico)$
    {
    #设置文件缓存30天
        #expires      30d;   
        expires      1m;
    }
    
    location ~ .*\.(js|css)?$
    {   
    #设置文件缓存1小时
        #expires      1h;
        expires      1m;
    }
    
    #定义访问日志的写入格式   
    #log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '   
    #    '$status $body_bytes_sent "$http_referer" '   
    #    '"$http_user_agent" $http_x_forwarded_for';   
    #    access_log  /usr/local/nginx/logs/localhost.log access;  
 


        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

}
2.启动tomcat;在主机访问:http://192.168.152.145;然后很神奇的跳转到tomcat,哈哈




==========================================================================================
======安装mysql(mysql的较新版本使用cmake编译)==========================================
==========================================================================================
本次安装未成功,无法启动mysql服务,原因未知
1.下载mysql:
    http://downloads.mysql.com/archives.php?p=mysql-5.6&v=5.6.2
    Source and other files:mysql-5.6.2-m5.tar.gz (15 Mar 2011, 24.9M)
2.解压mysql(#tar -zxvf mysql-5.6.2-m5.tar.gz -C /usr/local)
2.1下载cmake
    由于新版本的mysql都是采用cmake进行安装,所以需要先下载安装cmake
    http://www.cmake.org/cmake/resources/software.html
2.2解压cmake(#tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local)
    #cd cmake-2.8.10.2
    #mkdir /usr/local/cmake
    #./bootstrap --prefix=/usr/local/cmake
    #gmake
    #gmake install
    安装cmake完成
    
    #vi /etc/profile
    #cmake
    export PATH=/usr/local/cmake/bin:$PATH
    :wq
    #source /etc/profile

3.安装mysql文件
    #/usr/sbin/groupadd mysql
    #/usr/sbin/useradd -g mysql mysql

    #cd mysql-5.6.6-m9 (以下操作默认都是mysql-5.6.6-m9文件夹)
    #cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
    #make
    #make install
4.配置mysql
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql

ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16

mkdir -p /var/mysql/
mkdir -p /var/mysql/data/
mkdir -p /var/mysql/log/
chown -R mysql:mysql /var/mysql/

cp support-files/my-large.cnf /var/mysql/my.cnf (注意:my-large.cnf适用于1G内存左右的服务器,可以根据自己配置情况选用my-large.cnf 或 my-huge.cnf 等不同配置)

cp support-files/mysql.server /etc/init.d/mysqld
5.初始化mysql配置文件
    #/usr/local/mysql/scripts/mysql_install_db --defaults-file=/var/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql
    #ls /data/mysql (检查元数据目录是否生成)
6.将mysql加入开机启动
    #chmod +x /etc/init.d/mysqld
    vi /etc/init.d/mysqld(编辑此文件,查找并修改以下变量内容:)
    basedir=/usr/local/mysql
    datadir=/var/mysql/data
    :wq
    chkconfig --add mysqld
    chkconfig --level 345 mysqld on
    /usr/local/mysql/bin/mysqladmin -u root password "123456"
    ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
7.启动mysql
    方式1. service mysqld start
    方式2./usr/local/mysql/bin/mysqld_safe --user=mysql
8.停用mysql
    service mysqld stop
问题1:cmake安装提示问题
    1.检查参数的空格
    2.重新下载mysql的软件包
问题2:找不到mysql.sock














make的原理是执行一个叫Makefile文件里的指令,make的基本用处是自动根据makefile里的指令来编译源文件。它还可以用来做比如安装软件,卸载软件等事情,但前提是作者在makefile里写了。比如makefile里有这么些内容:
 ...
install :  < commands >
然后用make install的话,make程序就会按照上面install:后面的指令< commands >执行安装,uninstall也是一样的道理,大部分的作者会写有卸载的部分,这时只要简单地执行make unistall就可以,如果作者懒没有写,那就只有根据make install中的步骤,看它把什么文件拷到哪去了,然后分别手动删除。
还有关键的一点是,编译安装完成后,不要删除源代码,不然就算作者写了unnistall目标,你也没有makefile可以执行了。





语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
 
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
 
~ 开头表示区分大小写的正则匹配
 
~*  开头表示不区分大小写的正则匹配
 
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
 
/ 通用匹配,任何请求都会匹配到。
 
多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):
 
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
 
例子,有如下匹配规则:
 
 
location = / {
   #规则A
}
location = /login {
   #规则B
}
location ^~ /static/ {
   #规则C
}
location ~ \.(gif|jpg|png|js|css)$ {
   #规则D
}
location ~* \.png$ {
   #规则E
}
location !~ \.xhtml$ {
   #规则F
}
location !~* \.xhtml$ {
   #规则G
}
location / {
   #规则H
}
那么产生的效果如下:
 
访问根目录/, 比如http://localhost/ 将匹配规则A
 
访问 http://localhost/login 将匹配规则B,http://localhost/register 则匹配规则H
 
访问 http://localhost/static/a.html 将匹配规则C
 
访问 http://localhost/a.gif, http://localhost/b.jpg 将匹配规则D和规则E,但是规则D顺序优先,规则E不起作用, 而 http://localhost/static/c.png 则优先匹配到 规则C
 
访问 http://localhost/a.PNG 则匹配规则E, 而不会匹配规则D,因为规则E不区分大小写。
 
访问 http://localhost/a.xhtml 不会匹配规则F和规则G,http://localhost/a.XHTML不会匹配规则G,因为不区分大小写。规则F,规则G属于排除法,符合匹配规则但是不会匹配到,所以想想看实际应用中哪里会用到。
 
访问 http://localhost/category/id/1111 则最终匹配到规则H,因为以上规则都不匹配,这个时候应该是nginx转发请求给后端应用服务器,比如FastCGI(php),tomcat(jsp),nginx作为方向代理服务器存在。
 
所以实际使用中,个人觉得至少有三个匹配规则定义,如下:
 
#直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。
#这里是直接转发给后端应用服务器了,也可以是一个静态首页
# 第一个必选规则
location = / {
    proxy_pass http://tomcat:8080/index
}
 
# 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项
# 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用
location ^~ /static/ {
    root /webroot/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
    root /webroot/res/;
}
 
#第三个规则就是通用规则,用来转发动态请求到后端应用服务器
#非静态文件请求就默认是动态请求,自己根据实际把握
#毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了
location / {
    proxy_pass http://tomcat:8080/
}
 
 
未试验过的其他信息:
三、ReWrite语法
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301
1、下面是可以用来判断的表达式:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行
2、下面是可以用作判断的全局变量
例:http://localhost:88/test1/test2/test.php
$host:localhost
$server_port:88
$request_uri:http://localhost:88/test1/test2/test.php
$document_uri:/test1/test2/test.php
$document_root:D:\nginx/html
$request_filename:D:\nginx/html/test1/test2/test.php
四、Redirect语法
server {
listen 80;
server_name start.igrow.cn;
index index.html index.php;
root html;
if ($http_host !~ “^star\.igrow\.cn$&quot {
rewrite ^(.*) http://star.igrow.cn$1 redirect;
}
}
五、防盗链location ~* \.(gif|jpg|swf)$ {
valid_referers none blocked start.igrow.cn sta.igrow.cn;
if ($invalid_referer) {
rewrite ^/ http://$host/logo.png;
}
}
六、根据文件类型设置过期时间
location ~* \.(js|css|jpg|jpeg|gif|png|swf)$ {
if (-f $request_filename) {
expires 1h;
break;
}
}
七、禁止访问某个目录
location ~* \.(txt|doc)${
root /data/www/wwwroot/linuxtone/test;
deny all;
}
 
 
 
++ 一些可用的全局变量
$args
$content_length
$content_type
$document_root
$document_uri
$host
$http_user_agent
$http_cookie
$limit_rate
$request_body_file
$request_method
$remote_addr
$remote_port
$remote_user
$request_filename
$request_uri
$query_string
$scheme
$server_protocol
$server_addr
$server_name
$server_port
$uri

各种靠谱教程总结(后续更新) 缘起 &amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;上一周,电脑突然蓝屏崩溃了,幸亏在保质期内,厂家给免费维修,据说硬盘坏了,因此导致了所有数据丢失,虽然没有太多重要的,内心仍不是个滋味。于是打算将所有的不是特别重要东西能放到云端的都放到云端去。 内容(会持续更新) &amp 阅读详情

相关推荐

用企业微信/飞书聊天记录构建动态安全防线

即时通讯(IM)数据正成为新一代安全检测的关键语义源——它天然承载业务上下文、人员行为意图与跨系统操作轨迹,弥补了网络流量加密化、终端日志低语义、身份日志滞后性等传统安全数据源的固有缺陷。基于企业微信、飞书、钉钉等合规IM平台的开放API,可低成本构建轻量级Chat安全层:通过规则引擎+轻量NLP混合建模,实现对凭证索要、数据外传暗示、社会工程话术等高风险沟通模式的毫秒级识别;结合角色白名单、上下文关联与动态阈值降噪,将误报率压降至4.3%。该方案不替代EDR或SIEM,而是为其注入可解释的‘业务听觉’,已

weixin_33778544的博客 453

CentOS6.5下安装Tomcat,JDK,Redis以及MySQL-5.6.22并设置远程访问

一.安装MySql 1.查看CentOS6.5自带mysql rpm -qa | grep mysql 2.卸载自带mysql rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686   3.上传MySQL-5.6.22-1.el6.i686.rpm-bundle.tar到usr/local/mysql目录下,并在当前文件夹解压   ta...

爱不离此的博客 601

SpringBoot+Vue驾校管理系统开发实战:从数据库设计到部署上线

在企业管理软件与毕业设计选题中,前后端分离架构已成为主流开发模式。SpringBoot作为后端框架简化了服务端配置,Vue配合Element UI能快速搭建交互友好的管理界面,MySQL则提供了稳定可靠的数据存储方案。本文以驾校管理系统为实例,深入拆解了从业务需求分析、数据库表设计、核心接口逻辑到Nginx部署上线的全过程,重点讨论了角色权限控制、预约排课冲突检测、软删除设计以及SQL注入防护等工程实践。无论是构建后台管理系统,还是学习项目开发流程,本案例都能提供实用参考。

weixin_30247307的博客 424

在Linux centos7 环境下安装部署jdk+tomcat+MySQL+nginx

MySQL启动起来之后,我们就可以测试一下登录操作,但是我们要想登录MySQL,需要一个访问密码,而刚才在安装MySQL的过程中,并没有看到让我们设置访问密码,那这个访问密码是多少呢?那实际上,对于rpm安装的mysql,在mysql第一次启动时,会自动帮我们生成root用户的访问密码,并且输出在mysql的日志文件 /var/log/mysqld.log中,我们可以查看这份日志文件,从而获取到访问密码。设置密码长度最低位数。

2301_79724805的博客 1238

STM32 CAN发送丢包?3个邮箱轮询法实测有效(附代码)

本文深入分析了STM32 CAN总线发送丢包的根本原因,指出其内置CAN控制器的三个发送邮箱是硬件瓶颈。针对高负载场景,提供了实测有效的优化方案,重点介绍了非阻塞的邮箱状态轮询法,该方法通过主动轮询三个邮箱的空闲状态,充分利用硬件资源,显著提升发送稳定性并避免任务阻塞。文中附有可直接使用的示例代码。

weixin_29189381的博客 195

【Arduino 101】五分钟搞懂PID控制算法

【Arduino 101】五分钟搞懂PID控制算法物料清单尺寸接线 文章目录物料清单尺寸接线 物料清单 Arduino Uno x 1 超声波模块(HC-SR04)x 1 舵机(Tower Pro MG996R)x 1 舵机供电: 5V 稳压管(LM7805) x 1 , 滤波电容 (0.33uF, 0.1uF) x 2, 9V 电池 x 1 滑轨:泡沫板 支架:乐高 滚动物体:胶带(Up试过网球,但是测距模块的表现不理想) 尺寸 接线 ...

机器人工坊 1万+

linux下MySQL5.5.58+nginx+tomcat8+jdk1.8环境搭建

一、网卡设置 准备:检测网络是否可以访问外网,因为会影响到yum安装方式,要是不采用yum安装可忽略。通过命令:ping baidu.com 显示如下,我本地linux测试环境可正常访问外网。 ip a 命令查看虚拟机IP ,下图所示为我本地测试环境IP 如没有IP,自行调整虚拟机连接方式。 下面是网卡未启动时的解决方案 1.虚拟机网卡未启动时 vi /etc/sy

奋斗小青年的博客 531

软件测试--用例篇(测试用例的好处、测试用例的七种设计方法、测试用例的粒度、测试用例的评价)

作为软件测试工程师,最主要的工作就是:编写测试用例,那么为什么要编写测试用例?它有什么好处?如何编写测试用例?测试用例写简单好还是复杂好?如何评价测试用例的质量? 天呐撸!能说不会吗?! 作为倾向软件测试工程师的老铁们,还是一起来学习吧! 一、编写测试用例的好处 测试用例是测试者的依据 测试用例使得工作可重复,是自动化测试的基础 补充:自动化测试的前提条件是:功能比较稳定,页面...

cherrydreamsover的博客 3734

Web——安装httpd服务(Tomcat)及Nginx+Tomcat负载均衡

文章摘要 Tomcat是一款由Apache软件基金会开发的开源轻量级Web应用服务器,支持Servlet和JSP规范,广泛应用于Java Web开发。本文详细介绍了Tomcat的安装与配置过程:包括环境准备(IP规划、关闭防火墙/SELinux)、软件包下载、解压安装Tomcat和JDK8、配置Java环境变量、启动Tomcat服务及验证访问。通过对比Apache、Nginx等主流Web服务器,突出了Tomcat在Java Web应用中的专用性优势。文中还提供了常见问题解决方案,如端口冲突时的修改方法,并附

一天不学,就浑身难受 1521

【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集

【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集

WW、forever的博客 1690

ESP32学习笔记06-UART 的485 通讯模式

通信方式选择UART 控制器支持多种通信模式,使用函数 uart_set_mode() 可以选择模式。选择特定模式后,UART 驱动程序将处理已连接 UART 设备的相应行为。例如,主机开始向 Tx FIFO 缓冲区写入数据时,UART 驱动程序会自动置位 RTS 管脚(逻辑 1);最后一位数据传输完成后,驱动程序就会取消置位 RTS 管脚(逻辑 0)。要使用此模式,软件。

Car12 2476

Linux下java环境配置(MySQL,Jdk,Tomcat,Redis,Nginx)

【代码】Linux下java环境配置(MySQL,Jdk,Tomcat,Redis,Nginx)

weixin_63869127的博客 286

【RT-DETR实战】112、NCNN模型转换与层实现支持:从模型文件到推理引擎的硬核实战

本文详细记录了将RT-DETR模型部署到NCNN框架的全过程及关键要点。作者首先遇到MultiHeadAttention等算子不支持的问题,通过ONNX中间转换和自定义层实现解决。文章具体介绍了PyTorch到NCNN的权重转换技巧、模型优化方法(包括量化和线程优化)以及调试经验,强调逐层对比输出、预处理检查和边界情况测试的重要性。最后分享了保持转换流程可复现性的实用建议,指出手动调试虽然耗时但能加深对模型的理解,体现了工程师在解决技术难题时的专业精神与成就感。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 43

linux安装apache mysql tomcat

1. 安装Apahce, PHP, MySQL以及php连接mysql库组件。 #yum -y install httpd php mysql mysql-server php-mysql 2. 安装apache扩展 #yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql 3. 安装php的扩展 #yum -y instal...

VergiL Wang的专栏 186

从零搭建:C#+YOLOv8质检系统(从相机选型到上位机部署,附完整开发流程与源码)

后来换成45°斜射的条形光源,光线从侧面打在引脚上,弯曲处会形成暗区,缺陷边缘立刻清晰——光源预算别省,我这套光源+支架才600块,比换相机划算多了。前阵子帮一家电子厂做连接器引脚缺陷检测,他们原来靠2个师傅用放大镜看,每天8小时最多检5000个,0.2mm的针脚弯曲还经常漏检,不良品流到客户那里,单月罚款就超5万。做质检第一步不是挑设备,是先明确“要检测多大的缺陷”——比如我要检的连接器引脚,直径0.5mm,允许的最大弯曲是0.2mm,这直接决定相机分辨率。,后面C#就用这个模型推理。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1271

Python入门实战:Python生物信息学编程基础

本文旨在为生物学背景的研究人员和对生物信息学感兴趣的程序员提供一个全面的Python生物信息学编程入门指南。我们将从Python基础知识开始,逐步深入到生物信息学特定的工具和技术,最终达到能够独立开发生物信息学分析程序的水平。Python编程基础生物信息学常用数据结构和算法DNA和蛋白质序列分析基因组数据处理生物信息学数据可视化Biopython库的使用实际项目案例背景介绍:概述文章目的、范围和预期读者核心概念与联系:介绍Python和生物信息学的基本概念。

AI架构师小马 1514

腾讯云服务器(centos7.4 )Nginx+php+mysql+jdk+tomcat环境搭建

 申请腾讯云服务器,个人实名认证后可以免费试用15天哦。 基于centos7.4 安装Nginx+php+mysql+jdk+tomcat  在本机使用putty终端连接云服务,并集成web环境 步骤       1.下载安装putty,putty中有很多工具 例如putty.exe 可以打开连接云服务器终端 pscp.exe 可以用来上传文件        2.打开putty.exe 出...

lemon_宁萌 1068

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

编程环境和软件工具安装手册

Linux 服务器软件安装

weixin_45541008的博客 327

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

部署nmt、部署project_exam_system项目

环境准备;部署nginx; 部署project_exam_system项目;后端业务jdk17、springboot;部署mysql;

m0_73907608的博客 2320

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Red Hat系Linux服务器从零部署Java环境:YUM安装与配置详解

在Linux系统中部署Java运行环境是后端开发和运维的基础技能。其核心原理是通过包管理器或手动安装将Java开发工具包集成到操作系统,并配置环境变量使系统能够识别和执行Java程序。掌握这项技术对于构建稳定、可维护的服务器环境至关重要,广泛应用于企业级应用部署、微服务架构和持续集成等场景。本文聚焦于Red Hat Enterprise Linux及其衍生发行版,通过YUM/DNF包管理器这一企业级标准工具,详细演示从配置Oracle官方仓库、安装JDK到设置JAVA_HOME环境变量的完整流程。该方案能自

a359798678的博客 323

自己开发一个网站

啊是大

qq_43622185的博客 702

个人博客搭建之路(b3log solo)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/79975343 我的博客地址: http://h2pl.xyz 1首先,想要搭的是b3l...

weixin_33681778的博客 649

SpringBoot校园招聘平台:智能匹配与高并发实践

现代招聘系统通过算法匹配技术解决校企信息不对称问题,其核心在于多维度的智能匹配算法(如专业、技能、薪资期望)和高效的数据处理能力。SpringBoot框架因其自动化配置和快速开发特性,成为构建此类系统的首选技术栈。结合Redis缓存优化、ShardingSphere分库策略以及Prometheus监控,能够有效应对校园招聘场景下的高并发访问和海量数据处理需求。特别是在双选会等峰值场景中,防抖设计、幂等校验等工程实践显著提升系统稳定性。这类平台不仅缩短了学生求职周期,也为企业HR提供了精准的人才筛选工具,是当

weixin_30729609的博客 296

Linux系统运维常用命令集锦

1、文件、目录操作命令(18个) ls 全拼为list,功能是列出目录的内容及其内容属性信息。 主要参数: -a:显示隐藏文件 -l:是以更详细的列表形式显示-S: 以下命令参数待不全: cd 全拼为change directory,功能是从当前工作目录切换到指定的工作目录。 cp 全拼为copy,功能为复制文件或目录。 find 查找,用于查找目录及目录下文件。 mkdir 全拼为make di...

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 3万+

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

springboot铜仁非遗之家 毕业设计----附源码76938

非物质文化遗产作为中华优秀传统文化的重要组成部分,承载着民族的历史记忆与文化基因。然而,在数字化浪潮下,许多地方非遗项目面临传播渠道狭窄、传承人断层、公众参与度不足等现实困境。铜仁地区拥有丰富的非遗资源,但缺乏系统化、智能化的展示与互动平台,难以实现有效保护与活态传承。为此,本研究旨在设计并实现一个集展示、互动、管理于一体的“铜仁非遗之家”综合信息平台,通过信息技术赋能非遗保护,提升公众认知度与参与感,为地方文化数字化建设提供可复制的技术路径与实践范式。

DZbishe的博客 149
上一篇: CentOS5.6 虚拟机安装nginx配置调试和遇到的问题
下一篇: Linux中make和makeinstall的原理
阳小良
博客等级 码龄17年 54粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值