| 关键词: BUILDDIR install logfile echo conf make pkg configure pkgsdir 成功 |
最近要用PHP作一些项目,所有首先需要安装配置LAMP环境,手动安装比较繁琐,但还是成功安装了,现在根据手动安装的过程书写一个自动安装LAMP的shell脚本,已在虚拟机中测试成功。 自动安装LAMP的脚本文件列表如下: pkgs/ :用于存放软件包的目录 conf/ :用于存放配置文件的目录 conf/auto_lamp.conf:主要的配置文件,包括配置安装到的目录,mysql用户名等 conf/extraconf.conf:包含每个安装的软件包的configure配置选项的配置文件 conf/pkgs.conf:软件包版本配置文件 auto_lamp.sh:主要的脚本文件 (1).auto_lamp.sh内容: #! /bin/bash # # export curdir=$(pwd) export confdir=${curdir}/conf export pkgsdir=${curdir}/pkgs export libdir=${curdir}/lib export logfile=${curdir}/log.autolamp export PATH=${PREFIX}/autoconf/bin:$PATH #引入配置文件 for everyconf in $(ls ${confdir}/*.conf);do . $everyconf done if [ ! -e $BUILDDIR ];then mkdir $BUILDDIR else if [ ! -d $BUILDDIR ];then export BUILDDIR=${BUILDDIR}.$$ mkdir $BUILDDIR fi fi #函数定义 #解包函数 untar() { local pkg="$1" local where="$2" tar xvf $pkg -C $where } #软件包安装函数 zlib_install() { untar ${pkgsdir}/$ZLIB $BUILDDIR cd ${BUILDDIR}/$ZLIB_PKG ./configure ${ZLIB_EXTRA_CONF} make && make install if [ $? == 0 ];then echo -e "成功安装ZLIB "》$logfile else echo -e "安装ZLIB失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${ZLIB_PKG} } libjpeg_install() { untar ${pkgsdir}/$LIBJPEG $BUILDDIR cd ${BUILDDIR}/$LIBJPEG_PKG ./configure ${LIBJPEG_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装libjpeg "》$logfile else echo -e "安装libjpeg失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${LIBJPEG_PKG} } freetype_install() { untar ${pkgsdir}/$FREETYPE $BUILDDIR cd ${BUILDDIR}/$FREETYPE_PKG ./configure ${FREETYPE_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装freetype "》$logfile else echo -e "安装freetype失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${FREETYPE_PKG} } libpng_install() { untar ${pkgsdir}/${LIBPNG} $BUILDDIR cd ${BUILDDIR}/$LIBPNG_PKG ./configure ${LIBPNG_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装libpng "》$logfile else echo -e "安装libpng失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${LIBPNG_PKG} } expat_install() { untar ${pkgsdir}/${EXPAT} $BUILDDIR cd ${BUILDDIR}/$EXPAT_PKG ./configure ${EXPAT_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装expat "》$logfile else echo -e "安装expat失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${EXPAT_PKG} } libiconv_install() { untar ${pkgsdir}/${LIBICONV} $BUILDDIR cd ${BUILDDIR}/$LIBICONV_PKG ./configure ${LIBICONV_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装libiconv "》$logfile else echo -e "安装libiconv失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${LIBICONV_PKG} } autoconf_install() { untar ${pkgsdir}/${AUTOCONF} $BUILDDIR cd ${BUILDDIR}/$AUTOCONF_PKG ./configure ${AUTOCONF_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装autoconf "》$logfile else echo -e "安装autoconf失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${AUTOCONF_PKG} } gettext_install() { untar ${pkgsdir}/${GETTEXT} $BUILDDIR cd ${BUILDDIR}/${GETTEXT_PKG} ./configure ${GETTEXT_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装gettext "》$logfile else echo -e "安装gettext失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${GETTEXT_PKG} echo "${PREFIX}/gettext/lib"》/etc/ld.so.conf ldconfig } gd_install() { untar ${pkgsdir}/${GD} $BUILDDIR cd ${BUILDDIR}/$GD_PKG ./configure ${GD_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装gd "》$logfile else echo -e "安装gd失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${GD_PKG} } libxml_install() { untar ${pkgsdir}/${LIBXML} $BUILDDIR cd ${BUILDDIR}/${LIBXML_PKG} ./configure ${LIBXML_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装libxml "》$logfile else echo -e "安装libxml失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${LIBXML_PKG} } libmcrypt_install() { untar ${pkgsdir}/${LIBMCRYPT} $BUILDDIR cd ${BUILDDIR}/${LIBMCRYPT_PKG} ./configure ${LIBMCRYPT_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装libmcrypt "》$logfile else echo -e "安装libmcrypt失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${LIBMCRYPT_PKG} } cronolog_install() { untar ${pkgsdir}/${CRONOLOG} $BUILDDIR cd ${BUILDDIR}/${CRONOLOG_PKG} ./configure ${CRONOLOG_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装cronolog "》$logfile else echo -e "安装cronolog失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${CRONOLOG_PKG} } openssl_install() { untar ${pkgsdir}/${OPENSSL} $BUILDDIR cd ${BUILDDIR}/${OPENSSL_PKG} ./config ${OPENSSL_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装openssl "》$logfile else echo -e "安装openssl失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${OPENSSL_PKG} echo "${PREFIX}/openssl/lib"》/etc/ld.so.conf ldconfig } openssh_install() { untar ${pkgsdir}/${OPENSSH} $BUILDDIR cd ${BUILDDIR}/${OPENSSH_PKG} ./configure ${OPENSSH_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装openssh "》$logfile else echo -e "安装openssh失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${OPENSSH_PKG} } pcre_install() { untar ${pkgsdir}/${PCRE} $BUILDDIR cd ${BUILDDIR}/${PCRE_PKG} ./configure ${PCRE_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装pcre "》$logfile else echo -e "安装pcre失败 " 》 $logfile fi rm -rf ${BUILDDIR}/${PCRE_PKG} } mysql_install() { untar ${pkgsdir}/${MYSQL} $BUILDDIR cd ${BUILDDIR}/${MYSQL_PKG} groupadd ${MYSQL_GROUP} useradd -g ${MYSQL_GROUP} -M ${MYSQL_USER} ./configure ${MYSQL_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装mysql "》$logfile else echo -e "安装mysql失败 " 》 $logfile fi cp support-files/my-medium.cnf /etc/my.cnf cp -v ${PREFIX}/mysql/share/mysql/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld cd ${PREFIX}/mysql bin/mysql_install_db --user=${MYSQL_USER} chown -R root . chown -R ${MYSQL_USER} var chgrp -R ${MYSQL_GROUP} . bin/mysqld_safe --user=${MYSQL_USER} & bin/mysqladmin -u root password "$MYSQL_PASSWORD" rm -rf ${BUILDDIR}/${MYSQL_PKG} } apache_install() { untar ${pkgsdir}/${APACHE} $BUILDDIR cd ${BUILDDIR}/${APACHE_PKG} ./configure ${APACHE_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装apache "》$logfile else echo -e "安装apachel失败 " 》 $logfile fi cp -v ${PREFIX}/apache/bin/apachectl /etc/init.d/httpd chmod -R 755 ${PREFIX}/apache/htdocs rm -rf ${BUILDDIR}/${APACHE_PKG} } php_install() { untar ${pkgsdir}/${PHP} $BUILDDIR cd ${BUILDDIR}/${PHP_PKG} ./buildconf --force ./configure ${PHP_EXTRA_CONF} && make && make install if [ $? == 0 ];then echo -e "成功安装php "》$logfile else echo -e "安装php失败 " 》 $logfile fi mkdir -p ${PREFIX}/php/etc cp php.ini-development ${PREFIX}/php/etc/php.ini echo "Addtype application/x-httpd-php .php .phtml" 》 ${PREFIX}/apache/conf/httpd.conf rm -rf ${BUILDDIR}/${PHP_PKG} } set_selinux() { local choice=${1:-allow} case $choice in shutdown) #关闭SELINUX sed -i -e "s@SELINUX=enforcing@SELINUX=disabled@" /etc/selinux/config ;; *) setenforce 0 chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t ${PREFIX}/apache/modules/libphp5.so setenforce 1 ;; esac } conf_apache() { #配置 httpd.conf sed -i -e "s|ServerAdmin [email protected]|ServerAdmin $(hostname)|" ${PREFIX}/apache/conf/httpd.conf sed -i -e "s|ServerName www.example.com:80|ServerName localhost:80|" ${PREFIX}/apache/conf/httpd.conf sed -i -e "s|DirectoryIndex|DirectoryIndex index.php|" ${PREFIX}/apache/conf/httpd.conf service httpd restart } test_success() { #测试 service httpd start service mysqld start echo "<?php phpinfo(); ?>" >${PREFIX}/apache/htdocs/index.php chmod 755 ${PREFIX}/apache/htdocs/index.php } phpmyadmin_install() { untar ${pkgsdir}/$PHPMYADMIN ${PREFIX} mv ${PREFIX}/${PHPMYADMIN_PKG} ${PREFIX}/apache/htdocs/phpmyadmin cd ${PREFIX}/apache/htdocs/phpmyadmin mv config.sample.inc.php config.inc.php } zlib_install && libjpeg_install && freetype_install && libpng_install && expat_install && libiconv_install && autoconf_install && gd_install && libxml_install && libmcrypt_install && cronolog_install && openssl_install && openssh_install && pcre_install && mysql_install && apache_install && php_install && conf_apache if [ $Whether_Start_Selinux == 'y' ];then set_selinux $SET_SELINUX fi test_success phpmyadmin_install |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|