Linux系統——Shell腳本——一鍵安裝LNMP

#!/bin/bash
#安裝nginx
echo "安裝nginx服務"
wget  http://nginx.org/download/nginx-1.11.4.tar.gz &>/dev/null
if [ $? -eq 0 ]
thenecho "nginx-1.11.4安裝包下載完成"echo "--開始安裝必要的依賴文件--"yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel  pcre pcre-devel &>/dev/nullif [ $? -eq 0 ]thenecho "依賴文件安裝完成"echo "解壓nginx安裝包到/usr/local目錄下"tar -xf nginx-1.11.4.tar.gz -C /usr/local/srccd /usr/local/src/nginx-1.11.4/echo "創建nginx運行用戶www"useradd www -s /sbin/nologinecho "預編譯nginx"./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --user=www --group=www &>/dev/nullif [ $? -eq 0 ]thenecho "預編譯完成"echo "編譯安裝"make &>/dev/null && make install &>/dev/nullif [ $? -eq 0 ]thenecho "編譯安裝完成"echo "啟動nginx服務"/usr/local/nginx/sbin/nginx &>/dev/nullngx=`ps -ef | grep nginx | wc -l`if [ $ngx -gt 1 ]thenecho "nginx啟動成功"elseecho "nginx啟動失敗"fielseecho "編譯安裝失敗"fielseecho "預編譯失敗"fielseecho "安裝依賴文件失敗"fielseecho "nginx-1.11.4安裝包下載失敗,請檢查原因"fi
cd
#安裝PHP服務
wget http://cn2.php.net/distributions/php-5.6.6.tar.gz --no-check-certificate &>/dev/null
if [ $? -eq 0 ]
thenecho "PHP安裝包下載完成"echo "開始安裝PHP依賴文件"yum -y install gcc autoconf  freetype gd libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel freetype-devel libjpeg-devel bzip2 bzip2-devel openssl openssl-devel &>/dev/nullif [ $? -eq 0 ]thenecho "依賴文件下載成功"echo "安裝libmcrypt"wget  https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz --no-check-certificate &>/dev/nullif [ $? -eq 0 ]thenecho "安裝libmcrypt成功"tar xf libmcrypt-2.5.8.tar.gzcd libmcrypt-2.5.8/./configure --prefix=/usr/local/libmcrypt &>/dev/null && make &>/dev/null  && make install &>/dev/nullcdtar xf php-5.6.6.tar.gz -C /usr/local/srcecho "預編譯PHP"cd /usr/local/src/php-5.6.6./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/usr/local/php5.6/etc/ --with-bz2 --enable-maintainer-zts &>/dev/nullif [ $? -eq 0 ]thenecho "PHP預編譯成功"echo "編譯安裝PHP"make &>/dev/null && make install &>/dev/nullif [ $? -eq 0 ]thenecho "編譯安裝PHP成功"echo "生成php.ini配置文件"cp /usr/local/src/php-5.6.6/php.ini-production  /usr/local/php5.6/etc/php.iniecho "修改fpm配置文件"cd /usr/local/php5.6/etc/cp php-fpm.conf.default php-fpm.confsed -i 's/user = nobody/user = www/g' php-fpm.confsed -i 's/group = nobody/group = www/g' /usr/local/php5.6/etc/php-fpm.confsed -i 's/listen = 127.0.0.1:9000/listen = 0.0.0.0:9000/g' php-fpm.confsed -i 's/pm.max_children = 5/pm.max_children =300/g' php-fpm.confsed -i 's/pm.start_servers = 2/pm.start_servers =20/g' php-fpm.confsed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g' php-fpm.confsed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g' php-fpm.confsed -i 's@;pid = run/php-fpm.pid@pid = run/php-fpm.pid@g' php-fpm.conf#生成啟動文件cp /usr/local/src/php-5.6.6/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpmchmod +x /etc/init.d/php-fpmchkconfig --add php-fpmchkconfig php-fpm on/etc/init.d/php-fpm start &>/dev/nullphp=`netstat -antpu | grep php-fpm | wc -l`if [ $php -gt 0 ]thenecho "php服務啟動成功"echo "查看PHP是否安裝mysql模塊"mokuai=`/usr/local/php5.6/bin/php -m |grep mysqli  |wc -l`if [ $mokuai -eq 1 ]thenecho "PHP連接mysql模塊已經安裝"elseecho "PHP連接mysql模塊安裝失敗"fielseecho "PHP服務啟動失敗"fielseecho "編譯安裝失敗"fielseecho "PHP預編譯失敗"fielseecho "安裝libmcrypt失敗"fielseecho "依賴文件下載失敗"fi
elseecho "PHP安裝包下載失敗"
fi
#安裝mysql服務
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-5.7.26-1.el7.src.rpm &>/dev/null
if [ $? -eq 0 ]
thenecho "mysql安裝包下載完畢"echo "卸載boost"yum -y remove boost-* &>/dev/nullrpm -ivh mysql-community-5.7.26-1.el7.src.rpm &>/dev/null#下載解壓工具yum install -y bzip2 &>/dev/nullif [ $? -eq 0 ]thenecho "bzip2解壓縮工具下載完成"cd /root/rpmbuild/SOURCES/tar xf boost_1_59_0.tar.bz2  -C  /root/echo "卸載系統自帶的mysql"yum -y remove mysql* &>/dev/nullyum -y remove mariadb* &>/dev/nullecho "安裝mysql依賴包"yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel &>/dev/nullif [ $? -eq 0 ]thenecho "mysql依賴包下載完成"echo "創建mysql用戶和用戶組"groupadd mysql && useradd -M -s /sbin/nologin -r -g mysql mysqlecho "創建mysql數據庫存放位置并修改目錄權限"mkdir -p /data/mysql/{data,log} && chown -R mysql:mysql /data/mysqlecho "解壓源碼包"cd /root/rpmbuild/SOURCES/tar xf mysql-5.7.26.tar.gz  -C  /root/cdcd mysql-5.7.26echo "預編譯mysql"cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST=/root/boost_1_59_0 &>/dev/nullif [ $? -eq 0 ]thenecho "mysql預編譯成功"echo "編譯mysql"make  -j  $( grep processor /proc/cpuinfo | wc -l) &>/dev/nullif [ $? -eq 0 ]thenecho "mysql編譯完成"echo "安裝mysql"make install &>/dev/nullif [ $? -eq 0 ]thenecho "mysql安裝完成"echo "修改mysql目錄權限"chown -R mysql:mysql /usr/local/mysql/echo "備份配置文件文件"mv /etc/my.cnf{,.bak}echo "自行創建my.cnf配置文件"echo "
[mysqld]
basedir=/usr/local/mysql         #mysql安裝目錄
datadir=/data/mysql/data     #mysql數據存放目錄
port=3306                   #mysql監聽端口
socket=/usr/local/mysql/mysql.sock #mysql.sock文件存放目錄
symbolic-links=0               #關閉mysql的符號鏈接
character-set-server=utf8        #指定mysql的字符集為utf8
log-error=/data/mysql/log/mysqld.log     #指定mysql的錯誤日志存放路徑
pid-file=/usr/local/mysql/mysqld.pid #mysql的pid文件存放目錄" >/etc/my.cnfecho "生成服務啟動腳本"cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqld   #給腳本添加執行權限echo "添加mysqld開機自啟動"chkconfig --add mysqld      #把mysql添加到系統服務chkconfig mysqld on        #把mysql添加到開機自啟動echo "初始化數據庫"/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql  --basedir=/usr/local/mysql --datadir=/data/mysql/dataecho "啟動數據庫"/etc/init.d/mysqld  startecho "添加path路徑"ln -s /usr/local/mysql/bin/* /usr/local/bin/read -s -p  "請修改mysql密碼:" passwdmysqladmin -u root password "$passwd"elseecho "mysql安裝失敗"fielseecho "mysql編譯失敗"fielseecho "mysql預編譯失敗"fielseecho "mysql依賴包下載失敗"fielseecho "解壓縮工具安裝失敗"fi
elseecho "mysql安裝包下載失敗"
fi

