LNMP(nginx+mysql+php)环境/架构 一键安装脚本

该脚本已经在centos 7.1 上测试通过,用时27分,硬件环境(1G,1U)。该脚本有安装PHP加速器xcache:

#!/bin/bash

#该脚本的作用 :在线一键部署LNMP

#Write      :King

#Date       :2015-03-19

#mysql      数据存放目录为/data/mysql

#php        主配置文件在 /usr/local/php/etc

#nginx      web 程序目录/usr/local/nginx/html/index,主配置目录 /usr/local/nignx/conf/nginx.conf

#源码下载目录

SoftDir=‘/usr/local/src‘

#定义安装日志路径

LOG_INS=‘/var/log/install.log‘

#定义Mysql 源码目录:

MysqlS=‘/usr/local/mysql‘

#define make

function MAKE(){

if [ `echo $?` -eq 0 ];then

make >> $LOG_INS 2>&1

else

exit

fi

}

#define make install

function MAKE_INS(){

if [ `echo $?` -eq 0 ];then

make install >> $LOG_INS 2>&1

else

exit

fi

}

#安装系统扩展源:http://dl.fedoraproject.org/pub/epel

if [ `awk ‘{print $3}‘ /etc/redhat-release |awk -F ‘.‘ ‘{print $1}‘` -eq 6 ];then

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm >> $LOG_INS 2>&1

elif [ `awk ‘{print $4}‘ /etc/redhat-release |awk -F ‘.‘ ‘{print $1}‘` -eq 7 ];then

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm >> $LOG_INS 2>&1

fi

#安装系统运维包:

yum install -y lrzsz gcc gcc-c++  bzip2 bzip2-devel make man vim tree unzip wget lua-devel lua-static patch libxml2-devel libxslt libxslt-devel gd gd-devel ntp ntpdate screen sysstat tree rsync lsof autoconf gettext  gettext-devel automake libtool git >> $LOG_INS 2>&1

#升级系统:

yum update -y >> $LOG_INS 2>&1

#替换selinux 配置:

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config

#下载安装Mysql:  http://cdn.mysql.com/Downloads

cd $SoftDir && wget -q http://www.linuser.com/share/soft/mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz

#解压:

tar zxf mysql-5.6.26-linux-glibc2.5-x86_64.tar.gz

#移动解压目录病重命名Mysql:

mv mysql-5.6.26-linux-glibc2.5-x86_64 /usr/local/mysql

#添加mysql 系统用户:

if [ -z `grep mysql /etc/passwd` ] ;then

useradd -s /sbin/nologin mysql

fi

#创建mysql 初始化数据目录:

if [ ! -d "/data/mysql" ] ;then

mkdir -p /data/mysql

fi

#将mysql 初始化目录所属主和组修改为mysql:

chown -R mysql.mysql /data/mysql/

#初始化

cd $MysqlS && ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql  >> $LOG_INS 2>&1

#备份系统默认的my.cnf 文件:

mv /etc/my.cnf{,.bak}

#复制mysql 的 主配置文件到etc 目录下病重命名为my.cnf

\cp support-files/my-default.cnf /etc/my.cnf

#复制mysql 的启动脚本到/etc/init.d 目录下:

\cp support-files/mysql.server /etc/init.d/mysqld

#赋予启动755 权限:

chmod 755 /etc/init.d/mysqld

#修改my.cnf 文件配置如下:

cat << EOF > /etc/my.cnf

[mysqld]

pid-file=/data/mysql/mysql.pid

log-error=/var/log/mysql.log

datadir = /data/mysql

basedir = /usr/local/mysql

character-set-server=utf8

port = 3306

socket = /tmp/mysql.sock

key_buffer_size = 256M

max_allowed_packet = 1M

table_open_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size = 16M

thread_concurrency = 8

binlog_format=mixed

server-id = 1

slow-query-log = 1

slow-query-log-file = /data/mysql/mysql-slow.log

log-bin = mysql-bin

log-bin-index = mysql-bin.index

symbolic-links = 0

skip-name-resolve

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set=utf8

[mysqldump]

quick

max_allowed_packet = 16M

#[mysqld_safe]

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

EOF

#启动mysql:

service mysqld start

if [ `echo $?` -eq 0 ] ;then

echo "Mysql started"

else

exit

fi

#将Mysqld 设置为随机启动:

chkconfig --add mysqld && chkconfig mysqld on

#=====================================                 安装LTP          =======================================

#下载LTP:

cd $SoftDir &&  wget -q http://www.linuser.com/share/soft/ltp-full-20150420.tar.bz2

#解压

tar jxf ltp-full-20150420.tar.bz2

#配置编译参数:

cd ./ltp-full-20150420 && ./configure >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#=====================================                 安装openssl1.0.2           =======================================

#下载openssl:

