从头开始安装vpbx

1、安装Ubuntu18.04系统

进入root用户,(后续操作都需要在root用户中)

su root

2、下载ubuntu系统中常用的基础软件

openssh-server、vim、net-tools

sudo apt-get install -y openssh-server vim net-tools

3、下载freeswitch编译和运行的编译环境

apt-get update 
sudo apt install --yes build-essential pkg-config uuid-dev zlib1g-dev libjpeg-dev libsqlite3-dev libcurl4-openssl-dev libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libtiff5-dev yasm libopus-dev libsndfile1-dev unzip libavformat-dev libswscale-dev libavresample-dev liblua5.2-dev liblua5.2 cmake libpq-dev unixodbc-dev autoconf automake ntpdate libxml2-dev libpq-dev libpq5 sngrep git libmp3lame-dev libshout3-dev libmpg123-dev sqlite3

4、传输编译vpbx所需的软件

软件包包含的内容如下图所示:

在这里插入图片描述

4.1 编译安装fcgi

tar -zvxf fcgi-2.4.1-SNAP.tar.gz
cd fcgi-2.4.1-SNAP
./configure
make 
make install
cd ..

4.2 编译安装openssl1.1.1

tar -zvxf openssl-1.1.1t.tar.gz
cd openssl-1.1.1t
./config
make
make install
cd ..

4.3 编译安装spawn-fcgi

tar -zvxf spawn-fcgi-1.6.4.tar.gz
 cd spawn-fcgi-1.6.4/
./configure
make
make install
cd ..

4.4 编译安装libxml

tar -zvxf libxml2-2.9.10.tar.gz
cd libxml2-2.9.10/
./configure
make
make install
cd ..

4.5 编译安装zlib

tar -zvxf zlib-1.2.11.tar.gz
 cd zlib-1.2.11/
./configure
make
make install
cd ..

4.6 编译安装pcre

tar -zvxf pcre2-10.32.tar.gz
cd pcre2-10.32/
./configure
make
make install
cd ..

4.7 编译安装nginx

4.7.1 编译nginx的基础环境

tar -zvxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure
make
make install
cd ..

4.7.2 更换nginx.conf配置文件

