《Linux就该这么学》培训笔记_ch20使用LNMP架构部署动态网站环境

文章最后会post上书本的笔记照片。

文章主要内容

源码包程序

在RPM和Yum出现之前,只能通过源码包的方式来安装各种服务程序,在安装、升级、卸载程序时还要考虑到与其他程序或函数库的相互依赖关系,十分繁琐。

目前依然有很多软件程序只有源码包的形式,通过源码包的方式安装服务程序具有以下优势:

  • 源码包的可移植性非常好,几乎可以在任何Linux系统中安装使用(RPM软件包是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能顺利安装);
  • 使用源码包安装服务程序时会有一个编译过程,因此可以更好地适应安装主机的系统环境,运行效率和优化程度都会强于使用RPM软件包安装的服务程序。

一般来讲,安装软件的方式:Yum最优先,RPM次之,源码包保底。

使用源码包安装服务程序的步骤:

  1. 下载及解压源码包文件(wget、tar);
  2. 编译源码包代码(./configure、./config);
  3. 生成二进制安装程序。(make);
  4. 运行二进制的服务程序安装包(安装:make install,卸载:make uninstall);
  5. 清理源码包临时文件(make clean)。

LNMP动态网站架构

LNMP动态网站部署架构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案。

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

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

下载安装LNMP架构所需的16个软件源码包,存放在/usr/local/src目录。

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

CMake是Linux系统中一款常用的编译工具。通过源码包方式安装CMake。

tar xzvf cmake-2.8.11.2.tar.gz    #解压
cd cmake-2.8.11.2/ #进入解压目录
./configure #编译(“.”指在当前路径下)
make #生成二进制安装文件
make install #安装

配置Mysql服务

因为是采用源码包方式安装,很多通过Yum方式安装时系统自动完善软件配置的工作需要手动完成。

1.在系统中创建一个专门用于负责运行MySQL数据库的用户mysql,Bash终端设置成nologin解释器,禁止登陆;

cd /usr/local/src
useradd mysql -s /sbin/nologin

2.创建一个用于保存MySQL数据库程序和数据库文件的目录,并把该目录的所有者和所属组身份修改为mysql;

  • /usr/local/mysql是用于保存MySQL数据库服务程序的目录;
  • /usr/local/mysql/var则是用于保存真实数据库文件的目录;
mkdir -p /usr/local/mysql/var
chown -Rf mysql:mysql /usr/local/mysql

3.源码包方式安装MySQL数据库服务程序(解压、编译、生成二进制安装文件、安装)。

在编译数据库时使用的是cmake命令,其中参数:

  • -DCMAKE_INSTALL_PREFIX:定义数据库服务程序的保存目录;
  • -DMYSQL_DATADIR:定义真实数据库文件的目录;
  • -DSYSCONFDIR:定义MySQL数据库配置文件的保存目录;
tar xzvf mysql-5.6..tar.gz
cd mysql-5.6./
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc
make
make install

4.为了让MySQL数据库程序正常运转起来,需要先删除/etc目录中的默认配置文件,然后执行MySQL数据库程序的保存目录的子目录scripts中名为mysql_install_db的脚本程序(此脚本程序用于生成系统数据库文件和MySQL服务配置文件),并使用以下参数:

  • --user:指定MySQL服务的对应账号名称;
  • --basedir:指定MySQL服务程序的保存目录;
  • --datadir:指定MySQL真实数据库的文件保存目录;

以上参数所需的账号或目录在步骤1、2已经创建。

rm -rf /etc/my.cnf
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var

5.把系统新生成的MySQL数据库配置文件链接到/etc目录中,然后把程序目录中的开机程序文件复制到/etc/rc.d/init.d目录中,以便通过service命令来管理MySQL数据库服务程序。把数据库脚本文件的权限修改成755以便于让用户有执行该脚本的权限,然后修改该文件。最后启动mysqld服务并加入开机启动项。

ln -s my.cnf /etc/my.cnf
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod /etc/rc.d/init.d/mysqld
vim /etc/rc.d/init.d/mysqld
...
basedir=/usr/local/mysql #MySQL数据库程序的保存目录
datadir=/usr/local/mysql/var #真实数据库的文件保存目录
...
service mysqld start #用service命令启动mysqld数据库服务
chkconfig mysqld on #使用chkconfig命令把mysqld服务程序加入到开机启动项中

6.MySQL数据库程序自带了许多命令,但是Bash终端的PATH变量并不会包含这些命令所存放的目录,因此要把MySQL自带命令所保存的目录永久性地定义到PATH变量中,需要编辑/etc/profile文件并写入追加的命令目录,当物理设备在下一次重启时就会永久生效。可以使用source命令加载一下/ect/profile文件,使新的PATH变量立即生效。

