一键源码部署lnmp,版本任意选:
    这个脚本可以根据需要安装单个nginx或者PHP等,也可以一键部署Nginx、PHP、MySQL。版本和路径也是可以根据自己的需要指定的,如果遇到报错可以评论区反馈,由于个人写脚本不太喜欢注释,所以劳费各人仔细端详了。

    1. #!/bin/bash
    2. #by zyz
    3. #############################
    4. # 设置源码目录:
    5. BASE_DIR=/usr/src/
    6. ### 部署nginx:
    7. install_nginx() {
    8. NGINX_VERSION=1.18.0
    9. if [ -d /usr/local/nginx ];then
    10. echo "请核实在/usr/local/目录下是否已经安装nginx服务!"
    11. else
    12. # 安装依赖:
    13. yum install wget pcre-devel zlib-devel -y
    14. wget -c -P "$BASE_DIR" http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz
    15. if [ $? -ne 0 ];then
    16. echo "请检查网络是否正常或者链接是否失效!"
    17. else
    18. cd "$BASE_DIR"
    19. tar xf nginx-$NGINX_VERSION.tar.gz
    20. cd nginx-$NGINX_VERSION
    21. ./configure --prefix=/usr/local/nginx && make && make install
    22. echo "nginx 部署成功!"
    23. fi
    24. fi
    25. }
    26. ### 部署php:
    27. install_php() {
    28. PHP_VERSION=5.6.8
    29. if [ -d /usr/local/php ];then
    30. echo "请核实在/usr/local/目录下是否已经安装php服务!"
    31. else
    32. # 安装依赖:
    33. yum -y install wget gd curl curl-devel libjpeg libjpeg-devel libpng \
    34. libpng-devel freetype freetype-devel libxml2 libxml2-devel
    35. wget -c -P /usr/src/ http://mirrors.sohu.com/php/php-$PHP_VERSION.tar.gz
    36. if [ $? -ne 0 ];then
    37. echo "请检查网络是否正常或者链接是否失效!"
    38. else
    39. cd $BASE_DIR
    40. tar xf php-$PHP_VERSION.tar.gz
    41. cd php-$PHP_VERSION
    42. ./configure --prefix=/usr/local/php \
    43. --enable-fpm \
    44. --enable-debug \
    45. --with-gd \
    46. --with-jpeg-dir \
    47. --with-png-dir \
    48. --with-freetype-dir \
    49. --enable-mbstring \
    50. --with-curl \
    51. --with-mysql=mysqlnd \
    52. --with-mysqli=mysqlnd \
    53. --with-pdo-mysql=mysqlnd \
    54. --with-config-file-path=/usr/local/php/etc \
    55. --with-zlib-dir
    56. [ $? -eq 0 ] && {
    57. make && make install
    58. }
    59. # 初始化PHP:
    60. \cp php.ini-development /usr/local/php/etc/php.ini
    61. \cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    62. \cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
    63. chmod +x /etc/init.d/php-fpm
    64. echo "php 部署成功!"
    65. fi
    66. fi
    67. }
    68. ### 部署MySQL
    69. install_mysql() {
    70. MYSQL_VERSION=5.5.60
    71. if [ -d /usr/local/mysql ];then
    72. echo "请核实在/usr/local/目录下是否已经安装MySQL服务!"
    73. else
    74. # 安装依赖:
    75. yum install wget gcc libaio bison gcc-c++ git cmake ncurses-devel ncurses -y
    76. [ $? -eq 0 ] && {
    77. wget -c -P $BASE_DIR \
    78. http://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-$MYSQL_VERSION.tar.gz
    79. if [ $? -ne 0 ];then
    80. echo "请检查网络或者链接是否失效!"
    81. else
    82. cd $BASE_DIR
    83. tar xf mysql-$MYSQL_VERSION.tar.gz
    84. cd mysql-$MYSQL_VERSION
    85. cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
    86. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    87. -DMYSQL_DATADIR=/data/mysql \
    88. -DSYSCONFDIR=/usr/local/mysql/ \
    89. -DMYSQL_USER=mysql \
    90. -DMYSQL_TCP_PORT=3306 \
    91. -DWITH_XTRADB_STORAGE_ENGINE=1 \
    92. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    93. -DWITH_PARTITION_STORAGE_ENGINE=1 \
    94. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    95. -DWITH_MYISAM_STORAGE_ENGINE=1 \
    96. -DWITH_READLINE=1 \
    97. -DENABLED_LOCAL_INFILE=1 \
    98. -DWITH_EXTRA_CHARSETS=1 \
    99. -DDEFAULT_CHARSET=utf8 \
    100. -DDEFAULT_COLLATION=utf8_general_ci \
    101. -DEXTRA_CHARSETS=all \
    102. -DWITH_BIG_TABLES=1 \
    103. -DWITH_DEBUG=0
    104. [ $? -eq 0 ] && {
    105. make && make install
    106. }
    107. # 初始化MySQL:
    108. \cp support-files/my-large.cnf /usr/local/mysql/my.cnf
    109. \cp support-files/mysql.server /etc/init.d/mysqld
    110. chmod +x /etc/init.d/mysqld
    111. mkdir -p /data/mysql
    112. useradd -s /sbin/nologin mysql
    113. chown -R mysql. /data/mysql
    114. /usr/local/mysql55/scripts/mysql_install_db --user=mysql \
    115. --datadir=/data/mysql --basedir=/usr/local/mysql
    116. echo "MySQL 部署成功!"
    117. fi
    118. }
    119. fi
    120. }
    121. all_install() {
    122. install_nginx && install_php && install_mysql
    123. }
    124. echo
    125. echo -e "1) 安装nginx\n"
    126. echo -e "2) 安装php\n"
    127. echo -e "3) 安装mysql\n"
    128. echo -e "4) lnmp一键部署\n"
    129. read -p "请根据需要输入指定数值选项:" num
    130. case $num in
    131. 1)
    132. install_nginx
    133. ;;
    134. 2)
    135. install_php
    136. ;;
    137. 3)
    138. install_mysql
    139. ;;
    140. 4)
    141. all_install
    142. ;;
    143. *)
    144. echo "请输入正确数值选项!"
    145. ;;
    146. esac