热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

企业项目实战使用LNMP架构部署动态网站环境|搭建Discuz!论坛

前言本文使用的是用源码包安装服务程序,难度可能较大,至于为何要用源码包安装程序,说简单点就是方便自己使用吧,以及这是一门必

前言

本文使用的是用源码包安装服务程序,难度可能较大,至于为何要用源码包安装程序,说简单点就是方便自己使用吧,以及这是一门必备技能,以后在运维工作中也是会用到的!

一、源码安装服务程序步骤

1、下载 解压源码包文件

下载源码包后,相应命令解压,进入解压目录即可!

例如:
[root@allen mnt]# ls
keepalived-2.0.6.tar.gz
[root@allen mnt]# tar zxf keepalived-2.0.6.tar.gz
[root@allen mnt]# ls
keepalived-2.0.6 keepalived-2.0.6.tar.gz
[root@allen mnt]# cd keepalived-2.0.6/

2、编译源码包代码

在编译期间可以通过追加参数–prefix,指定源码包程序的安装路径,当编译结束后,如果系统环境符合安装要求,一般会在当前目录下生成一个Makefile安装文件!

例如:
[root@allen keepalived-2.0.6]# ./configure --prefix=/usr/local/LVS

3、生成二进制文件程序

使用make命令根据Makefile文件内容编译出二进制可执行文件

[root@allen keepalived-2.0.6]# make

4、运行二进制程序

如果编译时用了- -prefix参数指定安装目录,那么程序会被安装在指定目录,没有使用的话,一般会默认安装在/usr/local/bin 目录中

[root@allen keepalived-2.0.6]#make install

5、清理源码包临时文件

使用make clean 命令可以对临时文件进行彻底清理,以达到不浪费磁盘存储空间的目的

[root@allen keepalived-2.0.6]# make clean

二、LNMP 动态网站架构

LNMP = Linux + Nginx + MySQL +PHP

1、 在使用源码包安装服务程序之前,首先让主机具备编译程序源码的环境。需要具备C语言,C++语言,Perl语言的编译器,以及各种常见的编译支持函数库程序。

yum install apr* autoconf automake bison bzip2* compat* cpp curl-devel fontconfig-devel freetype* gcc gcc-c++ gd gettext-devel glibc kernel kernel-headers keyutils-libs-devel krb5-devel libcom_err-devel libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2-devel libXpm* libtifflibtiff* make mpfr ncurses* ntp openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet tllib* nasm* wget zlib-devel -y

2、下载安装LNMP动态网站部署架构的16个软件源码包1个用于检测效果的论坛网站系统软件包

通过wget命令下载:

cd /usr/local/src
wget https://www.linuxprobe.com/Software/cmake-2.8.11.2.tar.gz
wget https://www.linuxprobe.com/Software/Discuz_X3.2_SC_GBK.zip
wget https://www.linuxprobe.com/Software/freetype-2.5.3.tar.gz
wget https://www.linuxprobe.com/Software/jpegsrc.v9a.tar.gz
wget https://www.linuxprobe.com/Software/libgd-2.1.0.tar.gz
wget https://www.linuxprobe.com/Software/libmcrypt-2.5.8.tar.gz
wget https://www.linuxprobe.com/Software/libpng-1.6.12.tar.gz
wget https://www.linuxprobe.com/Software/libvpx-v1.3.0.tar.bz2
wget https://www.linuxprobe.com/Software/mysql-5.6.19.tar.gz
wget https://www.linuxprobe.com/Software/nginx-1.6.0.tar.gz
wget https://www.linuxprobe.com/Software/openssl-1.0.1h.tar.gz
wget https://www.linuxprobe.com/Software/php-5.5.14.tar.gz
wget https://www.linuxprobe.com/Software/pcre-8.35.tar.gz
wget https://www.linuxprobe.com/Software/t1lib-5.1.2.tar.gz
wget https://www.linuxprobe.com/Software/tiff-4.0.3.tar.gz
wget https://www.linuxprobe.com/Software/yasm-1.2.0.tar.gz
wget https://www.linuxprobe.com/Software/zlib-1.2.8.tar.gz

