一键源码部署lnmp,版本任意选:
这个脚本可以根据需要安装单个nginx或者PHP等,也可以一键部署Nginx、PHP、MySQL。版本和路径也是可以根据自己的需要指定的,如果遇到报错可以评论区反馈,由于个人写脚本不太喜欢注释,所以劳费各人仔细端详了。
#!/bin/bash
#by zyz
#############################
# 设置源码目录:
BASE_DIR=/usr/src/
### 部署nginx:
install_nginx() {
NGINX_VERSION=1.18.0
if [ -d /usr/local/nginx ];then
echo "请核实在/usr/local/目录下是否已经安装nginx服务!"
else
# 安装依赖:
yum install wget pcre-devel zlib-devel -y
wget -c -P "$BASE_DIR" http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz
if [ $? -ne 0 ];then
echo "请检查网络是否正常或者链接是否失效!"
else
cd "$BASE_DIR"
tar xf nginx-$NGINX_VERSION.tar.gz
cd nginx-$NGINX_VERSION
./configure --prefix=/usr/local/nginx && make && make install
echo "nginx 部署成功!"
fi
fi
}
### 部署php:
install_php() {
PHP_VERSION=5.6.8
if [ -d /usr/local/php ];then
echo "请核实在/usr/local/目录下是否已经安装php服务!"
else
# 安装依赖:
yum -y install wget gd curl curl-devel libjpeg libjpeg-devel libpng \
libpng-devel freetype freetype-devel libxml2 libxml2-devel
wget -c -P /usr/src/ http://mirrors.sohu.com/php/php-$PHP_VERSION.tar.gz
if [ $? -ne 0 ];then
echo "请检查网络是否正常或者链接是否失效!"
else
cd $BASE_DIR
tar xf php-$PHP_VERSION.tar.gz
cd php-$PHP_VERSION
./configure --prefix=/usr/local/php \
--enable-fpm \
--enable-debug \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-mbstring \
--with-curl \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-config-file-path=/usr/local/php/etc \
--with-zlib-dir
[ $? -eq 0 ] && {
make && make install
}
# 初始化PHP:
\cp php.ini-development /usr/local/php/etc/php.ini
\cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
\cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
echo "php 部署成功!"
fi
fi
}
### 部署MySQL
install_mysql() {
MYSQL_VERSION=5.5.60
if [ -d /usr/local/mysql ];then
echo "请核实在/usr/local/目录下是否已经安装MySQL服务!"
else
# 安装依赖:
yum install wget gcc libaio bison gcc-c++ git cmake ncurses-devel ncurses -y
[ $? -eq 0 ] && {
wget -c -P $BASE_DIR \
http://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-$MYSQL_VERSION.tar.gz
if [ $? -ne 0 ];then
echo "请检查网络或者链接是否失效!"
else
cd $BASE_DIR
tar xf mysql-$MYSQL_VERSION.tar.gz
cd mysql-$MYSQL_VERSION
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/usr/local/mysql/ \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
[ $? -eq 0 ] && {
make && make install
}
# 初始化MySQL:
\cp support-files/my-large.cnf /usr/local/mysql/my.cnf
\cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
mkdir -p /data/mysql
useradd -s /sbin/nologin mysql
chown -R mysql. /data/mysql
/usr/local/mysql55/scripts/mysql_install_db --user=mysql \
--datadir=/data/mysql --basedir=/usr/local/mysql
echo "MySQL 部署成功!"
fi
}
fi
}
all_install() {
install_nginx && install_php && install_mysql
}
echo
echo -e "1) 安装nginx\n"
echo -e "2) 安装php\n"
echo -e "3) 安装mysql\n"
echo -e "4) lnmp一键部署\n"
read -p "请根据需要输入指定数值选项:" num
case $num in
1)
install_nginx
;;
2)
install_php
;;
3)
install_mysql
;;
4)
all_install
;;
*)
echo "请输入正确数值选项!"
;;
esac