lnmp一键安装脚本

简介:
#!/bin/bash
# name: Install nginx service.
#
# user
path="/server/packages"
nginx_package="nginx-1.17.10"
mysql_user=mysql
mysql_package=mysql-5.5.62
mysql_path=/usr/local/mysql
php_package="php-5.6.38"

nginx_init(){
    if [ ! -d $path ];then
        mkdir -p $path
    fi
    if [ ! -e ${path}/${nginx_package}.tar.gz ];then
        wget -P ${path}/ http://172.16.0.7/packages/${nginx_package}.tar.gz &>/dev/null
    fi
}
nginx_install(){
    id nginx &>/dev/null
    [ $? -ne 0 ]&&{
        useradd -r -s /sbin/nologin nginx &>/dev/null
    }
    yum install -y gcc* pcre-devel net-tools opensll lsof openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel &>/dev/null
    [ $? -ne 0 ]&&{
        echo "Installation dependency failed."
        exit 1
    }
    tar zxf /server/packages/${nginx_package}.tar.gz -C /server/packages/ &>/dev/null
    if [ $? -eq 0 ]
    then
        echo "Installing..."
        cd /server/packages/nginx-1.17.10
        ./configure --prefix=/usr/local/nginx \
        --user=nginx --group=nginx \
        --with-http_stub_status_module \
        --with-http_ssl_module &>/dev/null
        if [ $? -eq 0 ];then
            make &> /dev/null
            make install &> /dev/null
            [ $? -eq 0 ]||{
                echo "nginx install failed."
                exit 1
            }
        else
            echo -e "\033[31mconfigure falied.\033[0m"
        fi
        echo -e "\033[32mnginx install success.\033[0m"
    fi
}
#mysql_user=mysql
#mysql_package=mysql-5.5.62
#mysql_path=/usr/local/mysql
mysql_init(){
    if [ ! -e /server/packages/${mysql_package}.tar.gz ];then
        wget -P /server/packages/ http://172.16.0.7/packages/${mysql_package}.tar.gz &>/dev/null
    fi
    id ${mysql_user} &>/dev/null
    [ $? -ne 0 ]&&{
        useradd -r -s /sbin/nologin ${mysql_user} &>/dev/null
        if [ $? -eq 0 ];then
            echo "user: ${mysql_user} create success."
        else
            echo "user: ${mysql_user} create failed,please check it!"
            exit 1
        fi
    }
}
mysql_install(){
    tar zxf /server/packages/${mysql_package}.tar.gz -C /server/packages/ &>/dev/null
    if [ $? -eq 0 ];then
        echo "Installing..."
        cd /server/packages/${mysql_package}/
        cmake -DCMAKE_INSTALL_PREFIX=${mysql_path} \
        -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all \
        -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
        -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
        -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 \
        -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=${mysql_user} \
        -DMYSQL_TCP_PORT=3306 &>/dev/null
        if [ $? -eq 0 ];then
            make &>/dev/null
            make install &>/dev/null
            [ $? -ne 0 ]&&{
                echo -e "\033[31minstall failed,please check.\033[0m"
                exit 1
            }||{
               echo "install success."
               ln -s ${mysql_path}/bin/* /usr/local/bin/ &>/dev/null
               }
        fi
        cd ${mysql_path}/
        chown -R root .
        chown -R mysql data/
    fi
    echo "configure mysql..."
    \cp /server/packages/${mysql_package}/support-files/my-medium.cnf /etc/my.cnf &>/dev/null
    cd ${mysql_path}
    ./scripts/mysql_install_db --user=mysql &>/dev/null
    if [ $? -eq 0 ];then
        \cp ${mysql_path}/support-files/mysql.server /etc/init.d/mysqld &>/dev/null
        chmod +x /etc/init.d/mysqld
        chkconfig --add mysqld &>/dev/null
        chkconfig mysqld on &>/dev/null
        service mysqld start
        mysqladmin -uroot password 123456
        [ $? -eq 0 ]&&{
        echo "mysql configure success."
        }||{
        echo -e "\033[31mconfigure falied,please check it.\033[0m"
           }
    fi
}
#php_package="php-5.6.38"
php_init(){
    id www &>/dev/null
    if [ $? -ne 0 ];then
    groupadd www
    if [ ! -e ${path}/${php_package}.tar.gz ];then
        wget -P ${path}/ http://172.16.0.7/packages/${php_package}.tar.gz &>/dev/null
        if [ $? -ne 0 ];then
        echo "download php package failed."
            exit 1
        fi
    fi
    fi
}
php_install(){
    tar zxf ${path}/${php_package}.tar.gz -C ${path}/ &>/dev/null
    if [ $? -eq 0 ];then
        echo "Installing..."
        cd ${path}/${php_package}/
        ./configure \
        --prefix=/usr/local/php/ \
        --with-config-file-path=/usr/local/php/etc/ \
        --with-mysqli=/usr/local/mysql/bin/mysql_config \
        --enable-soap --enable-mbstring=all \
        --enable-sockets \
        --with-pdo-mysql=/usr/local/mysql \
        --with-gd --without-pear --enable-fpm &>/dev/null
        if [ $? -eq 0 ];then
            make &>/dev/null
            make install &>/dev/null
            [ $? -ne 0 ]&&{
                echo -e "\033[31minstall failed,please check.\033[0m"
                exit 1
            }||{
                   echo "install success."
           }
        else
            echo "configure failed"
            exit 1
        fi
    else
        exit 2
    fi
}
php_config(){
echo "configure php..."
\cp -a ${path}/${package}/php.ini-production /usr/local/php/etc/php.ini
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
}
starts(){
    id www &>/dev/null
    [ $? -ne 0 ]&&{
        useradd -u 1111 www -g www  &>/dev/null
    }
    wget -O /usr/local/nginx/conf/nginx.conf http://172.16.0.7/profile/nginx.conf &>/dev/null
    wget -O /usr/local/php/etc/php-fpm.conf http://172.16.0.7/profile/php-fpm.conf &>/dev/null
    wget -O ${path}/nginx http://172.16.0.7:/start/nginx &>/dev/null
    \cp ${path}/nginx /etc/init.d/
    chkconfig --add nginx
    chkconfig nginx on
    if [ $? -eq 0 ];then
         \cp ${path}/nginx /usr/bin/
         chmod +x /usr/bin/nginx
         nginx start
         if [ $? -eq 0 ];then
             echo "nginx is started."
         fi
    fi
}
mon(){
    wget -O ${path}/nginx/mon-nginx.sh http://172.16.0.7/scripts/mon-nginx.sh &>/dev/null
    echo "/bin/sh /usr/local/nginx/mon-nginx.sh" >>/etc/rc.local
    echo "*/5 * * * * /bin/sh /usr/local/nginx/mon-nginx.sh" >>/var/spool/cron/root
    chmod +x /etc/rc.d/rc.local
}
main(){
    nginx_init
    nginx_install
    mysql_init
    mysql_install
    php_init
    php_install
    php_config
    starts
    mon
}
main
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
9月前
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
647 23
|
NoSQL 应用服务中间件 PHP
LNMP一键安装
LNMP一键安装
|
关系型数据库 Linux 应用服务中间件
linux服务器下LNMP安装与配置方法
通过遵循上述步骤,你已经在Linux服务器上成功配置了LNMP环境。这只是初步设置,根据你的实际需求,可能需要进一步的调整与优化。记得经常检查每个组件的默认配置文件,并根据需要进行调整以优化性能和安全性。
315 0
|
缓存 Linux PHP
17.17 LNMP安装php扩展模块
我们已经知道 LNMP 一键安装包默认只安装了最基本的 Nginx+Mysql+PHP 环境,并没有安装扩展功能模块,如果需要安装扩展模块该怎么办?
349 0
17.17 LNMP安装php扩展模块
|
关系型数据库 应用服务中间件 Linux
linux 下安装 LNMP 最简单的安装方法
linux 下安装 LNMP 最简单的安装方法
219 0
|
运维 Linux 数据安全/隐私保护
宝塔手把手教学-Linux面板安装LNMP & worldpress个人博客
宝塔手把手教学-Linux面板安装LNMP & worldpress个人博客
396 1
|
tengine NoSQL 关系型数据库
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
243 0
ezhttp一键安装配置lnmp lamp lnamp(nginx apache php mysql)环境
|
关系型数据库 MySQL Linux
一台新的Linux服务器什么都没安装,可以直接使用docker搭建LNMP环境吗?底层原理是什么?
一台新的Linux服务器什么都没安装,可以直接使用docker搭建LNMP环境吗?底层原理是什么?
302 0
|
Ubuntu 关系型数据库 MySQL
17.16 LNMP一键安装
本节介绍如何利用下载好的 LNMP 一键安装包在Linux系统上安装 LNMP 环境。
392 0
17.16 LNMP一键安装
|
关系型数据库 Shell C++
debian12/ubuntu24/22/20 shell 脚本自动编译web安装网站环境 nginx1.26.0 php7/8 mariadb1011
1.ubuntu 搭建 nginx199 php-fpm7/8 mariadb10.11 c++ cgi-bin 2.mysql 重置 root 密码,创建 或删除 mysql 子库和子用户 3. ubuntu 搭建 c++ cgi-bin 4.自动生成 wwwconf 子站点 5. 建议选择 ubuntu20.04 版本
809 0