首页 > 代码库 > 第十一周作业
第十一周作业
1、源码编译安装LNMP架构环境;
2、编写一个脚本完成以下功能:
(1)、一键搭建LNMP源码编译环境;
(2)、可通过在脚本后面跟上一些参数来自定义安装目录等其他选项。
#!/bin/bash read -p ‘Please enter the installation path:‘ dataPath read -p ‘Please enter your package path:‘ packagePath installPath=$packagePath/lamp-server serverCount=(apr apr-util httpd mysql php xcache) log=$installPath/install.log mysqlData=http://www.mamicode.com/mydata/data"Unpack the $1 success" || echo "Unpack the $1 failed" } serviceInstall(){ if [ $1 == ‘apr‘ -a ! -e $dataPath/$1 ] then echo "Began to extract the $1 installation" cd $installPath/$1* sed -i "s/\(\<RM=..RM\)./\1 -f‘/g" configure ./configure --prefix=$dataPath/$1 &>> $log make &>> $log && make install &>> $log && echo "$1 installed successfully" || echo "$1 installed failed" elif [ $1 == ‘apr-util‘ -a ! -e $dataPath/$1 ] then echo "Began to extract the $1 installation" cd $installPath/$1* ./configure --prefix=$dataPath/$1 --with-apr=$dataPath/apr &>> $log make &>> $log && make install &>> $log && echo "$1 installed successfully" || echo "$1 installed failed" elif [ $1 == ‘httpd‘ -a ! -e $dataPath/$1 ] then echo "Began to extract the $1 installation" cd $installPath/$1* ./configure --prefix=$dataPath/$1 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=$dataPath/apr --with-apr-util=$dataPath/apr-util --enable-modules=most --enable-mpms-shared=all &>> $log make &>> $log && make install &>> $log && echo "$1 installed successfully" || echo "$1 installed failed" elif [ $1 == ‘mysql‘ -a ! -e $dataPath/$1 ] then echo "Began to extract the $1 installation" cd $installPath/$1* cmake . -DCMAKE_INSTALL_PREFIX=$dataPath/mysql -DMYSQL_DATADIR=/mydata/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR==$dataPath/mysql/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci &>> $log make &>> $log && make install &>> $log && echo "$1 installed successfully" || echo "$1 installed failed" elif [ $1 == ‘php‘ -a ! -e $dataPath/$1 ] then echo "Began to extract the $1 installation" cd $installPath/$1* ./configure --prefix=$dataPath/php --with-mysql=$dataPath/mysql --with-openssl --with-mysqli=$dataPath/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=$dataPath/httpd/bin/apxs --with-mcrypt --with-bz2 --enable-maintainer-zts &>> $log make &>> $log && make install &>> $log && echo "$1 installed successfully" || echo "$1 installed failed" elif [ $1 == ‘xcache‘ -a ! -e $dataPath/php/lib/php/extensions/no-debug-zts-20100525/xcache.so ] then echo "Began to extract the $1 installation" cd $installPath/$1* $dataPath/php/bin/phpize &>> $log ./configure --enable-xcache --with-php-config=$dataPath/php/bin/php-config &>> $log make &>> $log && make install &>> $log && echo "$1 installed successfully" || echo "$1 installed failed" fi } serviceDrop(){ cd $dataPath rm -rf $1 && echo "Delete the $1 service success" || echo "Delete the $1 service failed" } serviceConfig(){ if [ $1 == ‘httpd‘ ] then cd $dataPath/httpd sed -i ‘s/DirectoryIndex.*index.html/DirectoryIndex index.php index.html/g‘ conf/httpd.conf && sed -i ‘381,382cAddType application/x-httpd-php \.php\nAddType application/x-httpd-php-source .phps‘ conf/httpd.conf && echo "$1 configuration success" || echo "$1 configuration failed" elif [ $1 == ‘xcache‘ ] then cd $installPath/php* cp -a php.ini-production $dataPath/php/lib/php.ini cd $installPath/xcache* cp -a xcache.ini $dataPath/php/lib cd $dataPath/php sed -i ‘380aextension_dir = /usr/local/php/lib/php/extensions/no-debug-zts-20100525\nextension = xcache.so‘ lib/php.ini && echo "$1 configuration success" || echo "$1 configuration failed" echo ‘<?php phpinfo(); ?>‘ > $dataPath/httpd/htdocs/index.php elif [ $1 == ‘mysql‘ ] then mkdir -p /mydata/data &>> $log groupadd -r mysql &>> $log useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql &>> $log chown -R mysql:mysql /mydata/data &>> $log chown -R mysql:mysql /usr/local/mysql &>> $log cd $dataPath/mysql ./scripts/mysql_install_db --basedir=$dataPath/mysql/ --datadir=$mysqlData --user=mysql &>> $log && echo "$1 configuration success" || echo "$1 configuration failed" ln -sv $dataPath/mysql/include /usr/include/mysql echo "$dataPath/mysql/lib" > /etc/ld.so.conf.d/mysql.conf ldconfig fi } while true do read -p "Please enter the | config | unpack | install | drop | quit | to complete the configuration: " met case $met in unpack) echo `date ‘+%F %T‘` echo ‘Began to unzip the installation services‘ for i in $packagePath/* do serviceUnpack $i done echo -e ‘\n\n‘ ;; install) yum groupinstall ‘Development tools‘ ‘Desktop Platform Development‘ -y &>> $log yum install pcre-devel openssl-devel cmake ncurses-devel bzip2-devel libmcrypt-devel libxml2-devel libmcrypt-devel -y &>> $log echo `date ‘+%F %T‘` for i in ${serverCount[@]} do serviceInstall $i done echo -e ‘\n\n‘ ;; drop) $dataPath/mysql/support-files/mysql.server stop &>> $log && echo "mysql stop successfully" || echo "mysql stop failed" $dataPath/httpd/bin/apachectl stop &>> $log && echo "mysql stop successfully" || echo "mysql stop failed" groupdel mysql &>> $log userdel -r mysql &>> $log echo `date ‘+%F %T‘` for i in ${serverCount[@]} do serviceDrop $i done echo -e ‘\n\n‘ rm -f $log ;; config) echo `date ‘+%F %T‘` for i in ${serverCount[@]} do serviceConfig $i done echo -e ‘\n\n‘ $dataPath/mysql/support-files/mysql.server restart &>> $log && echo "mysql start successfully" || echo "mysql start failed" $dataPath/httpd/bin/apachectl restart &>> $log && echo "mysql start successfully" || echo "mysql start failed" ;; quit) exit 0 ;; esac done 测试 [root@localhost ~]# ./test.sh Please enter the installation path:/usr/local Please enter your package path:/opt Please enter the | config | unpack | install | drop | quit | to complete the configuration: unpack 2017-02-28 10:45:10 Began to unzip the installation services Unpack the /opt/apr-1.5.0.tar.bz2 success Unpack the /opt/apr-util-1.5.3.tar.bz2 success Unpack the /opt/httpd-2.4.9.tar.bz2 success Unpack the /opt/lamp-server failed Unpack the /opt/mysql-5.5.33.tar.bz2 success Unpack the /opt/php-5.4.26.tar.bz2 success Unpack the /opt/xcache-3.1.0.tar.bz2 success Please enter the | config | unpack | install | drop | quit | to complete the configuration: install 2017-02-28 10:47:30 Began to extract the apr installation apr installed successfully Began to extract the apr-util installation apr-util installed successfully Began to extract the httpd installation httpd installed successfully Began to extract the mysql installation mysql installed successfully Began to extract the php installation php installed successfully Began to extract the xcache installation xcache installed successfully Please enter the | config | unpack | install | drop | quit | to complete the configuration: config 2017-02-28 11:00:44 httpd configuration success mysql configuration success xcache configuration success mysql start successfully httpd start successfully [root@localhost ~]# curl -I 172.20.100.101 HTTP/1.1 200 OK Date: Tue, 28 Feb 2017 03:05:11 GMT Server: Apache/2.4.9 (Unix) PHP/5.4.26 X-Powered-By: PHP/5.4.26 Content-Type: text/html Please enter the | config | unpack | install | drop | quit | to complete the configuration: drop mysql stop successfully httpd stop successfully 2017-02-28 11:14:52 Delete the apr service success Delete the apr-util service success Delete the httpd service success Delete the mysql service success Delete the php service success Delete the xcache service success
3、结合图形描述LVS的工作原理;
4、阐述varnish的功能及其应用场景,并通过实际的应用案例来描述配置、测试、调试过程。
5、搭建一套LVS-DR模型的高性能集群,并用Keepalived实现nginx与lvs的高可用集群,同时实现以下功能:
(1)、wordpress程序通过nfs共享给各个realserver;
(2)、后端realserver中的nginx和php分离
代码语言
第十一周作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。