在这里插入图片描述
3、CMake是 Linux系统中一款常用的编译工具。

[root@allen src]# tar zxf cmake-2.8.11.2.tar.gz
[root@allen src]# cd cmake-2.8.11.2/
[root@allen cmake-2.8.11.2]# ./configure && make && make install

4、配置MySQL服务

MySQL数据库是当前生产环境中最常使用的关系型数据库管理系统之一,有极高的安全性和稳定性,坐拥极大的市场份额。

1)创建名为mysql的用户,专门用于负责运行MySQL数据库

切记这类用户的bash终端得设置为nologin解释器,避免黑客通过使用该用户登陆到服务器中,从而提高系统安全性!

[root@allen cmake-2.8.11.2]# cd ..
[root@allen src]# useradd -s /sbin/nologin mysql

2)创建一个目录用来保存MySQL数据库的程序和文件

[root@allen src]# mkdir -p /usr/local/mysql/var #建立目录# /usr/local/mysql/ 用来存放MySQL数据库的程序# /usr/local/mysql/var 用来保存真实数据库文件
[root@allen src]# chown -Rf mysql:mysql /usr/local/mysql/ # 将目录的所有者和所属组身份改为mysql

3)解压、编译、安装MySQL数据库服务程序

在编译数据库时使用的是CMake命令
-DCMAKE_INSTALL_PREFIX= 参数 定义数据库服务程序的保存目录
-DMYSQL_DATADIR= 参数 定义真实数据库文件的目录
-DSYSCONFDIR= 参数 定义MySQL数据库配置文件的保存目录

[root@allen src]# tar zxf mysql-5.6.19.tar.gz
[root@allen src]# cd mysql-5.6.19/
[root@allen mysql-5.6.19]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc
[root@allen mysql-5.6.19]# make && make install

4)为了让MySQL正常运行,删除默认配置文件重新生成

[root@allen mysql-5.6.19]# rm -fr /etc/my.cnf #删除/etc目录中的默认配置文件
[root@allen mysql-5.6.19]# cd /usr/local/mysql/ #进入MySQL数据库程序的保存目录
[root@allen mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var#执行/mysql_install_db脚本,并指定--user,--basedir,--datadir 参数
[root@allen mysql]# ln -s my.cnf /etc/my.cnf

5)加入service命令管理

./support-files/mysql.server 开机程序文件

[root@allen mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@allen mysql]# chmod 755 /etc/rc.d/init.d/mysqld #给执行权限

6)配置脚本文件并启动服务

[root@allen mysql]# vim /etc/rc.d/init.d/mysqld46 basedir=/usr/local/mysql # MySQL程序 的保存目录47 datadir=/usr/local/mysql/var # 真实数据库的文件内容 的保存目录[root@allen mysql]# service mysqld start #启动服务
[root@allen mysql]# chkconfig mysqld on #开机自启

7)将MySQL命令保存目录永久性定义到PATH变量中

[root@allen mysql]# vim /etc/profile #加入以下内容75 export PATH=$PATH:/usr/local/mysql/bin[root@allen mysql]# source /etc/profile #重新加载/etc/profile文件

在这里插入图片描述
8)将会调用的程序文件和函数库链接起来

[root@allen mysql]# mkdir /var/lib/mysql
[root@allen mysql]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
[root@allen mysql]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
[root@allen mysql]# ln -s /usr/local/mysql/include/mysql /usr/include/mysql

9)对MySQL数据库进行初始化

一直回车就行

[root@allen mysql]# mysql_secure_installation

5、配置Nginx服务

Nginx是一个高性能的HTTP和反向代理web服务器,是一款相当优秀的用于部署动态网站的轻量级服务程序。因稳定功能丰富(Web、反向代理、负载均衡)占用内存少并发能力强而被广泛运用!