cd $SoftDir &&  wget -q http://www.linuser.com/share/soft/openssl-1.0.2.tar.gz

#解压:

tar zxf openssl-1.0.2.tar.gz

#进入解压目录,配置编译参数:

cd ./openssl-1.0.2 && ./config >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#=====================================                 安装curl-7.45.0           =======================================

#下载:

cd $SoftDir &&  wget -q http://www.linuser.com/share/soft/curl-7.45.0.tar.gz

#解压:

tar zxf curl-7.45.0.tar.gz

#进入解压目录,配置编译参数:

cd ./curl-7.45.0 && ./configure >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#=====================================                 安装libmcrypt-2.5.8                  ==================================

#下载:

cd $SoftDir &&  wget -q http://www.linuser.com/share/soft/libmcrypt-2.5.8.tar.gz

#解压:

tar zxf libmcrypt-2.5.8.tar.gz

#进入解压目录,配置编译参数:

cd ./libmcrypt-2.5.8 && ./configure >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#=======================================        安装PHP 5.5.22          ====================================

#下载PHP 5.5.22

cd $SoftDir &&  wget -q http://www.linuser.com/share/soft/php-5.5.30.tar.gz

#解压PHP:

tar zxf php-5.5.30.tar.gz

#添加php-fpm 用户,不允许登陆系统

useradd -s /sbin/nologin php-fpm

#进入PHP解压目录,配置编译参数:

cd ./php-5.5.30 && ./configure --prefix=/usr/local/php   --with-config-file-path=/usr/local/php/etc  --enable-fpm   --with-fpm-user=php-fpm  --with-fpm-group=php-fpm   --with-mysql=/usr/local/mysql  --with-mysql-sock=/tmp/mysql.sock  --with-libxml-dir  --with-gd   --with-jpeg-dir   --with-png-dir   --with-freetype-dir  --with-iconv-dir   --with-zlib-dir   --with-mcrypt   --enable-soap   --enable-gd-native-ttf   --enable-ftp  --enable-mbstring  --enable-exif  --enable-zend-multibyte   --disable-ipv6   --with-pear   --with-curl --with-openssl --with-mysqli --enable-mysqlnd --with-gettext >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#复制Php 主配置:

\cp php.ini-production /usr/local/php/etc/php.ini

#创建php-fpm 主配置文件:

cat <<EOF > /usr/local/php/etc/php-fpm.conf

[global]

pid = /usr/local/php/var/run/php-fpm.pid

error_log = /usr/local/php/var/log/php-fpm.log

[www]

listen = 127.0.0.1:9000

user = php-fpm

group = php-fpm

pm = dynamic

pm.max_children = 50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

pm.max_requests = 500

rlimit_files = 1024

EOF

#测试php-fpm 配置:

/usr/local/php/sbin/php-fpm -t

if [ `echo $?` -eq 0 ];then

echo "php-fpm installed successfully"

else

exit

fi

#拷贝php-fpm 启动脚本:

\cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

#赋予脚本可执行权限:

chmod 755 /etc/init.d/php-fpm

#关闭php 版本信息:

sed -i ‘s/expose_php = On/expose_php = Off/g‘ /usr/local/php/etc/php.ini

#将php-fpm 写入随机启动:

chkconfig --add php-fpm && chkconfig php-fpm on

#启动php-fpm

service php-fpm start

#=======================================        安装pcre2-10.00                ====================================

#下载

cd $SoftDir && wget -q http://www.linuser.com/share/soft/pcre-8.37.tar.gz

#解压:

tar zxf pcre-8.37.tar.gz

#接入pcre,配置编译参数:

cd ./pcre-8.37 && ./configure >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#=======================================        添加libmaxminddb        ====================================

#下载:

cd $SoftDir && wget -q http://www.linuser.com/share/soft/libmaxminddb-1.1.1.tar.gz

#解压:

tar zxf libmaxminddb-1.1.1.tar.gz

cd ./libmaxminddb-1.1.1 && ./configure >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#=======================================        添加geoip2模块                ====================================

#下载

cd $SoftDir && wget -q  http://www.linuser.com/share/soft/ngx_http_geoip2_module-master.zip

#解压:

unzip ngx_http_geoip2_module-master.zip >> $LOG_INS 2>&1

#=======================================        添加libuwind               ====================================

#下载:

cd $SoftDir && wget -q http://www.linuser.com/share/soft/libunwind-1.1.tar.gz

#解压:

tar zxf libunwind-1.1.tar.gz

#进入解压目录,配置编译参数::

cd ./libunwind-1.1 && ./configure >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#=======================================        添加gperftools                ====================================

#下载:

cd $SoftDir && wget -q http://www.linuser.com/share/soft/gperftools-master.zip

#解压:

unzip gperftools-master.zip

#进入解压目录,执行autogen.sh 生产配置文件:

