前言
这段话送给坚持到现在的你,今天是最后一章了,很感谢阿里云提供这么一个平台,让我把这本书都操作完,我深知自己能力一般水平有限,并不能给大家带来书籍以外更多的知识,但是我已经把所有的坑都趟平了,学完这本书可能也只能算是入门阶段,希望大家能入门,我可能现在也和在座的各位一样为了生活奔波劳作,可能从事着不同的行业,干着喜欢或不喜欢的工作,在写这系列文章的初期,我是抗拒学习的,中间搁浅了一年左右,为了所谓的工作牺牲提升自己的机会,浪费时间做了很多自己以为很牛的事,但是有一天我发现工作重复且枯燥,在底层做着无用功的原因就是不热爱学习一直在消耗,在人脉和资源的社会下,如果你无一技傍身,真的会随着年纪的增长慢慢被社会淘汰掉,希望你能明白工作是有限的局限的,并不会因为你工作特别努力就会被提拔或者升职加薪,但是学习是无限的终身的,只要你这个人足够优秀,你就可以有更多选择,在不同的环境下不被束缚,学习嘛只要你努力提升自己哪怕每天进步一个字母,每天多学一行句子,你就比昨天牛,比昨天厉害,所以学起来吧,起码学习的时候你总是年轻的,总是开心的,总是有活力的,远离坏心情,乐观面对生活。
常用命令汇总
LNMP 动态网站部署架构是一套由 Linux + Nginx + MySQL + PHP 组成的动态网站系统 解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性
源码包程序
源码包的可移植性非常好,几乎可以在任何 Linux 系统中安装使用,而 RPM 软件包 是针对特定系统和架构编写的指令集,必须严格地符合执行环境才能顺利安装(即只 会去“生硬地”安装服务程序)。
使用源码包安装服务程序时会有一个编译过程,因此可以更好地适应安装主机的系统 环境,运行效率和优化程度都会强于使用 RPM 软件包安装的服务程序。也就是说, 可以将采用源码包安装服务程序的方式看作是针对系统的“量体裁衣”
第1步:下载及解压源码包文件
[root@localhost ~]# tar xzvf FileName.tar.gz
第2步:编译源码包代码
[root@localhost ~]# ./configure --prefix=/usr/local/program
第3步:生成二进制安装程序
[root@localhost ~]# make
第4步:运行二进制的服务程序安装包
[root@localhost ~]# make install
(通常三四步骤合并为make&make install)
第5步:清理源码包临时文件
[root@localhost ~]# make clean
LNMP 动态网站架构
LNMP 动态网站部署架构是一套由 Linux + Nginx+MySQL+PHP组成的动态网站系统解决方案
使用源码包安装服务程序之前,首先要让安装主机具备编译程序源码的环境,他需要 具备 C 语言、C++语言、Perl 语言的编译器,以及各种常见的编译支持函数库程序
安装编译环境
[root@localhost ~]# 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* libtifflibtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
下载安装包(16个软件源码和1个论坛网站软件包)
批量复制直接粘贴
wget http://www.linuxprobe.com/Software/cmake-2.8.11.2.tar.gz
wget http://www.linuxprobe.com/Software/Discuz_X3.2_SC_GBK.zip
wget http://www.linuxprobe.com/Software/freetype-2.5.3.tar.gz
wget http://www.linuxprobe.com/Software/jpegsrc.v9a.tar.gz
wget http://www.linuxprobe.com/Software/libgd-2.1.0.tar.gz
wget http://www.linuxprobe.com/Software/libmcrypt-2.5.8.tar.gz
wget http://www.linuxprobe.com/Software/libpng-1.6.12.tar.gz
wget http://www.linuxprobe.com/Software/libvpx-v1.3.0.tar.bz2
wget http://www.linuxprobe.com/Software/mysql-5.6.19.tar.gz
wget http://www.linuxprobe.com/Software/nginx-1.6.0.tar.gz
wget http://www.linuxprobe.com/Software/openssl-1.0.1h.tar.gz
wget http://www.linuxprobe.com/Software/php-5.5.14.tar.gz
wget http://www.linuxprobe.com/Software/pcre-8.35.tar.gz
wget http://www.linuxprobe.com/Software/t1lib-5.1.2.tar.gz
wget http://www.linuxprobe.com/Software/tiff-4.0.3.tar.gz
wget http://www.linuxprobe.com/Software/yasm-1.2.0.tar.gz
wget http://www.linuxprobe.com/Software/zlib-1.2.8.tar.gz
[root@localhost src]# ls
cmake-2.8.11.2.tar.gz jpegsrc.v9a.tar.gz libpng-1.6.12.tar.gz nginx-1.6.0.tar.gz php-5.5.14.tar.gz yasm-1.2.0.tar.gz
Discuz_X3.2_SC_GBK.zip libgd-2.1.0.tar.gz libvpx-v1.3.0.tar.bz2 openssl-1.0.1h.tar.gz t1lib-5.1.2.tar.gz zlib-1.2.8.tar.gz
freetype-2.5.3.tar.gz libmcrypt-2.5.8.tar.gz mysql-5.6.19.tar.gz pcre-8.35.tar.gz tiff-4.0.3.tar.gz
CMake 是 Linux 系统中一款常用的编译工具
[root@localhost cmake-2.8.11.2]# tar xzvf cmake-2.8.11.2.tar.gz
[root@localhost cmake-2.8.11.2]# cd cmake-2.8.11.2/
[root@localhost cmake-2.8.11.2]# ./configure
[root@localhost cmake-2.8.11.2]# make && make install
配置 MySQL 服务
创建mysql 的用户
[root@localhost cmake-2.8.11.2]# useradd mysql -s /sbin/nologin
创建MySQL目录
[root@localhost cmake-2.8.11.2]# mkdir -p /usr/local/mysql/var
[root@localhost cmake-2.8.11.2]# chown -Rf mysql:mysql /usr/local/mysql
解压、编译、安装 MySQL 数据库服务程序
[root@localhost src]# cd ..
[root@localhost src]# tar xzvf mysql-5.6.19.tar.gz
[root@localhost src]# cd mysql-5.6.19/
[root@localhost mysql-5.6.19]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc
[root@localhost mysql-5.6.19]# make && make install
配置mysql
[root@localhost mysql-5.6.19]# rm -rf /etc/my.cnf
[root@localhost mysql-5.6.19]# cd /usr/local/mysql
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var
系统新生成的 MySQL 数据库配置文件链接到/etc 目录中
[root@localhost mysql]# ln -s my.cnf /etc/my.cnf
[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/rc.d/init.d/mysqld
配置地址
[root@localhost mysql]# vim /etc/rc.d/init.d/mysqld
...
# overwritten by settings in the MySQL configuration files.
basedir=/usr/local/mysql
datadir=/usr/local/mysql/var
# Default value, in seconds, afterwhich the script should timeout waiting
...
用service命令启动 mysqld 数据库服务(第二行开机自启动)
[root@localhost mysql]# service mysqld start
Starting MySQL. SUCCESS!
[root@localhost mysql]# chkconfig mysqld on
PATH 变量修改
[root@localhost mysql]# vim /etc/profile
done
export PATH=$PATH:/usr/local/mysql/bin
unset i
unset -f pathmunge
加载一下!!!
[root@localhost mysql]# source /etc/profile
mysql链接函数和程序文件
[root@localhost mysql]# mkdir /var/lib/mysql
[root@localhost mysql]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
[root@localhost mysql]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
[root@localhost mysql]# ln -s /usr/local/mysql/include/mysql /usr/include/mysql
MySQL数据库服务程序启动配置
详细的不解释了,可以找一下翻译,第一个回车剩下的都选y,该输密码输密码
[root@localhost mysql]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 回车键
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] y
New password: 新设密码
Re-enter new password: 重复密码
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
Cleaning up...
配置 Nginx 服务
Nginx 是一款相当优秀的用于部署动态网站的轻量级服务程序,它最初是为俄罗斯门户 站点而开发的,因其稳定性、功能丰富、占用内存少且并发能力强而备受用户的信赖,Nginx 具备的模块数量与 Apache 具备的模块数量几乎相同,而且现在已经完全支 持 proxy、rewrite、mod_fcgi、ssl、vhosts 等常用模块。更重要的是,Nginx 还支持热部署技术, 可以 7×24 不间断提供服务,还可以在不暂停服务的情况下直接对 Nginx 服务程序进行升级
解压、编译、生成、安装 Nginx 服务程序
[root@localhost mysql]# cd /usr/local/src
[root@localhost src]# tar xzvf pcre-8.35.tar.gz
[root@localhost pcre-8.35]# cd pcre-8.35
[root@localhost pcre-8.35]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.35]# make && make install
openssl 软件包是用于提供网站加密证书服务的程序文件
[root@localhost src]# cd /usr/local/src
[root@localhost src]# tar xzvf openssl-1.0.1h.tar.gz
[root@localhost src]# cd openssl-1.0.1h
[root@localhost openssl-1.0.1h]# ./config --prefix=/usr/local/openssl
[root@localhost openssl-1.0.1h]# make && make install
修改PATH 环境
[root@localhost openssl-1.0.1h]# vim /etc/profile
...
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/openssl/bin
unset i
unset -f pathmunge
生效
[root@localhost openssl-1.0.1h]# source /etc/profile
zlib 软件包是用于提供压缩功能的函数库文件
[root@localhost openssl-1.0.1h]# cd /usr/local/src
[root@localhost src]# tar xzvf zlib-1.2.8.tar.gz
[root@localhost src]# cd zlib-1.2.8
[root@localhost zlib-1.2.8]# ./configure --prefix=/usr/local/zlib
[root@localhost zlib-1.2.8]# make && make install
创建Nginx账户
[root@localhost zlib-1.2.8]# useradd www -s /sbin/nologin
使用命令编译 Nginx 服务程序
[root@localhost zlib-1.2.8]# cd ..
[root@localhost src]# tar xzvf nginx-1.6.0.tar.gz
[root@localhost src]# cd nginx-1.6.0/
[root@localhost 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
[root@localhost nginx-1.6.0]# make && make install
编写脚本文件(直接复制用)
#!/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(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`" ]; then
useradd -M -s /bin/nologin $user
fi
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p value && chown -Rvalue && chown -Rvalue && chown -R user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n "Starting"Starting prog: "
daemon nginx−cnginx -c NGINX_CONF_FILE
retval=$?
echo
[ retval -eq 0 ] && touchretval -eq 0 ] && touchretval -eq 0 ] && touch lockfile
return $retval
}
stop() {
echo -n "Stopping"Stopping prog: "
killproc $prog -QUIT
retval=$?
echo
[ retval -eq 0 ] && rm -fretval -eq 0 ] && rm -fretval -eq 0 ] && rm -f lockfile
return $retval
}
restart() {
#configtest || return $?
stop
sleep 1
start
}
reload() {
#configtest || return $?
echo -n "Reloading"Reloading prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
nginx−t−cnginx -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:"Usage: 0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
脚本说实话写的很有水平,但是也要有shell基础才能把这些东西学好,这个直接复制也不用解析学习了
赋权执行和开机自启动
[root@localhost nginx-1.6.0]# chmod 755 /etc/rc.d/init.d/nginx
[root@localhost nginx-1.6.0]# /etc/rc.d/init.d/nginx restart
Reloading systemd: [ OK ]
Restarting nginx (via systemctl): [ OK ]
[root@localhost nginx-1.6.0]# chkconfig nginx on
检验一下(请在虚拟机上检验,如果想在主机上看,就把防火墙和selinux关闭)
配置 PHP 服务
PHP(Hypertxt Preprocessor,超文本预处理器)是一种通用的开源脚本语言,它吸取了 C 语言、Java 语言及 Perl 语言的很多优点,具有开源、免费、快捷、跨平台性 强、效率高等优良特性,是目前 Web 开发领域最常用的语言之一,使用源码包的方式编译安装 PHP 语言环境其实并不复杂,难点在于解决 PHP 的程序包 和其他软件的依赖关系
折磨开始(9个要安装的)
开源汇编器
yasm 源码包解压、编译、安装
[root@localhost nginx-1.6.0]# cd ..
[root@localhost src]# tar zxvf yasm-1.2.0.tar.gz
[root@localhost src]# cd yasm-1.2.0/
[root@localhost yasm-1.2.0]# ./configure
[root@localhost yasm-1.2.0]# make && make install
加密算法的扩展库
libmcrypt 源码包解压、编译、安装
[root@localhost yasm-1.2.0]# cd ..
[root@localhost src]# tar zxvf libmcrypt-2.5.8.tar.gz
[root@localhost src]# cd libmcrypt-2.5.8/
[root@localhost libmcrypt-2.5.8]# ./configure
[root@localhost libmcrypt-2.5.8]# make && make install
视频编码器
libvpx 源码包解压、编译、安装
[root@localhost libmcrypt-2.5.8]# cd ..
[root@localhost src]# tar xjvf libvpx-v1.3.0.tar.bz2
[root@localhost libvpx-v1.3.0]# ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
[root@localhost libvpx-v1.3.0]# make && make install
标签图像文件格式
tiff 源码包解压、编译、安装
[root@localhost libvpx-v1.3.0]# cd ..
[root@localhost src]# tar zxvf tiff-4.0.3.tar.gz
[root@localhost src]# cd tiff-4.0.3/
[root@localhost tiff-4.0.3]# ./configure --prefix=/usr/local/tiff --enable-shared
[root@localhost tiff-4.0.3]# make && make install
png 图片格式支持
libpng 源码包解压、编译、安装
[root@localhost src]# cd ..
[root@localhost src]# tar zxvf libpng-1.6.12.tar.gz
[root@localhost src]# cd libpng-1.6.12
[root@localhost libpng-1.6.12]# ./configure --prefix=/usr/local/libpng --enable-shared
[root@localhost libpng-1.6.12]# make && make install
字体支持引擎
freetype 源码包解压、编译、安装
[root@localhost tiff-4.0.3]# cd ..
[root@localhost src]# tar zxvf freetype-2.5.3.tar.gz
[root@localhost freetype-2.5.3]# ./configure --prefix=/usr/local/freetype -enable-shared
[root@localhost freetype-2.5.3]# make && make install
jpeg 图片格式
jpeg 源码包解压、编译、安装
[root@localhost libpng-1.6.12]# cd ..
[root@localhost src]# tar zxvf jpegsrc.v9a.tar.gz
[root@localhost src]# cd jpeg-9a
[root@localhost jpeg-9a]# ./configure --prefix=/usr/local/jpeg --enable-shared
[root@localhost jpeg-9a]# make && make install
图形处理
libgd 源码包解压、编译、安装
[root@localhost jpeg-9a]# cd ..
[root@localhost src]# tar zxvf libgd-2.1.0.tar.gz
[root@localhost src]# cd libgd-2.1.0
[root@localhost src]# ./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
[root@localhost libgd-2.1.0]# make && make install
图片生成
t1lib 源码包其解压、编译、安装
[root@localhost libgd-2.1.0]# cd ..
[root@localhost src]# tar zxvf t1lib-5.1.2.tar.gz
[root@localhost src]# cd t1lib-5.1.2
[root@localhost t1lib-5.1.2]# ./configure --prefix=/usr/local/t1lib --enable-shared
[root@localhost t1lib-5.1.2]# make && make install
[root@localhost t1lib-5.1.2]# ln -s /usr/lib64/libltdl.so /usr/lib/libltdl.so
[root@localhost t1lib-5.1.2]# cp -frp /usr/lib64/libXpm.so* /usr/lib/
安装部署好后,开始编译php源码包
[root@localhost t1lib-5.1.2]# cd ..
[root@localhost src]# tar -zvxf php-5.5.14.tar.gz
[root@localhost src]# cd php-5.5.14
[root@localhost php-5.5.14]# export LD_LIBRARY_PATH=/usr/local/libgd/lib
[root@localhost 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@localhost php-5.5.14]# make && make install
php 服务配置文件
[root@localhost php-5.5.14]# rm -rf /etc/php.ini
[root@localhost php-5.5.14]# cp php.ini-production /usr/local/php/etc/php.ini
[root@localhost php-5.5.14]# ln -s /usr/local/php/etc/php.ini /etc/php.ini
[root@localhost php-5.5.14]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@localhost php-5.5.14]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf
[root@localhost php-5.5.14]# vim /usr/local/php/etc/php-fpm.conf
...
23 ; Note: the default prefix is /usr/local/php/var
24 ; Default Value: none
25 pid = run/php-fpm.pid
26
27 ; Error log file
28 ; If it's set to "syslog", log is sent to syslogd instead of being written
...
147 ; will be used.
148 user = www
149 group = www
150
151 ; The address on which to accept FastCGI requests.
...
[root@localhost php-5.5.14]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@localhost php-5.5.14]# chmod 755 /etc/rc.d/init.d/php-fpm
[root@localhost php-5.5.14]# chkconfig php-fpm on
php 服务程序的配置参数直接会影响到 Web 服务服务的运行环境,因此,如果默认 开启了一些不必要且高危的功能(如允许用户在网页中执行 Linux 命令),则会降低网站被入 侵的难度,入侵人员甚至可以拿到整台 Web 服务器的管理权限
[root@localhost php-5.5.14]# vim /usr/local/php/etc/php.ini
...
304 ; http://php.net/disable-functions
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,checkdns rr,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,posi x_getppid,posix_getpwnam,posix_ getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_se tegid,posix_seteuid,posix_setgid,posix_ setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
306
307 ; This directive allows you to disable certain classes for security reasons.
...
编辑 Nginx 服务程序的主配置文件,65~71取消注释#
[root@localhost php-5.5.14]# vim /usr/local/nginx/conf/nginx.conf
2 user www www;
3 worker_processes 1;
...
44 root html;
45 index index.html index.htm index.php;
46 }
...
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_name;
70 include fastcgi_params;
71 }
...
[root@localhost php-5.5.14]# systemctl restart nginx
[root@localhost php-5.5.14]# systemctl restart php-fpm
LNMP 动态网站环境架构的配置完成
搭建 Discuz!论坛
检验 LNMP 动态网站环境,可以使用在上面部署 Discuz!系统
[root@localhost src]# cd /usr/local/src/
[root@localhost src]# unzip Discuz_X3.2_SC_GBK.zip
[root@localhost src]# rm -rf /usr/local/nginx/html/{index.html,50x.html}*
[root@localhost src]# mv upload/* /usr/local/nginx/html/
[root@localhost src]# chown -Rf www:www /usr/local/nginx/html
[root@localhost src]# chmod -Rf 755 /usr/local/nginx/html
我同意
下一步
全新安装,下一步
输入数据库密码和设置网站密码
访问
选购服务器主机
虚拟主机:在一台服务器中划分一定的磁盘空间供用户放置网站信息、存放数据等;仅提供基础的网站访问、数据存放与传输功能;能够极大地降低用户费用,也几乎不需要用户来维护网站以外的服务;适合小型网站。
VPS(Virtual Private Server,虚拟专用服务器):在一台服务器中利用OpenVZ、Xen或KVM等虚拟化技术模拟出多台“主机”(即VPS),每个主机都有独立的IP地址、操作系统;不同VPS之间的磁盘空间、内存、CPU、进程与系统配置完全隔离,用户可自由使用分配到的主机中的所有资源,为此需要具备一定的维护系统的能力;适合小型网站。
ECS(Elastic Compute Service,云服务器):是一种整合了计算、存储、网络,能够做到弹性伸缩的计算服务;使用起来与VPS几乎一样,差别是云服务器是建立在一组集群服务器中,每个服务器都会保存一个主机的镜像(备份),从而大大提升了安全性和稳定性;另外还具备灵活性与扩展性;用户只需按使用量付费即可;适合大中小型网站。
独立服务器:这台服务器仅提供给用户一个人使用,其使用方式分为租用方式与托管方式。租用方式是用户将服务器的硬件配置要求告知IDC服务商,按照月、季、年为单位来租用它们的硬件设备。这些硬件设备由IDC服务商的机房负责维护,用户一般需要自行安装相应的软件并部署网站服务,这减轻了用户在硬件设备上的投入,适合大中型网站。托管方式则是用户需要自行购置服务器硬件设备,并将其交给IDC服务供应商进行管理(需要缴纳管理服务费)。用户对服务器硬件配置有完全的控制权,自主性强,但需要自行维护、修理服务器硬件设备,适合大中型网站。
结语
简问简答
1.使用源码包安装服务程序的最大有点和缺点是什么?
答:使用源码包安装服务程序的最大优势是,服务程序的可移植性好,而且能更好地提升 服务程序的运行效率;缺点是源码包程序的安装、管理、卸载和维护都比较麻烦。
2.使用源码包的方式来安装软件服务的大致步骤是什么?
答:基本分为 4 个步骤,分别为下载及解压源码包文件、编译源码包代码、生成二进制安 装程序、运行二进制的服务程序安装包。
3.LNMP 动态网站部署架构通常包含了哪些服务程序?
答:LNMP 动态网站部署架构通常包含 Linux 系统、Nginx 网站服务、MySQL 数据库管 理系统,以及 PHP 脚本语言。
4.在 MySQL 数据库服务程序中,/usr/local/mysql 与/usr/local/mysql/var 目录的作用是什么?
答:/usr/local/mysql 用于保存 MySQL 数据库服务程序的目录,/usr/local/mysql/var 则用于 保存真实数据库文件的目录。
5.较之于 Apache 服务程序,Nginx 最显著的优势是什么?
答:Nginx 服务程序比较稳定,原因是采用了的资源分配技术,降低了 CPU 与内存的占用率, 所以使用 Nginx 程序部署的动态网站环境不仅十分稳定、高效,而且消耗的系统资源也很少。
6.如何禁止 php 服务程序中不安全的功能?
答:编辑 php 服务程序的配置文件(/usr/local/php/etc/php.ini),把要禁用的功能追加到 disable_functions 参数之后即可。
如果想根据教程实践的朋友们可以通过阿里云ecs服务器免费试用和低价购买,入口如下
入口一:新人免费试用
入口二:大学生免费试用
入口三:低价服务器购买
入口四:低价服务器购买2
入口五:建站特惠购买
感谢大家的陪伴,希望下一本书的操作学习大家还能继续跟进。。。