1)解决相关软件依赖(pcre,openssl,zlib)

pcre:提供perl语言兼容的正则表达式库

[root@allen mysql]# cd /usr/local/src/
[root@allen src]# tar zxf pcre-8.35.tar.gz
[root@allen src]# cd pcre-8.35/
[root@allen pcre-8.35]# ./configure --prefix=/usr/local/pcre && make && make install

openssl:用于提供网站加密证书服务

[root@allen pcre-8.35]# cd ..
[root@allen src]# tar zxf openssl-1.0.1h.tar.gz
[root@allen src]# cd openssl-1.0.1h/
[root@allen openssl-1.0.1h]# ./config --prefix=/usr/local/openssl && make && make install

openssl软件包安装之后,会在/usr/local/openssl/bin/目录中提供很多可用的命令、将这个目录加入PATH环境变量中

[root@allen openssl-1.0.1h]# vim /etc/profile75 export PATH=$PATH:/usr/local/mysql/bin:/usr/local/openssl/bin/
[root@allen openssl-1.0.1h]# source /etc/profile

在这里插入图片描述

zlib:提供压缩功能

[root@allen openssl-1.0.1h]# cd ..
[root@allen src]# tar zxf zlib-1.2.8.tar.gz
[root@allen src]# cd zlib-1.2.8/
[root@allen zlib-1.2.8]# ./configure --prefix=/usr/local/zlib && make && make install

2、创建一个用于执行Nginx服务程序的账户(可自定义)

[root@allen zlib-1.2.8]# useradd -s /sbin/nologin www

3、编译安装Nginx