cd ./gperftools-master && ./autogen.sh  >> $LOG_INS 2>&1

#配置编译参数:

if [ `echo $?` -eq 0 ];then

./configure >> $LOG_INS 2>&1

else

exit

fi

#编译及安装

MAKE && MAKE_INS

#=======================================        安装Tengine 2.1.0          ====================================

#下载

cd $SoftDir && wget -q http://www.linuser.com/share/soft/nginx-1.8.0.tar.gz

#解压:

tar zxf nginx-1.8.0.tar.gz

#进入解压目录,配置编译参数:

cd ./nginx-1.8.0 && ./configure --prefix=/usr/local/nginx --with-http_realip_module  --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_stub_status_module  --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_secure_link_module --with-http_stub_status_module --with-http_ssl_module --http-log-path=/var/log/nginx_access.log --with-google_perftools_module --with-pcre=/usr/local/src/pcre-8.37 --with-openssl=/usr/local/src/openssl-1.0.2 --add-module=/usr/local/src/ngx_http_geoip2_module-master >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#设置软链接

ln -s /usr/local/lib/libmaxminddb.so.0 /usr/lib64

ln -s /usr/local/lib/libprofiler.so.0 /usr/lib64

ln -s /usr/local/lib/libunwind.so.8 /usr/lib64

#检测初始化完成的nginx 配置是否有问题

/usr/local/nginx/sbin/nginx  -t

if [ `echo $?` -eq 0 ];then

echo "Nginx installed successfully!"

else

exit

fi

#创建nginx 启动脚本

cat <<EOF > /etc/init.d/nginx

#!/bin/bash

# chkconfig: - 30 21

# description: http service.

# Source Function Library

. /etc/init.d/functions

# Nginx Settings

NGINX_SBIN="/usr/local/nginx/sbin/nginx"

NGINX_CONF="/usr/local/nginx/conf/nginx.conf"

NGINX_PID="/usr/local/nginx/logs/nginx.pid"

RETVAL=0

prog="Nginx"

start() {

echo -n \$"Starting \$prog: "

mkdir -p /dev/shm/nginx_temp

daemon \$NGINX_SBIN -c \$NGINX_CONF

RETVAL=\$?

echo

return \$RETVAL

}

stop() {

echo -n \$"Stopping \$prog: "

killproc -p \$NGINX_PID \$NGINX_SBIN -TERM

rm -rf /dev/shm/nginx_temp

RETVAL=\$?

echo

return \$RETVAL

}

reload(){

echo -n \$"Reloading \$prog: "

killproc -p \$NGINX_PID \$NGINX_SBIN -HUP

RETVAL=\$?

echo

return \$RETVAL

}

restart(){

stop

start

}

configtest(){

\$NGINX_SBIN -c \$NGINX_CONF -t

return 0

}

case "\$1" in

start)

start

;;

stop)

stop

;;

reload)

reload

;;

restart)

restart

;;

configtest)

configtest

;;

*)

echo $"Usage: \$0 {start|stop|reload|restart|configtest}"

RETVAL=1

esac

exit \$RETVAL

EOF

#赋予脚本可执行权限

chmod 755 /etc/init.d/nginx

#备份nginx主配置文件

\cp /usr/local/nginx/conf/nginx.conf{,.bak}

#重新nginx 配置:

cat << EOF > /usr/local/nginx/conf/nginx.conf

error_log /var/log/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

worker_processes  1;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

server_tokens off;

server {

listen       80;

server_name  localhost;

location / {

root   html;

index  index.html index.htm index.php;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

location ~ \.php\$ {

root           html;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;

include        fastcgi_params;

}

}

}

EOF

#创建PHP测试文件:

echo "<?php   echo phpinfo();  ?>" >/usr/local/nginx/html/index.php

#备份index.html:

mv /usr/local/nginx/html/index.html{,.bak}

#启动nginx:

service nginx start

#将nginx 写入随机启动:

chkconfig --add nginx && chkconfig nginx on

#开启防火墙的80端口

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

#保存防火墙配置

service iptables save

#重启防火墙:

service iptables restart

#设置nginx、mysql 及php 的环境变量:

echo "PATH=$PATH:/usr/local/php/bin:/usr/local/nginx/sbin:/usr/local/mysql/bin:/usr/local/php/sbin" >> /etc/profile

#刷新环境变量配置,使其立即生效:

source /etc/profile

##=======================================        安装php 加速器 xcache 3.2.0         ====================================

#官方地址:http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz

cd $SoftDir && wget -q http://www.linuser.com/share/soft/xcache-3.2.0.tar.gz

#解压

tar zxf xcache-3.2.0.tar.gz

#执行phpize,生成xcache 的configure 文件

cd ./xcache-3.2.0 && /usr/local/php/bin/phpize --clean &&  /usr/local/php/bin/phpize