vim /etc/profile
...
export PATH=$PATH:/usr/local/mysql/bin
...
source /etc/profile

7.MySQL数据库服务程序还会调用到一些程序文件和函数库文件,必须以手动方式把这些文件链接过来。之后再通过mysql_secure_installation对MySQL数据库进行初始化,MySQL服务就能正常使用。

mkdir /var/lib/mysql
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
mysql_secure_installation

配置Nginx服务

Nginx是一款相当优秀的用于部署动态网站的轻量级服务程序,Nginx服务程序的稳定性源自于采用了分阶段的资源分配技术,降低了CPU与内存的占用率,所以使用Nginx程序部署的动态网站环境不仅十分稳定、高效,而且消耗的系统资源也很少。此外,Nginx具备的模块数量与Apache具备的模块数量几乎相同,而且现在已经完全支持proxy、rewrite、mod_fcgi、ssl、vhosts等常用模块。更重要的是,Nginx还支持热部署技术,可以7×24不间断提供服务,还可以在不暂停服务的情况下直接对Nginx服务程序进行升级。

1.在正式安装Nginx服务程序之前,需要为其解决相关的软件依赖关系:

  • pcre:用于提供Perl语言兼容的正则表达式库,是Nginx服务程序用于实现伪静态功能必不可少的依赖包;
  • openssl:用于提供网站加密证书服务的程序文件(安装后默认会在/usr/local/openssl/bin目录中提供很多的可用命令,需要将该目录添加到PATH变量中,永久并立即生效);
  • zlib:用于提供压缩功能的函数库文件。
cd /usr/local/src                                             #安装pcre
tar xzvf pcre-8.35.tar.gz #解压
cd pcre-8.35 #进入解压后的目录
./configure --prefix=/usr/local/pcre ; make ; make install #可以通过“;”号把编译、生成二进制安装文件、安装的命令串联起来
cd /usr/local/src #安装openssl
tar xzvf openssl-1.0.1h.tar.gz
cd openssl-1.0.1h
./config --prefix=/usr/local/openssl ; make ; make install #./config = ./configure
vim /etc/profile
...
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/openssl/bin #追加有命令的目录到PATH中,目录与目录之间用“:”号隔开
...
source /etc/profile #让新PATH立即生效
cd /usr/local/src #安装zlib
tar xzvf zlib-1.2..tar.gz
cd zlib-1.2.
./configure --prefix=/usr/local/zlib ; make ; make install

2.创建一个用于执行Nginx服务程序的账户,再安装nginx服务程序(因为安装nginx时很多参数需要调用步骤1安装的软件包,所以在nginx前必须先安装好相关依赖软件包)。参数解释:

  • --prefix:用于定义服务程序稍后安装到的位置;
  • --user:用于指定执行Nginx服务程序的用户名;
  • --group:用于指定执行Nginx服务程序的用户组;
  • --with-openssl:指定openssl软件源码包的解压路径;
  • --with-zlib:指定zib软件源码包的解压路径;
  • --with-pcre:指定openssl软件源码包的解压路径;

在使用参数调用openssl、zlib、pcre软件包时,是指定软件源码包的解压路径,而不是程序的安装路径。

cd /usr/local/src
useradd www -s /sbin/nologin #创建用户www,设置不能登录,用于管理nginx
tar xzvf nginx-1.6..tar.gz
cd nginx-1.6./
./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. --with-pcre=/usr/local/src/pcre-8.35
make
make install

3.要启动Nginx服务程序以及将其加入到开机启动项中,需要启动脚本文件。以源码包方式安装Nginx,默认不会为用户生成启动脚本文件,需要自行编写。启动脚本文件nginx要保存在/etc/rc.d/init.d/中。

vim /etc/rc.d/init.d/nginx
#!/bin/bash
# nginx - this script starts and stops the nginx daemon
# chkconfig: -
# 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
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 >& | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
if [ -z "`grep $user /etc/passwd`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V >& | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f `
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit
[ -f $NGINX_CONF_FILE ] || exit
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq ] && rm -f $lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep
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 >&
}
case "$1" in
start)
rh_status_q && exit
$
;;
stop)
rh_status_q || exit
$
;;
restart|configtest)
$
;;
reload)
rh_status_q || exit
$
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit
esac

nginx启动脚本文件

为nginx启动脚本文件赋予755权限,通过restart命令以绝对路径方式重启nginx服务,并加入开机启动项。