注意修改自己要下載的服務版本噢!

[root@node2 ~]#vim LNMP.sh
[root@node2 ~]#bash LNMP.sh 
安裝nginx服務
nginx-1.11.4安裝包下載完成
--開始安裝必要的依賴文件--
依賴文件安裝完成
解壓nginx安裝包到/usr/local目錄下
創建nginx運行用戶www
預編譯nginx
預編譯完成
編譯安裝
編譯安裝完成
啟動nginx服務
nginx啟動成功
PHP安裝包下載完成
開始安裝PHP依賴文件
依賴文件下載成功
安裝libmcrypt
安裝libmcrypt成功
預編譯PHP
PHP預編譯成功
編譯安裝PHP
編譯安裝PHP成功
生成php.ini配置文件
修改fpm配置文件
php服務啟動成功
查看PHP是否安裝mysql模塊
PHP連接mysql模塊已經安裝
mysql安裝包下載完畢
卸載boost
bzip2解壓縮工具下載完成
卸載系統自帶的mysql
安裝mysql依賴包
mysql依賴包下載完成
創建mysql用戶和用戶組
創建mysql數據庫存放位置并修改目錄權限
解壓源碼包
預編譯mysql
mysql預編譯成功
編譯mysql
mysql編譯完成
安裝mysql
mysql安裝完成
修改mysql目錄權限
備份配置文件文件
mv: cannot stat ‘/etc/my.cnf’: No such file or directory
自行創建my.cnf配置文件
生成服務啟動腳本
添加mysqld開機自啟動
初始化數據庫
啟動數據庫
Starting MySQL. SUCCESS! 
添加path路徑
請修改mysql密碼:mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713550.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713550.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713550.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python中map函數

