LNMP安装脚本详解(指令及逻辑详解)

话不多说上指令

#!/bin/bash
. /etc/init.d/functions
MMM=rpm -qa | grep mariadb
cat <<END
±---------------------------------+
| |
| This is a LNMP |
| |
| 1.安装Nginx |
| 2.安装MySQL |
| 3.安装PHP |
| 4.配置LNMP环境 |
±---------------------------------+
END
#node 1.
read -p “请你输入一个数字:” NUM
expr KaTeX parse error: Expected 'EOF', got '&' at position 9: NUM + 1 &̲> /dev/null i…?" -ne 0 ];then
action “对不起,请你输入整数!!!” /bin/false
exit 1
elif [ “KaTeX parse error: Expected 'EOF', got '#' at position 77: … exit 1 fi #̲node 2. [ "NUM” = “1” ] && {
echo “开始安装Nginx服务,请稍后…”
yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y &>/dev/null && useradd -M -s /sbin/nologin nginx && cd /usr/local/src && wget http://nginx.org/download/nginx-1.12.2.tar.gz &>/dev/null && tar zxf nginx-1.12.2.tar.gz &&
cd /usr/local/src/nginx-1.12.2 && ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx &>/dev/null && make &>/dev/null && make install &>/dev/null
if [ -f /usr/local/nginx/sbin/nginx ];then
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
fi
if [ “KaTeX parse error: Expected 'EOF', got '&' at position 56: …!!!" /bin/true &̲& /usr/local/ng…NUM” = “2” ] && {
echo “开始安装MySQL服务,请稍后…”
if [ -n KaTeX parse error: Expected 'EOF', got '&' at position 48: …libs --nodeps 2&̲> /dev/null …PATH:/usr/local/mysql/bin" >> /etc/profile && source /etc/profile && groupadd mysql && useradd -r -g mysql -s /bin/false mysql
cat << EOF > /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/log/mysql.err
EOF
if [ -f /etc/my.cnf ];then
chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql && cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start &> /dev/null
else
echo “MySQL安装失败!!!!”
exit 1
fi
ln -s /usr/local/mysql/bin/mysql /usr/local/sbin
ln -s /usr/local/mysql/bin/mysqladmin /usr/local/sbin
oo=cat /usr/local/mysql/log/mysql.err | grep password | awk '{print $11}'
mysqladmin -uroot -pKaTeX parse error: Expected 'EOF', got '&' at position 22: …assword pwd123 &̲>/dev/null if …?" -eq 0 ];then
action “MySQL数据库安装成功,密码为:pwd123” /bin/true
else
action “MySQL数据库安装失败密码初始化失败!” /bin/false
exit 1
fi
}
#node 4.
[ “KaTeX parse error: Expected 'EOF', got '&' at position 14: NUM" = "3" ] &̲& { echo "开…?” -eq 0 ];then
action “恭喜你,成功安装PHP依赖包!!!!” /bin/true
else
action “对不起,PHP依赖包安装失败!!!!” /bin/false
exit 1
fi
cd /usr/local/src && {
echo “开始安装PHP请稍后,过程稍微有点长…”
wget http://cn2.php.net/distributions/php-5.6.27.tar.gz &> /dev/null && tar zxf php-5.6.27.tar.gz && cd php-5.6.27/ && ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt-dir --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl &>/dev/null && make &>/dev/null && make install &>/dev/null
}
if [ “KaTeX parse error: Expected 'EOF', got '&' at position 152: …rc/php-5.6.27/ &̲& { echo "开始配置P…?” -eq 0 ];then
cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
else
action “对不起,PHP配置出现严重错误!!!!” /bin/false
exit 1
fi
if [ ! -d /usr/local/php5.6/etc/php-fpm.conf ];then
sed -i ‘s#;pid = run/php-fpm.pid#pid = run/php-fpm.pid#g’ /usr/local/php5.6/etc/php-fpm.conf
sed -i ‘s/listen = 127.0.0.1:9000/listen = 127.0.0.1:9000/g’ /usr/local/php5.6/etc/php-fpm.conf
sed -i ‘s/pm.max_children = 5/pm.max_children = 300/g’ /usr/local/php5.6/etc/php-fpm.conf
sed -i ‘s/pm.start_servers = 2/pm.start_servers = 20/g’ /usr/local/php5.6/etc/php-fpm.conf
sed -i ‘s/pm.min_spare_servers = 1/pm.min_spare_servers = 20/g’ /usr/local/php5.6/etc/php-fpm.conf
sed -i ‘s/pm.max_spare_servers = 3/pm.max_spare_servers = 100/g’ /usr/local/php5.6/etc/php-fpm.conf
sed -i ‘s/user = nobody/user = nginx/g’ /usr/local/php5.6/etc/php-fpm.conf
sed -i ‘s/group = nobody/group = nginx/g’ /usr/local/php5.6/etc/php-fpm.conf
else
action “对不起,PHP环境配置出错!!!!” /bin/false
exit 1
fi
if [ “KaTeX parse error: Expected 'EOF', got '&' at position 57: …!!!" /bin/true &̲& systemctl st…NUM” = “4” ] && {
echo “开始配置Nginx解析PHP,请稍后…”
if [ -f /usr/local/nginx/conf/nginx.conf ];then
sed -i ‘s/index index.html index.htm;/index index.php index.html index.htm;/g’ /usr/local/nginx/conf/nginx.conf
sed -i ‘s/# root html;/ root html;/g’ /usr/local/nginx/conf/nginx.conf
sed -i ‘s/# fastcgi_pass 127.0.0.1:9000;/ fastcgi_pass 127.0.0.1:9000;/g’ /usr/local/nginx/conf/nginx.conf
sed -i ‘s/# fastcgi_index index.php;/ fastcgi_index index.php;/g’ /usr/local/nginx/conf/nginx.conf
sed -i ‘s*# fastcgi_param SCRIPT_FILENAME /scripts f a s t c g i s c r i p t n a m e ; ∗ f a s t c g i p a r a m S C R I P T F I L E N A M E / s c r i p t s fastcgi_script_name;* fastcgi_param SCRIPT_FILENAME /scripts fastcgiscriptname;fastcgiparamSCRIPTFILENAME/scriptsfastcgi_script_name;*g’ /usr/local/nginx/conf/nginx.conf
sed -i ‘s/# include fastcgi_params;/ include fastcgi.conf;/g’ /usr/local/nginx/conf/nginx.conf
sed -i ‘71d’ /usr/local/nginx/conf/nginx.conf && sed -i ‘N;70a}’ /usr/local/nginx/conf/nginx.conf
sed -i ‘65d’ /usr/local/nginx/conf/nginx.conf && sed -i ‘N;64alocation ~ \.php$ {’ /usr/local/nginx/conf/nginx.conf
else
action “Nginx解析PHP失败!!!” /bin/false
exit 1
fi
echo “开始创建PHP测试页…”
cat << EOF >/usr/local/nginx/html/dog1.php

<?php phpinfo(); ?>

EOF
echo “开始创建MySQL测试页…”
cat << EOF >/usr/local/nginx/html/dog2.php

<?php $link=mysql_connect('127.0.0.1','root','pwd123'); if($link)echo "connection success......"; mysql_close(); ?>

EOF
/usr/local/nginx/sbin/nginx -s reload
if [ “$?” -eq 0 ];then
action “恭喜你LNMP环境搭建成功!!!” /bin/true
else
action “对不起,您的LNMP环境搭建失败!!!!” /bin/false
exit 1
fi
}

逻辑详解

配置mysql
设置mysql账户密码

/usr/local/mysql/bin/mysqladmin -u root password ‘new-password’

MySql实现远程连接,用户grant授权

grant all privileges on . to root@’%’ identified by “your_password” with grant option;

配置nginx
添加配置文件

cd /usr/local/nginx/conf
touch servers

配置nginx.conf

#user nobody;

worker_processes 4;

error_log /var/log/nginx/error.log;

#pid logs/nginx.pid;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
include servers/*;
}
配置nginx的服务(servers);创建一个test.conf并配置

server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /www/;
index index.html index.htm index.php;
}
location @rewrite {
set s t a t i c 0 ; i f ( static 0; if ( static0;if(uri ~ .(css|js|jpg|jpeg|png|gif|ico|woff|eot|svg|css.map|min.map)$) {
set KaTeX parse error: Expected 'EOF', got '}' at position 19: …tic 1; }̲ if (static = 0) {
rewrite ^/(.)$ /index.php?s=/KaTeX parse error: Expected 'EOF', got '}' at position 12: 1; }̲ } loca… {
root /www/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
include fastcgi_params;
}
location ~ /Uploads/.
.php$ {
deny all;
}
}
lnmp服务管理命令
启动nginx

/usr/local/nginx/sbin/nginx

重启nginx

nginx -s reload

停止nginx

nginx -s stop

启动mysql

/bin/systemctl start mysql.service

重启mysql

/bin/systemctl restart mysql.service

停止mysql

service mysql stop

启动PHP-fpm

service php-fpm start

重启PHP-fpm

service php-fpm restart

停止PHP-fpm
service php-fpm stop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值