chmod  /etc/rc.d/init.d/nginx
/etc/rc.d/init.d/nginx restart
chkconfig nginx on

在浏览器输入地址,如果看到nginx默认网页说明nginx服务配置成功。

配置php服务

PHP(Hypertxt Preprocessor,超文本预处理器)是一种通用的开源脚本语言,发明于1995年,它吸取了C语言、Java语言及Perl语言的很多优点,具有开源、免费、快捷、跨平台性强、效率高等优良特性,是目前Web开发领域最常用的语言之一。

1.先安装部署用于搭建网站页面的软件程序包,解决PHP和其他软件的依赖关系。

  • yasm:一款常见的开源汇编器
  • libmcrypt:用于加密算法的扩展库程序
  • libvpx:用于提供视频编码器的服务程序
  • tiff:用于提供标签图像文件格式的服务程序
  • libpng:用于提供png图片格式支持函数库的服务程序
  • freetype:用于提供字体支持引擎的服务程序
  • jpeg:用于提供jpeg图片格式支持函数库的服务程序
  • libgd:用于提供图形处理的服务程序,需要引用jpeg、libpng、freetype、tiff、libvpx等服务程序
  • t1lib:用于提供图片生成函数库的服务程序
#安装yasm
cd /usr/local/src
tar zxvf yasm-1.2..tar.gz
cd yasm-1.2.
./configure ; make ; make install
#安装libmcrypt
cd /usr/local/src
tar zxvf libmcrypt-2.5..tar.gz
cd libmcrypt-2.5.
./configure ; make ; make install
#安装libvpx,注意bzip2格式的压缩包要用j参数解压
cd /usr/local/src
tar xjvf libvpx-v1.3.0.tar.bz2
cd libvpx-v1.3.0
./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9 ; make ; make install
#安装tiff
cd /usr/local/src
tar zxvf tiff-4.0..tar.gz
cd tiff-4.0.
./configure --prefix=/usr/local/tiff --enable-shared ; make ; make install
#安装libpng
cd /usr/local/src
tar zxvf libpng-1.6..tar.gz
cd libpng-1.6.
./configure --prefix=/usr/local/libpng --enable-shared ; make ; make install
#安装freetype
cd /usr/local/src
tar zxvf freetype-2.5..tar.gz
cd freetype-2.5.
./configure --prefix=/usr/local/freetype --enable-shared ; make ; make install
#安装jpeg
cd /usr/local/src
tar zxvf jpegsrc.v9a.tar.gz
cd jpeg-9a
./configure --prefix=/usr/local/jpeg --enable-shared ; make ; make install
#安装libgd,注意编译时引用的是各服务程序的安装路径
cd /usr/local/src
tar zxvf libgd-2.1..tar.gz
cd libgd-2.1.
./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目录中
cd /usr/local/src
tar zxvf t1lib-5.1..tar.gz
cd t1lib-5.1.
./configure --prefix=/usr/local/t1lib --enable-shared ; make ; make install
ln -s /usr/lib64/libltdl.so /usr/lib/libltdl.so
cp -frp /usr/lib64/libXpm.so* /usr/lib/

2.在开始编译php源码包之前,先定义一个名为LD_LIBRARY_PATH的全局环境变量,该环境变量的作用是帮助系统找到指定的动态链接库文件,这些文件是编译php服务源码包的必须元素之一。编译php服务源码包时,除了定义要安装到的目录以外,还需要依次定义配置php服务程序配置文件的保存目录、MySQL数据库服务程序所在目录、MySQL数据库服务程序配置文件所在目录,以及libpng、jpeg、freetype、libvpx、zlib、t1lib等服务程序的安装目录路径,并通过参数启动php服务程序的诸多默认功能(enable)。装完后删除当前默认的配置文件,然后将php服务程序目录中相应的配置文件复制过去。

export LD_LIBRARY_PATH=/usr/local/libgd/lib
cd /usr/local/src
tar -zvxf php-5.5..tar.gz
cd php-5.5.
./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 ; make ; make install
rm -rf /etc/php.ini #删除当前默认的配置文件cp php.ini-production /usr/local/php/etc/php.ini
ln -s /usr/local/php/etc/php.ini /etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf

3.php-fpm.conf是php服务程序重要的配置文件之一,需要启用该配置文件中第25行左右的pid文件保存目录,然后分别将第148和149行的user与group参数分别修改为www账户和用户组名称。配置妥当后把用于管理php服务的脚本文件复制到/etc/rc.d/init.d中。为脚本赋予755权限,确保可以执行该脚本。最后把php-fpm服务程序加入到开机启动项中。

