《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. 关于插件Markdown Preview Enhanced的使用技巧

    目录 1.关于TOC 2.关于转义符 3.绘图 3.0 绘图配色主题 3.1 Flowchart(流程图) 3.2 Sequence diagram(顺序图) 3.4 保存为HTML shanzm 1 ...

  2. c# 合并两个DataTable

    当两个DataTable 结构相同可以用自带方法(Merge)合并 // // 摘要: // 将指定的 System.Data.DataTable 与当前的 DataTable 合并,指示是否在当前的 ...

  3. ASP.NET Core MVC 中两种路由的简单配置

    1.全局约定路由 这种方式配置优先级比较低,如果控制器或者方法上标记了特性路由那么优先走特性路由. 当建立好一个mvc项目里,路由都是默认配置好的. 如果建立的是空项目那么需要手动配置: 1.需要在C ...

  4. Huawei LiteOS简介

    Huawei LiteOS简介 Huawei LiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统.本项目属于华为物联网操作系统Huawei LiteOS源码,现有基础内核支持任务管 ...

  5. 架构师小跟班:推荐46个非常经典的Linux面试题

    大家都知道,做后端开发,做着做着就变成全栈了.一般服务器维护应该是运维的事情,但很多很多公司都是后端工程师在做.所以,基本的Linux系统维护也是后端工程师的必修课.问题一: 绝对路径用什么符号表示? ...

  6. Linux下getopt()函数

    from https://www.cnblogs.com/qingergege/p/5914218.html 最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴. 好了,虽然啰嗦 ...

  7. Oracle PLSQL游标、游标变量的使用

    参考文章:https://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html 在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实 ...

  8. linux软连接和硬链接(总结)

    参考博客: https://www.cnblogs.com/fengdejiyixx/p/10821820.html https://www.runoob.com/linux/linux-comm-l ...

  9. 【Servlet】Servlet的配置

    创建时间:6.15 Servlet的配置 1. 基本配置 其中url-pattern的配置方式: 1)完全匹配 访问的资源与配置的资源完全相同才能访问到 2)目录匹配 格式:/虚拟的目录../*   ...

  10. nginx 常用的中间件

    1.--with-http_stub_status_module nginx客户端状态 # 打开default.conf文件 vim /etc/nginx/conf.d/default.conf # ...