#配置编译参数:

./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config >> $LOG_INS 2>&1

#编译及安装

MAKE && MAKE_INS

#将xcache 结合php

echo "extemsiobn_dir=‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/‘" >> /usr/local/php/etc/php.ini

echo "extension=xcache.so" >> /usr/local/php/etc/php.ini

#检测php 是否有误:

/usr/local/php/sbin/php-fpm -t

#重启php-fpm:

service php-fpm restart

时间: 2024-08-03 20:49:29

LNMP(nginx+mysql+php)环境/架构 一键安装脚本的相关文章

LAMP(apache/httpd+mysql+php)环境/架构 一键安装脚本

该脚本只在centos 上测试过,测试OK,其他发行版自行测试 #!/bin/bash #Purpose        :一键安装lamp(apache + mysql + php) #Writer                :www.linuser.com #Date                :2015-10-08 #定义软件下载目录: SoftDir='/usr/local/src' #定义编译函数: function MAKE() { if [ `echo $?` -eq 0 ]

MySQL 5.7.26一键安装脚本,CentOS7.4适用

#!/bin/bash#########MySQL5.7RPM auto install####################2019-5-2###########################mkdir -p /root/mysqlcd /root/mysqlwget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar &>/dev/nulltar xf mysql

Mac下安装LNMP(Nginx+PHP5.6)环境

Mac下安装LNMP(Nginx+PHP5.6)环境 安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10.1)为例,记录一下从零开始安装Mac下LNMP环境的过程 确保系统已经安装xcode,然后使用一行命令安装依赖管理工具Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 之后就可以使用 brew

Linux Debian 下LNMP服务器——nginx+mysql+php环境搭建及配置

昨天刚给公司服务器装了LNMP服务器环境,在这里简单记录一下过程备忘. 这里我在安装的时候是用的Dotdeb源,仅供参考. 1.导入Dotdeb源,据说Dotdeb源里的软件版本比较新. 在向源中导入Dotdeb前,我们需要先获取GnuPG key并导入: wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add - 提示OK,表明导入成功.然后我们开始导入Dotdeb源,源列表的位置在“/etc/apt/sources

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客

HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机   2014年06月02日 17:20 评论» 文章目录 Debian上安装 CentOS上安装 Ubuntu上安装 装Wordpress HHvm安装小结 HHVM是一个强大的可以用于替代PHP的建站环境,出自Facebook团队,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点.实践证明HHVM可以明显地提升PHP执行速度,节省大量的服务器资源

mysql oracle静默 一键安装脚本

pre-read; 为了达到一键搞定的目的!现Ruiy简单做如下几小条规定   如果你想这么一键来搞定请君莫要违背约束!1. 下载 `二进制` mysql软件介质版本不限,二进制包务必,源码及rpm包格式,此处玩不转;eg:    wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz 2. 将下载下来的二进制mysql安装介质放到/opt/yoodo/installs/目录,

MySQL系列之一键安装脚本----单实例/多实例

最近在搞MySQL,由于经常测试一些东西.因此,就写了一个一键安装脚本. 脚本用途: 用于在CentOS/RHEL 6.x系统上快速部署出Mysql的单实例或者多实例环境 脚本说明: 该脚本运行情况良好 针对脚本中,每一步命令执行的正误判断以及提醒非常醒目,可协助执行者快速定位错误源 脚本诸多内容都以声明变量,增加了脚本的灵活性和扩展性 脚本以做模块化处理,对应功能对应函数,方便SA快速更改和了解该脚本 该脚本使用注意事项: 1.能够通公网或者mysql源码包已经放置到/usr/local/sr

Cacti监控服务器配置教程(基于CentOS+Nginx+MySQL+PHP环境搭建)

具体案例:局域网内有两台主机,一台Linux.一台Windows,现在需要配置一台Cacti监控服务器对这两台主机进行监控环境说明:1.Linux主机操作系统:CentOS 6.2IP地址:192.168.21.164子网掩码:255.255.255.0网关:192.168.21.2DNS:8.8.8.8 8.8.4.42.Windows主机操作系统:Windows Server 2003IP地址:192.168.21.130子网掩码:255.255.255.0网关:192.168.21.2DN

手工安装linux+nginx+mysql+php环境

前一篇我们介绍了使用yum安装linux+nginx+mysql+php环境 今天公司分配了个学习主机,但能内网使用,不能访问外网,就不能yum 安装了那我们来试试手动安装本操作都在centos7下进行 先检查gcc 编辑器有没有安装 gcc -v如没有, 从CentOS7的系统安装镜像中取出需要的rpm包,进入"Packages"目录,取出如下几个: mpfr-3.1.1-4.el7.x86_64.rpmlibmpc-1.0.1-3.el7.x86_64.rpmkernel-head