[root@allen zlib-1.2.8]# cd ..
[root@allen src]# tar zxf nginx-1.6.0.tar.gz
[root@allen src]# cd nginx-1.6.0/
[root@allen nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35 && make && make install

4、将Nginx服务加入到开机启动项中

[root@allen nginx-1.6.0]# vim /etc/rc.d/init.d/nginx
#!/bin/bash
# nginx - this script starts and stops the nginx daemon
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`if [ -z "`grep $user /etc/passwd`" ]; thenuseradd -M -s /bin/nologin $userfi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; doif [ `echo $opt | grep '.*-temp-path'` ]; thenvalue=`echo $opt | cut -d "=" -f 2`if [ ! -d "$value" ]; then# echo "creating" $valuemkdir -p $value && chown -R $user $valuefifi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)rh_status_q && exit 0$1;;
stop)rh_status_q || exit 0$1;;
restart|configtest)
$1
;;
reload)rh_status_q || exit 7$1;;
force-reload)force_reload;;
status)rh_status;;
condrestart|try-restart)rh_status_q || exit 0;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac[root@allen nginx-1.6.0]# chmod 775 /etc/rc.d/init.d/nginx

5、启动服务

[root@allen nginx-1.6.0]# /etc/rc.d/init.d/nginx start
[root@allen nginx-1.6.0]# chkconfig nginx on #开机自启

6、测试

浏览器访问服务器IP

在这里插入图片描述

6、配置PHP服务

PHP(Hypertxt Preprocessor,超文本预处理器)是一种通用的开源脚本语言,具有开源免费快捷跨平台性强效率高等优良特点,是目前Web开发领域最常用的语言之一。

1、先安装部署将近十个用于搭建网站页面的软件程序包

yasm:常见的开源汇编器

[root@allen ~]# cd /usr/local/src/
[root@allen src]# tar zxf yasm-1.2.0.tar.gz
[root@allen src]# cd yasm-1.2.0/
[root@allen yasm-1.2.0]# ./configure && make && make install

libmcrypt:用于加密算法的扩展库程序

[root@allen yasm-1.2.0]# cd ..
[root@allen src]# tar zxf libmcrypt-2.5.8.tar.gz
[root@allen src]# cd libmcrypt-2.5.8/
[root@allen libmcrypt-2.5.8]# ./configure && make && make install

libvpx:提供视频编码器的服务程序

[root@allen src]# tar jxf libvpx-v1.3.0.tar.bz2
[root@allen src]# cd libvpx-v1.3.0/
[root@allen libvpx-v1.3.0]# ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9 && make && make install

tiff:用于提供标签图像文件格式的服务程序

[root@allen libvpx-v1.3.0]# cd ..
[root@allen src]# tar zxf tiff-4.0.3.tar.gz
[root@allen src]# cd tiff-4.0.3/
[root@allen tiff-4.0.3]# ./configure --prefix=/usr/local/tiff --enable-shared && make && make install

libpng:提供png图片格式支持函数库的服务程序

[root@allen tiff-4.0.3]# cd ..
[root@allen src]# tar zxf libpng-1.6.12.tar.gz
[root@allen src]# cd libpng-1.6.12/
[root@allen libpng-1.6.12]# ./configure --prefix=/usr/local/libpng --enable-shared && make && make install

freetype:提供字体支持引擎的服务程序

[root@allen libpng-1.6.12]# cd ..
[root@allen src]# tar zxf freetype-2.5.3.tar.gz
[root@allen src]# cd freetype-2.5.3/
[root@allen freetype-2.5.3]# ./configure --prefix=/usr/local/freetype --enable-shared && make && make install

jpeg:提供jpeg图片格式支持函数库的服务程序

[root@allen freetype-2.5.3]# cd ..
[root@allen src]# tar zxf jpegsrc.v9a.tar.gz
[root@allen src]# cd jpeg-9a/
[root@allen jpeg-9a]# ./configure --prefix=/usr/local/jpeg --enable-shared && make && make install

libgd:提供图片处理的服务程序

[root@allen jpeg-9a]# cd ..
[root@allen src]# tar zxf libgd-2.1.0.tar.gz
[root@allen src]# cd libgd-2.1.0/
[root@allen libgd-2.1.0]# ./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/ --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx && make && make install

t1lib:提供图片生成函数库的服务程序

  • 安装后将/usr/lib64 目录中的函数文件链接到/usr/lib 目录中,以便系统能顺利调取到函数文件

[root@allen libgd-2.1.0]# cd ..
[root@allen src]# tar zxf t1lib-5.1.2.tar.gz
[root@allen src]# cd t1lib-5.1.2/
[root@allen t1lib-5.1.2]# ./configure --prefix=/usr/local/t1lib --enable-shared && make && make install [root@allen t1lib-5.1.2]# ln -s /usr/lib64/libltdl.so /usr/lib/libltdl.so
[root@allen t1lib-5.1.2]# ln -s /usr/lib64/libXpm.so* /usr/lib/

2、编译、安装php

依次定义配置php服务程序配置文件的保存目录、MySQL数据库服务程序所在目录、MySQL数据库服务程序配置文件所在目录,以及libpng、jpeg、freetype、libvpx、zlib、t1lib等服务程序的安装目录路径,并通过参数启动php服务程序的诸多默认功能

[root@allen t1lib-5.1.2]# cd ..
[root@allen src]# tar zxf php-5.5.14.tar.gz
[root@allen src]# cd php-5.5.14/
[root@allen php-5.5.14]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype
[root@allen php-5.5.14]# make && make install

3、php.ini 和 php-fpm.conf 文件的处理

[root@allen php-5.5.14]# rm -fr /etc/php.ini
[root@allen php-5.5.14]# cp php.ini-production /usr/local/php/etc/php.ini
[root@allen php-5.5.14]# ln -s /usr/local/php/etc/php.ini /etc/php.ini
[root@allen php-5.5.14]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@allen php-5.5.14]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf

4、php-fpm.conf 文件配置

[root@allen php-5.5.14]# vim /etc/php-fpm.conf #制作的软链接25 pid = run/php-fpm.pid148 user = www #和nginx用户相同149 group = www

5、将管理PHP服务的脚本文件复制到/etc/rc.d/init.d目录中

  • 赋予775权限,即可用命令控制

[root@allen php-5.5.14]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@allen php-5.5.14]# chmod 775 /etc/rc.d/init.d/php-fpm
[root@allen php-5.5.14]# chkconfig php-fpm on

6、编辑php.ini配置文件,在305行的disable_functions参数后面追加上要禁止的功能

[root@allen php-5.5.14]# vim /etc/php.ini
305 disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restor e,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,g etservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,po six_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_ getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_ setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

7、最后配置nginx

[root@allen conf]# ln -s /usr/local/nginx/conf/nginx.conf /etc/nginx.conf
[root@allen conf]# vim /etc/nginx.conf 2 user www www;45 index index.html index.htm index.php;65 location ~ \.php$ {66 root html;67 fastcgi_pass 127.0.0.1:9000;68 fastcgi_index index.php;69 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_na me;70 include fastcgi_params;71 }[root@allen conf]# systemctl restart nginx
[root@allen conf]# systemctl restart php-f

  • 至此,LNMP动态网络架构配置实验全部结束

三、搭建Discuz!论坛

为了检验LNMP动态网站环境是否配置妥当,可以使用在上面部署Discuz!系统,然后查看结果。如果能够在LNMP动态网站环境中成功安装使用Discuz!论坛系统,也就意味着这套架构是可用的。Discuz! X3.2是国内最常见的社区论坛系统,在经过十多年的研发后已经成为了全球成熟度最高、覆盖率最广的论坛网站系统之一。

1、将解包的全部文件移至Nginx默认发布目录

[root@allen conf]# cd /usr/local/src/
[root@allen src]# unzip Discuz_X3.2_SC_GBK.zip
[root@allen src]# rm -fr /usr/local/nginx/html/{index.html,50x.html}*
[root@allen src]# mv upload/* /usr/local/nginx/html/
[root@allen src]# chown -Rf www:www /usr/local/nginx/html/
[root@allen src]# chmod -Rf 775 /usr/local/nginx/html/

2、浏览器访问服务器IP

点我同意
在这里插入图片描述
3、没问题当前状态都是可写

如果为不可写,请自行检查目录的所有者和所属组是否为www用户,以及是否对目录设置了755权限,然后单击“下一步”按钮。

在这里插入图片描述
在这里插入图片描述
4、如图,点击下一步
在这里插入图片描述

5、根据提示填,特别是数据库密码

管理员信息,没有特殊要求,自定义

在这里插入图片描述
6、跟着提示点击
在这里插入图片描述
在这里插入图片描述

这就是论坛首页
在这里插入图片描述


推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • FastDFS Nginx 扩展模块的源代码解析与技术剖析
    FastDFS Nginx 扩展模块的源代码解析与技术剖析 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 本文探讨了在不解压的情况下,如何高效地从包含文本文件的.gz压缩文件中查找特定字符串的方法。通过利用特定的工具和技术,可以在保持文件压缩状态的同时,快速定位和检索所需信息,提高处理大规模数据集时的效率和性能。 ... [详细]
  • 对于以压缩包形式发布的软件,其目录中通常包含一个配置脚本 `configure`。该脚本的主要功能是确定编译所需的各项参数,如头文件的位置和链接库的路径,并生成相应的 `Makefile` 以供编译使用。通过运行此脚本,开发者可以确保软件在不同环境下的正确编译与安装。此外,该脚本还能够检测系统依赖项,进一步提高编译过程的可靠性和兼容性。 ... [详细]
  • Linux下Google Test (GTest)测试环境搭建步骤
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • [转]Makefile 使用总结
    2019独角兽企业重金招聘Python工程师标准1.Makefile简介Makefile是和make命令一起配合使用的.很多大型项目的编译都是通过Makefile来组织的,如 ... [详细]
  • Linux负载均衡LVS(IPVS)
    一、LVS简介LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在已经是Linux ... [详细]
author-avatar
徐青乔府_631
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有