vim /usr/local/php/etc/php-fpm.conf
...
pid = run/php-fpm.pid
...
user = www
group = www
...
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod /etc/rc.d/init.d/php-fpm
chkconfig php-fpm on

4.由于php服务程序的配置参数直接会影响到Web服务服务的运行环境,php服务程序默认没有禁用任何功能。为了增加安全性,需要编辑php.ini配置文件,在305行的disable_functions参数后面追加上要禁止的功能。

vim /usr/local/php/etc/php.ini
...
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
...

5.最后还需要编辑Nginx服务程序的主配置文件,在第2行写上负责运行Nginx服务程序的账户名称和用户组名称;在第45行的index参数后面写上网站的首页名称。最后是将第65~71行参数前的井号(#)删除来启用参数,主要是修改第69行的脚本名称路径参数,其中$document_root变量即为网站信息存储的根目录路径,若没有设置该变量,则Nginx服务程序无法找到网站信息,因此会提示“404页面未找到”的报错信息。在确认参数信息填写正确后,重启Nginx服务与php-fpm服务。

vim /usr/local/nginx/conf/nginx.conf
...
user www www;
...
index index.html index.htm index.php;
...
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
...
systemctl restart nginx
systemctl restart php-fpm

至此,LNMP动态网站环境架构的配置完成!


搭建Discuz论坛

Discuz! X3.2软件包的后缀是.zip格式,应使用专用的unzip命令来进行解压。把Nginx服务程序网站根目录的内容清空后,把解压后的Discuz!目录中的文件都剪切过去。把Nginx服务程序的网站根目录的所有者和所属组修改为本地的www用户,并为其赋予755权限以便于能够读、写、执行该论坛系统内的文件。

cd /usr/local/src/
unzip Discuz_X3.2_SC_GBK.zip
rm -rf /usr/local/nginx/html/{index.html,50x.html}*
mv upload/* /usr/local/nginx/html/
chown -Rf www:www /usr/local/nginx/html
chmod -Rf 755 /usr/local/nginx/html

接下来,访问网址192.168.10.10,人工操作下一步下一步即可完成Discuz论坛的搭建,论坛能成功运行,说明LNMP已正确部署好。


服务器主机

网站是由域名、网站源程序和主机共同组成的,其中,主机则是用于存放网页源代码并能够把网页内容展示给用户的服务器。

虚拟主机:在一台服务器中划分一定的磁盘空间供用户放置网站信息、存放数据等;仅提供基础的网站访问、数据存放与传输功能;能够极大地降低用户费用,也几乎不需要用户来维护网站以外的服务;适合小型网站。

VPS(Virtual Private Server,虚拟专用服务器):在一台服务器中利用OpenVZ、Xen或KVM等虚拟化技术模拟出多台“主机”(即VPS),每个主机都有独立的IP地址、操作系统;不同VPS之间的磁盘空间、内存、CPU、进程与系统配置完全隔离,用户可自由使用分配到的主机中的所有资源,为此需要具备一定的维护系统的能力;适合小型网站。

ECS(Elastic Compute Service,云服务器):是一种整合了计算、存储、网络,能够做到弹性伸缩的计算服务;使用起来与VPS几乎一样,差别是云服务器是建立在一组集群服务器中,每个服务器都会保存一个主机的镜像(备份),从而大大提升了安全性和稳定性;另外还具备灵活性与扩展性;用户只需按使用量付费即可;适合大中小型网站。

独立服务器:服务器仅提供给用户一个人使用,其使用方式分为租用方式与托管方式。

  • 租用方式:用户将服务器的硬件配置要求告知IDC服务商,按照月、季、年为单位来租用它们的硬件设备。这些硬件设备由IDC服务商的机房负责维护,用户一般需要自行安装相应的软件并部署网站服务,这减轻了用户在硬件设备上的投入,适合大中型网站。
  • 托管方式:用户需要自行购置服务器硬件设备,并将其交给IDC服务供应商进行管理(需要缴纳管理服务费)。用户对服务器硬件配置有完全的控制权,自主性强,但需要自行维护、修理服务器硬件设备,适合大中型网站。

书本笔记

《Linux就该这么学》培训笔记_ch20使用LNMP架构部署动态网站环境的更多相关文章

  1. 《linux就该这么学》课堂笔记20 LNMP架构部署动态网站环境

    源码包安装程序 使用源码包来安装服务程序具有两个优势. 源码包的可移植性非常好,几乎可以在任何Linux系统中安装使用,而RPM软件包是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能顺利安 ...

  2. 《Linux就该这么学》培训笔记_ch10_使用Apache服务部署静态网站

    <Linux就该这么学>培训笔记_ch10_使用Apache服务部署静态网站 文章最后会post上书本的笔记照片. 文章主要内容: 网站服务程序 配置服务文件参数 SELinux安全子系统 ...

  3. Linux中什么是动态网站环境及如何部署

    当谈论起网站时,我们可能听说过静态和动态这两个词,但却不知道它们的含义,或者从字面意思了解一些却不知道它们的区别. 这一切可以追溯到网站和网络应用程序,Web应用程序是一个网站,但很多网站不是Web应 ...

  4. 《Linux就该这么学》培训笔记_ch17_使用iSCSI服务部署网络存储

    <Linux就该这么学>培训笔记_ch17_使用iSCSI服务部署网络存储 文章最后会post上书本的笔记照片. 文章主要内容: iSCSI技术介绍 创建RAID磁盘阵列 配置iSCSI服 ...

  5. Linux笔记15 使用Apache服务部署静态网站。

    配置服务文件参数Linux系统中的配置文件 服务目录 /etc/httpd 主配置文件 /etc/httpd/conf/httpd.conf 网站数据目录 /var/www/html 访问日志 /va ...

  6. linux运维、架构之路-Lnmp架构部署

    一.Lnmp架构原理 二. Lnmp架构软件安装 1.Nginx安装脚本 #!/bin/bash useradd -s /sbin/nologin -M www mkdir -p /server/to ...

  7. LInux 就该这么学 笔记分享

    看了Linux就该这么学的前部分书,觉得写的还可以,就在网上找了下面这个同学写的笔记,觉得很详细,所以保存地址,供以后查阅参看.这里对作者表示感谢!!! 博客地址: https://www.cnblo ...

  8. Linux就该这么学笔记

    https://www.linuxprobe.com/========================================================================= ...

  9. linux-RHEL7.0 —— 《Linux就该这么学》阅读笔记

    目录 linux-RHEL7.0 安装部署 修改root密码 RPM(红帽软件包管理器) YUM(软件仓库) Systemd初始化进程 总结 linux命令 帮助命令 man 系统工作命令 echo ...

随机推荐

  1. MySQL UNION 操作符

    本教程为大家介绍 MySQL UNION 操作符的语法和实例. 描述 MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中.多个 SELECT 语句会删除重复 ...

  2. MySQL 分库分表及其平滑扩容方案

    转自:https://kefeng.wang/2018/07/22/mysql-sharding/ 众所周知,数据库很容易成为应用系统的瓶颈.单机数据库的资源和处理能力有限,在高并发的分布式系统中,可 ...

  3. 下载及安装Python详细步骤

    安装python分三个步骤: *下载python *安装python *检查是否安装成功 1.下载Python (1)python下载地址https://www.python.org/download ...

  4. 极速体验docker容器健康

    本文目是体验docker容器的健康检查功能,以体验为主不涉及开发,与开发相关的内容会在后面的文章细说. 关于容器健康检查 考虑这样的情况:docker环境中,springboot应用的容器还在,但已无 ...

  5. 基于vue+springboot+docker网站搭建【五】部署vue前端项目

    部署vue前端项目  一.下载项目到本地   https://github.com/macrozheng/mall-admin-web 二.npm install 三.修改api配置,改为你接下来要部 ...

  6. 如何才能通俗易懂的解释js里面的‘闭包’?

    1. "闭包就是跨作用域访问变量." [示例一] var name = 'wangxi' function user () { // var name = 'wangxi' fun ...

  7. <Android Studio> 4.Adapter的那些事 <一>

    android 的表格显示和Windows桌面开发原理不同,其他平台转过来的同学要有心理准备,不要拿桌面开发的思维模式来思考android上的各种表格. 一.原理 此处使用ArrayAdapter来记 ...

  8. WorkFlow三:配BO对象,事件触发工作流

    1.新建个BO对象的字段. 2.新建取数函数: 3.运行事物代码SWO1新建BO对象. 4.新建关键字段: 5.新建BO对象的事件: 6.添加处理方法: 6.调整对象状态,这里是本地对象,不需要释放, ...

  9. SQLServer2017自动备份数据库

    本文截图来源: 地址一:https://blog.csdn.net/u010944388/article/details/86674078 地址二:https://www.cnblogs.com/ja ...

  10. linux Yum相关

    python编写,是centos 和 redhat的包管理工具,类似于 pip 常用的yum命令 Yum list 查看所有的包 Yum list python 列出所有python包 yum sea ...