vim /usr/local/nginx/conf/nginx.conf
4.7.2.1 呼叫中心项目配置文件
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

	#vpbx-cgiweb界面
    server {
        listen       80;
        server_name  localhost;

        location / {
            root   /var/www/vpbx;
            index  login.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

	location ~ ^/vpbx\.cgi$ {
	    root 	   /var/www/vpbx;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  login.html;
            include        fastcgi.conf;
        }
	location /xml {
	    root           /var/www/vpbx;
	    fastcgi_pass   127.0.0.1:9000;
	    fastcgi_index  login.html;
	    include        fastcgi.conf;
	}
	location /record {
		alias /usr/local/freeswitch/recordings/;
		index index.html;   
		autoindex on;
		autoindex_exact_size off;
	}
    }
    #呼叫中心web界面
    server {
        listen       8888;
        server_name  localhost;

        location / {
            root   /var/www/callcenter/dist;
            index  index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

4.7.2.2 监狱项目配置文件

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

	server	{
		listen	8090;
		server_name	127.0.0.1;
		location / {
			root	/var/www/dist;
			index	index.html	index.html;
		}
	}


    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
	location / {
            root   /var/www/vpbx;
            index  login.html;
	}

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

	location ~ ^/vpbx\.cgi$ {
	    root 	   /var/www/vpbx;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  login.html;
            include        fastcgi.conf;
        }
	location /xml {
	    root           /var/www/vpbx;
	    fastcgi_pass   127.0.0.1:9000;
	    fastcgi_index  login.html;
	    include        fastcgi.conf;
	}
	location /record {
		alias /usr/local/freeswitch/recordings/;
		index index.html;   
		autoindex on;
		autoindex_exact_size off;
	}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

}

4.8 安装Redis

4.8.1 安装Redis基本环境

tar -zvxf redis-4.0.11.tar.gz
mv redis-4.0.11 redis
cd /usr/local/src/redis/
make &make install
cd ..

4.8.2 设置Redis开机自启动

4.8.2.1 创建配置文件夹
mkdir /etc/redis/
cp /usr/local/src/redis/redis.conf /etc/redis
cp /etc/redis/redis.conf /etc/redis/6379.conf
4.8.2.2 使用启动脚本
cat /usr/local/src/redis/utils/redis_init_script
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

4.8.2.3 将启动脚本复制到/etc/init.d目录下,命名为redisd
cp -r /usr/local/src/redis/utils/redis_init_script /etc/init.d
mv /etc/init.d/redis_init_script /etc/init.d/redisd
4.8.2.4 注册开启服务
update-rc.d redisd defaults

4.9 安装hiredis

1、打开hosts文件

sudo vim /etc/hosts

2、在添加github.com域名(localhost下添加即可)

140.82.114.4    github.com
git clone https://github.com/redis/hiredis.git/ /usr/local/src/hiredis
cd /usr/local/src/hiredis
make & make install
cd ..

4.9 安装Freeswitch所需的数据库环境

4.9.1 安装MySQL-server-5.7

apt-get install -y mysql-server-5.7
mysql -u root -p
Enter password:
#直接单击回车,即可进入MySQL

修改MYSQL密码为hctel,并修改root用户的权限

use mysql;
update user set plugin='mysql_native_password' where user='root';
#修改root用户密码为hctel
update user set authentication_string=PASSWORD('hctel') where user='root';
update user set host = '%' where user = 'root';
flush privileges;
quit;

重启MYSQL验证密码是否生效

mysql -u root -p
Enter password:
#输入密码hctel,即可进入MySQL

关闭MYSQL的远程关闭连接限制

vim /etc/mysql/mysql.conf.d/mysqld.cnf
#修改bind-address为        0.0.0.0

#重启mysql服务
service mysql restart

4.9.2 创建freeswitch数据库

数据库名freeswitch、字符集utf8mb4、排序规则默认
在这里插入图片描述

指定freeswitch.sql文件

在这里插入图片描述
点击开始
在这里插入图片描述

执行成功

在这里插入图片描述

4.9.3 配置odbc-mysql环境

官网地址: https://downloads.mysql.com/archives/c-odbc/

解压并重命名为mysql

tar -zvxf mysql-connector-odbc-5.3.12-linux-ubuntu18.04-x86-64bit.tar.gz
mv mysql-connector-odbc-5.3.12-linux-ubuntu18.04-x86-64bit mysql

复制lib的相关配置文件复制到lib和lib64文件夹下

cp -r mysql/lib/* /usr/lib/
mkdir /usr/lib64
cp -r mysql/lib/* /usr/lib64

修改ODBC的配置文件

vim /etc/odbc.ini
[freeswitch]
Driver = MYSQL
Description = connection to MYSQL
Server = 192.168.11.137
Host = 192.168.11.137
Port = 3306
Database = freeswitch
CHARSET = UTF8
User = root
Password = hctel
SSLMODE = DISABLED
vim /etc/odbcinst.ini
[MYSQL]
Description             = ODBC for Mysql
Driver                  = /usr/lib/libmyodbc5a.so
Setup                   = /usr/lib/libmyodbc5s.so
Driver64                = /usr/lib64/libmyodbc5a.so
Setup64                 = /usr/lib64/libmyodbc5s.so
FileUsage               = 1

下载安装unixodbc

apt install unixodbc

测试连通性

isql -v freeswitch

在这里插入图片描述

5、编译Freeswitch

5.1 安装前置环境和相关依赖

提示:如若遇到Failed to connect to github.com port 443: 连接超时错误,解决方法如下

sudo vim /etc/hosts

选择一个进行配置

140.82.113.3    github.com
140.82.114.4    github.com

5.1.1 安装libks2

git clone https://github.com/signalwire/libks.git /usr/local/src/libks
cd /usr/local/src/libks
cmake .
make && make install
cd ..

验证libks是否安装成功

 ldconfig && ldconfig -p | grep libks

打印返回

        libks2.so.2 (libc6,x86-64) => /usr/lib/libks2.so.2
        libks2.so (libc6,x86-64) => /usr/lib/libks2.so
        libksba.so.8 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libksba.so.8

5.1.2 安装signalwire

git clone https://github.com/signalwire/signalwire-c.git /usr/local/src/signalwire-c
cd /usr/local/src/signalwire-c
cmake .
make && make install
cd ..

验证signalwire是否安装成功

ldconfig && ldconfig -p | grep signalwire

打印返回

        libsignalwire_client2.so.2 (libc6,x86-64) => /usr/local/lib/libsignalwire_client2.so.2
        libsignalwire_client2.so (libc6,x86-64) => /usr/local/lib/libsignalwire_client2.so

5.1.3 安装Sofia-Sip

git clone https://github.com/freeswitch/sofia-sip /usr/local/src/sofia-sip
 cd /usr/local/src/sofia-sip
./bootstrap.sh 
./configure
make && make install
cd ..

验证Sofia-SIp是否安装成功

ldconfig && ldconfig -p | grep sofia

打印返回

        libsofia-sip-ua.so.0 (libc6,x86-64) => /usr/local/lib/libsofia-sip-ua.so.0
        libsofia-sip-ua.so (libc6,x86-64) => /usr/local/lib/libsofia-sip-ua.so
        libsofia-sip-ua-glib.so.3 (libc6,x86-64) => /usr/local/lib/libsofia-sip-ua-glib.so.3
        libsofia-sip-ua-glib.so (libc6,x86-64) => /usr/local/lib/libsofia-sip-ua-glib.so

5.1.4 安装SpanDSP

git clone https://github.com/freeswitch/spandsp /usr/local/src/spandsp

直接编译报错
在这里插入图片描述

切换版本

cd spandsp
git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4

编译安装

 cd /usr/local/src/spandsp
./bootstrap.sh -j
./configure
make && make install
cd ..
ldconfig 

验证SpanDSP是否安装成功

ldconfig -p | grep spandsp

打印返回

        libspandsp.so.3 (libc6,x86-64) => /usr/local/lib/libspandsp.so.3
        libspandsp.so (libc6,x86-64) => /usr/local/lib/libspandsp.so

5.2 安装FreeSwitch

5.2.1 安装Freeswitch本体

wget -c https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.8.-release.tar.gz -P /usr/local/src

若报错
错误: 无法验证 files.freeswitch.org 的由 “CN=ZeroSSL RSA Domain Secure Site CA,O=ZeroSSL,C=AT” 颁发的证书:
无法本地校验颁发者的权限。
使用:

wget --no-check-certificate https://files.freeswitch.org/releases/freeswitch/freeswitch-1.10.8.-release.tar.gz -P /usr/local/src
tar -zvxf freeswitch-1.10.8.-release.tar.gz
mv freeswitch-1.10.8.-release freeswitch
cd /usr/local/src/freeswitch/

5.2.2 修改模块配置文件

vim modules.conf

modules.conf

#applications/mod_abstraction
applications/mod_av
#applications/mod_avmd
#applications/mod_bert
#applications/mod_blacklist
#applications/mod_callcenter
#applications/mod_cidlookup
#applications/mod_cluechoo
applications/mod_commands
applications/mod_conference
applications/mod_curl
#applications/mod_cv
applications/mod_db
#applications/mod_directory
#applications/mod_distributor
applications/mod_dptools
#applications/mod_easyroute
applications/mod_enum
applications/mod_esf
applications/mod_esl
applications/mod_expr
applications/mod_fifo
#applications/mod_fsk
applications/mod_fsv
applications/mod_hash
#applications/mod_hiredis
#applications/mod_httapi
applications/mod_http_cache
#applications/mod_ladspa
#applications/mod_lcr
#applications/mod_memcache
#applications/mod_mongo
#applications/mod_mp4
#applications/mod_mp4v2
#applications/mod_nibblebill
#applications/mod_oreka
#applications/mod_osp
#applications/mod_prefix
#applications/mod_rad_auth
#applications/mod_redis
#applications/mod_rss
#applications/mod_signalwire
applications/mod_sms
#applications/mod_sms_flowroute
#applications/mod_snapshot
#applications/mod_snom
#applications/mod_sonar
#applications/mod_soundtouch
applications/mod_spandsp
#applications/mod_spy
#applications/mod_stress
applications/mod_test
#applications/mod_translate
applications/mod_valet_parking
#applications/mod_video_filter
#applications/mod_vmd
applications/mod_voicemail
#applications/mod_voicemail_ivr
#asr_tts/mod_cepstral
#asr_tts/mod_flite
#asr_tts/mod_pocketsphinx
#asr_tts/mod_tts_commandline
codecs/mod_amr
#codecs/mod_amrwb
codecs/mod_b64
#codecs/mod_bv
#codecs/mod_clearmode
#codecs/mod_codec2
#codecs/mod_com_g729
#codecs/mod_dahdi_codec
codecs/mod_g723_1
codecs/mod_g729
codecs/mod_h26x
#codecs/mod_ilbc
#codecs/mod_isac
#codecs/mod_mp4v
codecs/mod_opus
#codecs/mod_sangoma_codec
#codecs/mod_silk
#codecs/mod_siren
#codecs/mod_theora
#databases/mod_mariadb
databases/mod_pgsql
dialplans/mod_dialplan_asterisk
#dialplans/mod_dialplan_directory
dialplans/mod_dialplan_xml
#directories/mod_ldap
#endpoints/mod_alsa
#endpoints/mod_gsmopen
#endpoints/mod_h323
#endpoints/mod_khomp
endpoints/mod_loopback
#endpoints/mod_opal
#endpoints/mod_portaudio
endpoints/mod_rtc
#endpoints/mod_rtmp
endpoints/mod_skinny
endpoints/mod_sofia
#endpoints/mod_verto
#event_handlers/mod_amqp
event_handlers/mod_cdr_csv
#event_handlers/mod_cdr_mongodb
#event_handlers/mod_cdr_pg_csv
event_handlers/mod_cdr_sqlite
#event_handlers/mod_erlang_event
#event_handlers/mod_event_multicast
event_handlers/mod_event_socket
#event_handlers/mod_fail2ban
#event_handlers/mod_format_cdr
#event_handlers/mod_json_cdr
#event_handlers/mod_radius_cdr
#event_handlers/mod_odbc_cdr
#event_handlers/mod_kazoo
#event_handlers/mod_rayo
#event_handlers/mod_smpp
#event_handlers/mod_snmp
#event_handlers/mod_event_zmq
#formats/mod_imagick
formats/mod_local_stream
formats/mod_native_file
formats/mod_png
#formats/mod_portaudio_stream
#formats/mod_shell_stream
#formats/mod_shout
formats/mod_sndfile
#formats/mod_ssml
formats/mod_tone_stream
#formats/mod_vlc
#formats/mod_opusfile
#languages/mod_basic
#languages/mod_java
languages/mod_lua
#languages/mod_managed
#languages/mod_perl
#languages/mod_python
#languages/mod_python3
#languages/mod_v8
#languages/mod_yaml
loggers/mod_console
#loggers/mod_graylog2
loggers/mod_logfile
loggers/mod_syslog
#loggers/mod_raven
#say/mod_say_de
say/mod_say_en
#say/mod_say_es
#say/mod_say_es_ar
#say/mod_say_fa
#say/mod_say_fr
#say/mod_say_he
#say/mod_say_hr
#say/mod_say_hu
#say/mod_say_it
#say/mod_say_ja
#say/mod_say_nl
#say/mod_say_pl
#say/mod_say_pt
#say/mod_say_ru
#say/mod_say_sv
#say/mod_say_th
say/mod_say_zh
#timers/mod_posix_timer
#timers/mod_timerfd
xml_int/mod_xml_cdr
#xml_int/mod_xml_curl
#xml_int/mod_xml_ldap
#xml_int/mod_xml_radius
xml_int/mod_xml_rpc
xml_int/mod_xml_scgi

#mod_freetdm|https://github.com/freeswitch/freetdm.git -b master

## Experimental Modules (don't cry if they're broken)
#../../contrib/mod/xml_int/mod_xml_odbc

修改完成后,执行配置和编译工作

./rebootstrap.sh
./configure

make & make install
cd /usr/local/freeswitch

5.2.3 创建软连接

ln -s /usr/local/freeswitch/conf /etc/freeswitch 
ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli 
ln -s /usr/local/freeswitch/bin/freeswitch /usr/sbin/freeswitch

5.2.4 设置开机自启动

创建并修改/etc/systemd/system/freeswitch.service

vim /etc/systemd/system/freeswitch.service
[Unit] 
Description=FreeSWITCH open source softswitch 
Wants=network-online.target Requires=network.target local-fs.target 
After=network.target network-online.target local-fs.target 

[Service] 
; service 
Type=forking 
PIDFile=/usr/local/freeswitch/run/freeswitch.pid 
Environment="DAEMON_OPTS=-nonat" 
Environment="USER=freeswitch" 
Environment="GROUP=freeswitch" 
EnvironmentFile=-/etc/default/freeswitch 
ExecStartPre=/bin/chown -R ${USER}:${GROUP} /usr/local/freeswitch 
ExecStart=/usr/local/freeswitch/bin/freeswitch -u ${USER} -g ${GROUP} -ncwait ${DAEMON_OPTS} 
TimeoutSec=45s 
Restart=always 

[Install] 
WantedBy=multi-user.target

重启daemon-reload

systemctl daemon-reload

开启Freeswitch服务

systemctl start freeswitch

查看Freeswitch服务状态

 systemctl status freeswitch

5.2.5 安装ESL安装环境编译VPBX

cd /usr/local/src/freeswitch/libs/esl/
make & make install

5.2.6 修改安装版FreeSwitch的配置文件

将conf文件夹下的文件复制到/usr/local/freeswitch/conf/路径下

5.2.7 修改Freeswitch的主配置文件vars.xml

vim /usr/local/freeswitch/conf/vars.xml

修改为对应的IP地址

6、编译Vpbx-cgi的Web界面和Vpbx的相关代码

6.1 解压

tar -zxvf vpbx.tar.gz

6.2 编译vpbx-cgi

cd /usr/local/src/vpbx/vpbxcgi
make & make install
cd /usr/local/src

6.3 编译vpbx

cd /usr/local/src/vpbx/fs_mod/mod_event_local
make &make install
cd /usr/local/src

6.4 复制vpbx前端html页面

tar -zvxf ivx1000b-ubuntu.tar.gz
cd ivx1000b/
cp -r vpbx/ /var/www/

6.4、启动Freeswitch进行测试

freeswitch

开启Freeswitch服务

systemctl start freeswitch

查看Freeswitch服务状态

 systemctl status freeswitch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/471209.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MNN Session 创建执行器(六)

系列文章目录 MNN createFromBuffer(一) MNN createRuntime(二) MNN createSession 之 Schedule(三) MNN createSession 之创建流水线后端(四) MNN Session::resize 之流水线编码&am…

FMEA的实施步骤与注意事项——FMEA软件

免费试用FMEA软件-免费版-SunFMEA FMEA,即故障模式与影响分析(Failure Modes and Effects Analysis),是一种预防性的质量工具,广泛应用于产品设计、制造和服务过程中,以识别潜在的故障模式,评估…

【黑马头条】-day01环境搭建SpringBoot-Cloud-Nacos

文章目录 1 环境搭建及简介2 项目介绍2.1 应用2.2 业务说明2.3 技术栈2.4 收获2.5 大纲 3 Nacos准备3.1 安装Nacos 4 初始工程搭建4.1 环境准备4.1.1 导入项目4.1.2 设置本地仓库4.1.3 设置项目编码格式 4.2 全局异常4.2.1 自动装配 4.3 工程主体结构 5 登录功能开发5.1 需求分…

算法---二分查找练习-3(山脉数组的顶峰索引)

山脉数组的顶峰索引 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;点这里 2. 讲解算法原理 初始化两个指针 left 和 right&#xff0c;分别指向数组的起始位置和结束位置。 进入循环&#xff0c;循环条件为 left < right。 在每次循环中&…

极客早报第3期:罗斯否认插足凯特王妃婚姻;清明放假调休3天;国产伟哥去年销售近13亿

一分钟速览新闻点&#xff01; 每日简报 罗斯否认插足凯特王妃婚姻清明放假调休3天国产伟哥去年销售近13亿男子持台球杆殴打2名女店员被抓今日春分淀粉肠小王子带货日销售额涨超10倍[高中生被打伤下体休学 邯郸通报](https://www.baidu.com/s?wd高中生被打伤下体休学 邯郸通报…

Android Studio实现内容丰富的安卓视频管理平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号081 1. 开发环境 android stuido 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.本地视频 3.视频播放 4.收藏功能 5.网路视频 6.个人中心 7.我的收藏 8.浏览历史 3.系…

安防监控平台EasyCVR使用管理员权限登录后,平台菜单栏显示不全是什么原因?

安防视频监控系统EasyCVR视频综合管理平台&#xff0c;采用了开放式的网络结构&#xff0c;平台能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有…

简述Cookie、Session、JWT三者特点

三者的目的都是为了维持前端页面的登录状态。 Cookies 实现流程&#xff1a; 优点&#xff1a; 存储在客户端 帮助在客户端和服务端之间维护状态信息 缺点&#xff1a; 安全风险&#xff1a;因为存储在客户端&#xff0c;有被串改的风险 容量限制&#xff1a;4KB 可用限制…

挑战设计极限!电路仿真软件成功案例大揭秘,助您圆梦创新之路

在电子设计领域&#xff0c;电路仿真软件扮演着至关重要的角色。它们不仅能够帮助工程师们模拟和分析电路的性能&#xff0c;还能够加速设计过程&#xff0c;降低成本&#xff0c;提高产品的质量和可靠性。今天&#xff0c;让我们一起挑战设计极限&#xff0c;揭秘电路仿真软件…

最新955不加班的神仙公司名单,收藏起来慢慢看!

今天给大家介绍一个Github上神奇的项目-955.WLB&#xff0c;目前已经有33.8k个star。 这里的955指的是工作作息时间&#xff0c;早九晚五&#xff0c;每周五天&#xff1b;而 WLB 是英文 Work Life Balance 的缩写&#xff0c;意为工作生活平衡。 简简单单六个字母&#xff0c…

Linux--Ubuntu安装

Linux操作系统时程序员必须要学的操作系统。接下来我们就来看一下Linux操作系统是如何安装的 我们在 Vmware 虚拟机中安装 linux 系统&#xff0c;所以需要先安装 vmware 软件&#xff0c;然后再 安装 Linux 系统。 一.所需安装文件&#xff1a; Vmware 下载地址(现在最新版的…

vulhub中fastjson 1.2.24 反序列化导致任意命令执行漏洞复现

fastjson在解析json的过程中&#xff0c;支持使用autoType来实例化某一个具体的类&#xff0c;并调用该类的set/get方法来访问属性。通过查找代码中相关的方法&#xff0c;即可构造出一些恶意利用链。 环境运行后&#xff0c;访问http://your-ip:8090即可看到JSON格式的输出。 …

Maven 环境一键部署

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

Linux发布项目(包括前端和后端)到OpenEuler虚拟机上

后端&#xff1a;SpringBoot 前端&#xff1a;VUE3 操作系统&#xff1a;Linux 虚拟机&#xff1a;OpenEuler 发布项目是需要关闭虚拟机上的防火墙 systemctl stop firewalld 一、发布后端项目到虚拟机 1打包后端项目为jar包 2将打包后的jar包放到虚拟机 /opt 目录下 3 运行项…

【开发环境搭建篇】IDEA安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

Spring Boot:筑基

Spring Boot 前言概述使用 Intellij idea 快速创建 Spring Boot 项目注意事项 前言 在学习 Spring 、SpringMVC 、MyBatis 和 JPA 框架的过程中&#xff0c;了解到 SSM 框架为 Java Web 开发提供了强大的后端支持&#xff0c;JPA 框架则简化了数据库的操作。然而&#xff0c;S…

免费分享一套SpringBoot+Vue大学新生报到管理系统,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue大学新生报到管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue大学新生报到管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue大学新生报到管理系统 Java毕…

2旧版本navicat更换颜色/护眼背景(利用regedit注册表编辑器 )

2navicat默认的背景颜色是白色的&#xff0c;新版本可以如图直接在工具选项里面设置&#xff0c;可以先检查一下&#xff0c;如果没有相关设置&#xff0c;如果没有再往后看解决方法 另外&#xff0c;还可以安装其他护眼软件&#xff0c;但 若是设置里没有这个选项&#xff0c;…

C语言经典算法-9

文章目录 其他经典例题跳转链接46.稀疏矩阵47.多维矩阵转一维矩阵48.上三角、下三角、对称矩阵49.奇数魔方阵50.4N 魔方阵51.2(2N1) 魔方阵 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. 三色棋 5. 老鼠走迷官&#xff08;一&#xff09;6.…

RAPTOR:树结构的索引和检索系统的递归抽象处理

论文地址&#xff1a;https://arxiv.org/pdf/2401.18059.pdf 摘 要 增强型检索语言模型能够更好地适应世界状态的变化&#xff0c;并整合长尾知识&#xff0c;然而现有大多数方法仅能从检索语料库中检索到较短的连续文本片段&#xff0c;这限制了对整个文档上下文的整体理解。…