1、简介
使用shell脚本安装lnmp,纯粹是偷懒,平时安装一些东西都写成脚本了,方便以后在其他机器安装的时候不用再去查找文档。
2、环境说明
阿里云ECS(1G1核)CentOS 7.4 64位
3、shell脚本
3.1 cnl_function.sh
#!/bin/bash #chennailuan's function #check last command id Ok or not. check_ok(){ if [ $? != 0 ] then echo Error,Check the error log. exit 1 fi } #if the packge installed ,then omit myum(){ if ! rpm -qa|grep -q "^$1" then yum install -y $1 check_ok else echo $1 already installed. fi } #check service is running or not ,example nginx ,httpd ,php-fpm check_service(){ if [ $1 == "phpfpm" ] then s="php-fpm" else s=$1 fi n=`ps aux | grep $s | wc -l` if [ $n -gt 1 ] then echo "$1 service is already started." else if [ -f /etc/init.d/$1 ] then /etc/init.d/$1 start check_ok else install_$1 fi fi }
3.2 cnl_install_lnmp_init.sh
#!/bin/bash source ./cnl_function.sh echo "It will install lamp=========================================================================================begin" #sleep 2 #get the archive of the system ,i686 or x86_64 ar=`arch` #close selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config selinux_s=`getenforce` if [ $selinux_s == "enforcing" ] then setenforce 0 fi #install some packges for p in gcc wget perl perl-devel libaio libaio-devel pcre-devel zlib-devel autoconf openssl openssl-devel do myum $p done #install epel. if rpm -qa epel-release > /dev/null then rpm -e epel-release fi if ls /etc/yum.repos.d/epel-7.repo* > /dev/null 2>&1 then rm -f /etc/yum.repos.d/epel-7.repo* fi wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
3.3 cnl_install_lnmp.sh
#!/bin/bash source ./cnl_function.sh source ./cnl_install_lnmp_init.sh #function of installing mysqld install_mysqld(){ cd /usr/local/src [ -f mysql-5.6.26-linux-glibc2.5-$ar.tar.gz ] || wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.26-linux-glibc2.5-$ar.tar.gz check_ok tar -zxf mysql-5.6.26-linux-glibc2.5-$ar.tar.gz check_ok [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_`date +%s` mv mysql-5.6.26-linux-glibc2.5-$ar /usr/local/mysql check_ok if ! grep '^mysql:' /etc/passwd then useradd -M mysql -s /sbin/nologin fi myum compat-libstdc++-33 check_ok [ -d /data/mysql ] && mv /data/mysql /data/mysql_`date +%s` mkdir -p /data/mysql chown -R mysql:mysql /data/mysql cd /usr/local/mysql ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql check_ok cp support-files/my-default.cnf /etc/my.cnf check_ok sed -i '/^\[mysqld\]$/a\datadir = /data/mysql' /etc/my.cnf cp support-files/mysql.server /etc/init.d/mysqld sed -i 's#^datadir=#datadir=/data/mysql#' /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld start check_ok } #function of install nginx install_nginx(){ cd /usr/local/src [ -f nginx-1.15.6.tar.gz ] || wget http://nginx.org/download/nginx-1.15.6.tar.gz tar -zxf nginx-1.15.6.tar.gz cd nginx-1.15.6 myum pcre-devel [ -d /usr/local/nginx ] && cp -R /usr/local/nginx /usr/local/nginx_`date +%s` check_ok ./configure \ --prefix=/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-ipv6 \ --with-http_v2_module \ --with-poll_module \ --with-http_realip_module \ --with-http_sub_module \ --with-http_gzip_static_module \ --with-http_dav_module \ --with-http_flv_module make && make install check_ok if [ -f /etc/init.d/nginx ] then mv /etc/init.d/nginx /etc/init.d/nginx_`date +%s` fi curl https://cnlpublic.nl166.com/cnlfile/nginx/.nginx_init -o /etc/init.d/nginx check_ok chmod 755 /etc/init.d/nginx chkconfig --add nginx chkconfig nginx on curl https://cnlpublic.nl166.com/cnlfile/nginx/.nginx_conf -o /usr/local/nginx/conf/nginx.conf check_ok if ! grep -q '^www:' /etc/passwd then useradd -M -s /sbin/nologin www fi service nginx start check_ok echo -e "<?php \n phpinfo(); \n ?>" > /usr/local/nginx/html/index.php check_ok } #function of install php-fpm version 5.6 install_phpfpm(){ cd /usr/local/src/ [ -f php-5.6.6.tar.gz ] || wget http://mirrors.sohu.com/php/php-5.6.6.tar.gz tar -zxf php-5.6.6.tar.gz && cd php-5.6.6 for p in openssl-devel bzip2-devel \ libxml2-devel curl-devel libpng-devel libjpeg-devel \ freetype-devel libmcrypt-devel libtool-ltdl-devel perl-devel do myum $p done if ! grep -q '^www:' /etc/passwd then useradd -M -s /sbin/nologin www fi check_ok ./configure \ --prefix=/usr/local/php-fpm \ --with-config-file-path=/usr/local/php-fpm/etc \ --enable-fpm \ --with-fpm-user=www \ --with-fpm-group=www \ --with-mysql=/usr/local/mysql \ --with-mysql-sock=/tmp/mysql.sock \ --with-pdo-mysql \ --with-pdo-sqlite \ --with-libxml-dir \ --with-gd \ --with-gettext \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-iconv-div \ --with-zlib-dir \ --with-mcrypt \ --enable-soap \ --enable-gd-native-ttf \ --enable-ftp \ --enable-mbstring \ --enable-exif \ --enable-sockets \ --disable-ipv6 \ --with-pear \ --with-curl \ --with-mysqli \ --with-openssl check_ok make && make install check_ok [ -f /usr/local/php-fpm/etc/php.ini ] || cp php.ini-production /usr/local/php-fpm/etc/php.ini if /usr/local/php-fpm/bin/php -i || grep -iq 'date.timezone => no value' then sed -i '/;date.timezone =$/a\date.timezone = "PRC"' /usr/local/php-fpm/etc/php.ini check_ok fi [ -f /usr/local/php-fpm/etc/php-fpm.conf ] || curl https://cnlpublic.nl166.com/cnlfile/php/.phpfpm_conf -o /usr/local/php-fpm/etc/php-fpm.conf [ -f /etc/init.d/phpfpm ] || cp sapi/fpm/init.d.php-fpm /etc/init.d/phpfpm chmod 755 /etc/init.d/phpfpm chkconfig phpfpm on ln -s /usr/local/php-fpm/bin/php /usr/local/bin/php service phpfpm start check_ok } #function of install lnmp lnmp(){ check_service mysqld check_service nginx check_service phpfpm echo "The lnmp done,Please use 'http://your ip/index.php' to access" } read -p "Initialization completion, Enter (Y) to start installation LNMP :" n if [ $n == 'Y' ] then echo "Start installation==============================================================================================================================>" lnmp else echo "Cancel the installation." fi
4、开始安装
上面上个文件放在同一目录
在shell目录执行 sh cnl_install_lnmp.sh
输入 Y 确认执行安装,需要安装的安装包会自己检查,本人在自己的几台服务器都测试过,安装正常。
安装完会自己加到系统服务 ,并启动。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍shell 脚本安装PHP扩展的简单方法,包括了shell 脚本安装PHP扩展的简单方法的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇shell 脚本安装PHP扩展的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍阿里云主机一键安装lamp、lnmp环境的shell脚本分享,包括了阿里云主机一键安装lamp、lnmp环境的shell脚本分享的使用技巧和注意事项,需要的朋友参考一下 阿里云主机一键安装lamp,lnmp,自动安装脚本,由阿里云主机分享 一键安装包下载地址:点击下载 1、阿里云分享的一键安装lamp,lnmp,此安装包包含的软件及版本为: 2、请使用最新的一键安装包脚本安装,以前老
本文向大家介绍lnmp安装多版本PHP共存的方法详解,包括了lnmp安装多版本PHP共存的方法详解的使用技巧和注意事项,需要的朋友参考一下 通过lnmp安装了PHP7版本,但是发现与程序不兼容,需要降低到7.0以下的版本。 查找lnmp的install.sh文件,一般在/root/lnmp1.5/install.sh 下执行命令 sudo ./install.sh mphp 等待安装过程 安装结束
本文向大家介绍一个简洁的全自动安装LNMP服务器环境的Shell脚本分享,包括了一个简洁的全自动安装LNMP服务器环境的Shell脚本分享的使用技巧和注意事项,需要的朋友参考一下 此脚本在生产服务器上使用了一年多,本脚本崇尚简单唯美,只需要一个脚本就可以在任何一台有网络的服务器上自动配置LNMP。 本脚本会在脚本执行目录下,建packages目录用于存放LNMP所需要的软件。大家安装完可以删除该目
问题内容: 如何从外壳脚本内部执行Java方法? 问题答案: 您只能调用该方法。设计您的方法,使其调用所需的方法。 当我说 调用 方法时,您不会显式调用它。调用它是Java程序的唯一入口点。 如果您的班级看起来像: 您可以使用以下命令行在您可以找到的目录中调用from (如果您位于下面显示的结构的目录中): 如果要从其他目录(请参见下面的目录结构)执行此操作,则必须设置类路径。 为了清楚起见,请采
6. Shell脚本的调试方法 Shell提供了一些用于调试脚本的选项,如下所示: -n 读一遍脚本中的命令但不执行,用于检查脚本中的语法错误 -v 一边执行脚本,一边将执行过的脚本命令打印到标准错误输出 -x 提供跟踪执行信息,将执行的每一条命令和结果依次打印出来 使用这些选项有三种方法,一是在命令行提供参数 $ sh -x ./script.sh 二是在脚本开头提供参数 #! /bin/sh