map(str, path): map函數會將path中的每一個元素傳遞給str函數,從而將它們轉換為字符串。 如果path是一個數字列表,例如[1, 2, 3],那么map(str, path)將返回[1, 2, 3]。 在寫二叉樹時用到map給樹節點進行str轉換是錯的。 map(s…

xsslabs第五關

看一下源碼 <!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <script> window.alert function() { confirm("完成的不錯&#xff01…

MATLAB知識點:條件判斷 if-elseif-else-end語句

?講解視頻&#xff1a;可以在bilibili搜索《MATLAB教程新手入門篇——數學建模清風主講》。? MATLAB教程新手入門篇&#xff08;數學建模清風主講&#xff0c;適合零基礎同學觀看&#xff09;_嗶哩嗶哩_bilibili 節選自?第4章&#xff1a;MATLAB程序流程控制 if、elseif、…

webstorm 創建運行純Typescript項目

創建一個空項目&#xff0c;在項目根目錄創建一個tsconfig.json文件自動配置&#xff1a; 打開終端輸入tsc --init&#xff0c;即可自動生成tsconfig.json文件手動配置&#xff1a; 在項目根目錄下新建一個tsconfig.json文件,并配置如下內容 具體配置可以直接使用下面的配置&am…

【JavaEE】_Spring MVC項目之建立連接

目錄 1. Spring MVC程序編寫流程 2. 建立連接 2.1 RequestMapping注解介紹 2.2 RequestMapping注解使用 2.2.1 僅修飾方法 2.2.2 修飾類與方法 2.3 關于POST請求與GET請求 2.3.1 GET請求 2.3.2 POST請求 2.3.3 限制請求方法 1. Spring MVC程序編寫流程 1. 建立連接&…

如何開好一家汽車美容店,汽車美容保養與裝飾教學

一、教程描述 本套教程共由17張VCD組合而成&#xff0c;教程內容主要包括&#xff1a;美容店的設立和管理&#xff0c;汽車系統與內部結構&#xff0c;汽車美容工具與美容設備&#xff0c;美容用品的選擇與使用&#xff0c;車身打蠟鍍膜與內外清潔&#xff0c;車身拋光與漆面處…

Debezium發布歷史162

原文地址&#xff1a; https://debezium.io/blog/2023/09/22/debezium-2-4-cr1-released/ 歡迎關注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻譯&#xff0c;僅供參考&#xff0c;筆芯筆芯. Debezium 2.4.0.CR1 Released September 22, 2023 by Chris Cranford r…

(介紹與使用)物聯網NodeMCUESP8266(ESP-12F)連接新版onenet mqtt協議實現上傳數據(溫濕度)和下發指令(控制LED燈)

前言 本文詳細介紹了如何利用物聯網技術,通過NodeMCU ESP8266(ESP-12F)模塊連接到新版的OneNet平臺,使用MQTT協議實現數據的上傳與指令的下發。文中首先對NodeMCU ESP8266模塊及其特性進行了簡介,隨后詳細闡述了如何配置和使用MQTT協議連接到OneNet平臺,實現溫濕度數據的…

Azkaban 大數據 任務調度

參考視頻&#xff1a;尚硅谷大數據Azkaban 3.x教程&#xff08;全新發布&#xff09;_嗶哩嗶哩_bilibili Azkaban&#xff1a; 是一個定時、批量工作流任務調度器(工作流程調度&#xff0c;定時調度) 常見的開源調度系統&#xff1a; 簡單單一的任務調度&#xff1a; Linux的…

嵌入式驅動學習第一周——Linux錯誤碼以及 IS_ERR、ERR_PTR、PTR_ERR

前言 本節來學習Linux錯誤碼&#xff0c;因為內核中的函數常常返回指針&#xff0c;如果出錯&#xff0c;也希望能夠通過返回的指針體現出來。 嵌入式驅動學習專欄將詳細記錄博主學習驅動的詳細過程&#xff0c;未來預計四個月將高強度更新本專欄&#xff0c;喜歡的可以關注本博…

【正點原子STM32】RNG硬件隨機數(隨機數發生器、真隨機和偽隨機、應用場景、RNG結構和原理、RNG相關寄存器和HAL庫驅動、RNG基本驅動步驟)

一、RNG簡介 二、RNG框圖介紹 三、RNG相關寄存器介紹 四、RNG相關HAL庫驅動介紹 五、RNG基本驅動步驟 六、編程實戰 七、總結 一、RNG簡介 隨機數發生器&#xff08;RNG&#xff09;在計算機科學和密碼學中具有廣泛的應用場景&#xff0c;包括但不限于以下幾個方面&#xff1a…

QML中動態表格修改數據

1.qml文件中的實現代碼 import QtQuick 2.15 import QtQuick.Window 2.15import QtQuick.Controls 2.0 import Qt.labs.qmlmodels 1.0 import QtQuick.Layouts 1.15Window {width: 640height: 480visible: truetitle: qsTr("Hello World")TableModel{id:table_model…

Python內置函數11——globals()、locals()

文章目錄 概要基礎用法 概要 globals()和locals()都是內置函數&#xff0c;用于獲取當前命名空間中的變量。 globals()函數返回全局命名空間的字典&#xff0c;包括全局變量、函數和模塊。它返回一個表示全局命名空間的字典。你可以使用該函數來查看和修改全局命名空間中的變量…

深入剖析k8s-控制器思想

引言 本文是《深入剖析Kubernetes》學習筆記——《深入剖析Kubernetes》 正文 控制器都遵循K8s的項目中一個通用的編排模式——控制循環 for {實際狀態 : 獲取集群中對象X的實際狀態期望狀態 : 獲取集群中對象X的期望狀態if 實際狀態 期望狀態 {// do nothing} else {執行…

buuctf misc做題筆記

喵喵喵 使用stegsolve.jar&#xff0c;按BGR順序提取出一個png圖片&#xff0c;是一個一半得二維碼&#xff0c;修改圖片高度后&#xff0c;解析出一個百度網盤地址&#xff0c;https://pan.baidu.com/s/1pLT2J4f 下載得到壓縮包flag.rar。解壓成功&#xff0c;但是報一個出錯…

4 在QEMU硬件模擬器中運行開源鴻蒙OpenHarmony4.1的操作系統,無需實體開發板

在QEMU硬件模擬器中運行開源鴻蒙OpenHarmony4.1的操作系統&#xff0c;無需實體開發板 作者將狼才鯨日期2024-03-01 先下載源碼和編譯程序&#xff1a; 查看 開源鴻蒙OpenHarmony4.1源碼下載、編譯&#xff0c;生成OHOS_Image可執行文件的最簡易流程 我準備在QEMU模擬器中運行…

LangChain---大型語言模型(LLM)的標準接口和編程框架

1.背景說明 公司在新的一年規劃中突然提出要搞生成式AI(GenAI)的相關東西&#xff0c;在公司分享的參考資料中了解到了一些相關的信息&#xff0c;之所以想到使用LangChain&#xff0c;是因為在應用中遇到了瓶頸問題&#xff0c;除了已經了解和研究過的OpenAI的ChatGpt&#xf…

藍橋杯Java B組歷年真題(2013年-2019年)

一、2013年真題 1、世紀末的星期 使用日期類判斷就行&#xff0c;這里使用LocalDate&#xff0c;也可以使用Calendar類 答案 2099 使用LocalDate import java.time.LocalDate; import java.time.format.DateTimeFormatter; // 1:無需package // 2: 類名必須Main, 不可修改p…

1小時網絡安全事件報告要求,持安零信任如何幫助用戶應急響應?

12月8日&#xff0c;國家網信辦起草發布了《網絡安全事件報告管理辦法&#xff08;征求意見稿&#xff09;》&#xff08;以下簡稱“辦法”&#xff09;。擬規定運營者在發生網絡安全事件時應當及時啟動應急預案進行處置。 1小時報告 按照《網絡安全事件分級指南》&#xff0c…

速盾:動態網站用cdn更慢嗎

當談到網站速度時&#xff0c;內容傳遞網絡&#xff08;Content Delivery Network&#xff0c;CDN&#xff09;是不可忽視的一個因素。很多人可能有疑惑&#xff0c;動態網站使用CDN是否會導致加載速度變慢。為了解決這個問題&#xff0c;我們需要了解動態網站和CDN的工作原理&…