N25期–第十六周作業

1源碼編譯安裝LNMP架構環境;

2、編寫一個腳本完成以下功能:
   (1)、一鍵搭建LNMP源碼編譯環境;
   (2)、可通過在腳本后面跟上一些參數來自定義安裝目錄等其他選項。"


1、源碼編譯安裝LNMP架構環境;

安裝編譯工具和庫文件
1
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make cmake libtool* git tree

編譯安裝nginx
 [root@localhost opt]# wget http://nginx.org/download/nginx-1.8.1.tar.gz   #下載nginx安裝包 
[root@localhost opt]# tar xzvf nginx-1.8.1.tar.gz        #解壓安裝包 
[root@localhost nginx-1.8.1]# ./configure \         
> --prefix=/usr/local/nginx \ 
> --with-http_realip_module \ 
> --with-http_sub_module \ 
> --with-http_ssl_module \ 
> --with-http_gzip_static_module \ 
> --with-pcre 
[root@localhost nginx-1.8.1]# make && make install 
[root@localhost nginx-1.8.1]# vim /usr/local/nginx/conf/nginx.conf        #修改php相關配置 
        location ~ \.php$ {      
            root           html; 
            fastcgi_pass   127.0.0.1:9000; 
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name; 
            include        fastcgi_params;         
        } 
[root@localhost nginx-1.8.1]# /usr/local/nginx/sbin/nginx        #啟動nginx


編譯安裝mysql
 [root@localhost opt]# groupadd mysql        #添加mysql組 
[root@localhost opt]# useradd -r -g mysql mysql        #添加mysql用戶 
[root@localhost opt]# tar xzvf mysql-5.6.24.tar.gz  
[root@localhost opt]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio        #安裝編譯代碼所需要的包 
[root@localhost opt]# cd /opt/mysql-5.6.24 
[root@localhost mysql-5.6.24]#  cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \              [MySQL安裝的根目錄] 
-DMYSQL_DATADIR=/mydata/mysql/data  \                   [MySQL數據庫文件存放目錄] 
-DSYSCONFDIR=/etc \                                     [MySQL配置文件所在目錄] 
-DMYSQL_USER=mysql \                                    [MySQL用戶名]       
-DWITH_MYISAM_STORAGE_ENGINE=1 \                        [MySQL的數據庫引擎] 
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                      [MySQL的數據庫引擎] 
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                       [MySQL的數據庫引擎] 
-DWITH_MEMORY_STORAGE_ENGINE=1 \                        [MySQL的數據庫引擎] 
-DWITH_READLINE=1 \                                     [MySQL的readline library] 
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \           [MySQL的通訊目錄] 
-DMYSQL_TCP_PORT=3306 \                                 [MySQL的監聽端口] 
-DENABLED_LOCAL_INFILE=1 \                              [啟用加載本地數據] 
-DENABLE_DOWNLOADS=1 \                                  [編譯時允許自主下載相關文件] 
-DWITH_PARTITION_STORAGE_ENGINE=1  -DEXTRA_CHARSETS=all \       [使MySQL支持所有的擴展字符] 
-DDEFAULT_CHARSET=utf8 \                                [設置默認字符集為utf8] 
-DDEFAULT_COLLATION=utf8_general_ci \                   [設置默認字符校對] 
-DWITH_DEBUG=0 \                                        [禁用調試模式] 
-DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled \    [通訊時支持ssl協議] 
-DWITH_ZLIB:STRING=bundled                              [允許使用zlib library] 
[root@localhost mysql-5.6.24]# make && make install 
[root@localhost local]# chown -R mysql:mysql /usr/local/mysql/        #修改mysql文件夾屬組和屬主 
[root@localhost local]# chown -R mysql:mysql /mydata/mysql/data 
[root@localhost etc]# vim /etc/my.cnf        #修改my.conf配置文件 
# For advice on how to change settings please see 
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html 
 
[mysqld]
  
# Remove leading # and set to the amount of RAM for the most important data 
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. 
# innodb_buffer_pool_size = 128M 
 
# Remove leading # to turn on a very important data integrity option: logging 
# changes to the binary log between backups. 
# log_bin 
 
# These are commonly set, remove the # and set as required. 
basedir=/usr/local/mysql 
datadir=/mydata/mysql/data 
socket=/var/lib/mysql/mysql.sock 
character-set-server=utf8 
user= mysql 
# Remove leading 
# to set options mainly useful for reporting servers. 
# The server defaults are faster for transactions and fast SELECTs. 
# Adjust sizes as needed, experiment to find the optimal values. 
# join_buffer_size = 128M 
# sort_buffer_size = 2M 
# read_rnd_buffer_size = 2M 
[mysqld_safe] 
log-error=/var/log/mariadb/mariadb.log 
pid-file=/var/run/mariadb/mariadb.pid 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
[root@localhost local]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data        #初始化mysql數據庫



編譯安裝php
 [root@localhost opt]# tar xzvf php-5.6.5.tar.gz  
[root@localhost php-5.6.5]# ./configure --enable-opcache --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd  --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv 
[root@localhost php-5.6.5]# make && make install 
[root@localhost etc]# cp /opt/php-5.6.5/php.ini-development /usr/local/php/etc/php.ini 
[root@localhost etc]# cd /usr/local/php/etc/ 
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf         
[root@localhost etc]# /usr/local/php/sbin/php-fpm        #啟動php 
[root@localhost html]# vim /usr/local/nginx/html/index.php        #創建一個php頁面 
<?php 
phpinfo(); 
?>


2、編寫一個腳本完成以下功能:

(1)、一鍵搭建LNMP源碼編譯環境;


?   安裝編譯工具和庫文件
1   yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make cmake libtool* git tree

編譯安裝nginx
 [root@localhost opt]# wget http://nginx.org/download/nginx-1.8.1.tar.gz   #下載nginx安裝包 
[root@localhost opt]# tar xzvf nginx-1.8.1.tar.gz        #解壓安裝包 
[root@localhost nginx-1.8.1]# ./configure \         
> --prefix=/usr/local/nginx \ 
> --with-http_realip_module \ 
> --with-http_sub_module \ 
> --with-http_ssl_module \ 
> --with-http_gzip_static_module \ 
> --with-pcre 
[root@localhost nginx-1.8.1]# make && make install 
[root@localhost nginx-1.8.1]# vim /usr/local/nginx/conf/nginx.conf        #修改php相關配置 
        location ~ \.php$ {      
            root           html; 
            fastcgi_pass   127.0.0.1:9000; 
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name; 
            include        fastcgi_params;         
        } 
[root@localhost nginx-1.8.1]# /usr/local/nginx/sbin/nginx        #啟動nginx

編譯安裝mysql
 [root@localhost opt]# groupadd mysql        #添加mysql組 
[root@localhost opt]# useradd -r -g mysql mysql        #添加mysql用戶 
[root@localhost opt]# tar xzvf mysql-5.6.24.tar.gz  
[root@localhost opt]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio        #安裝編譯代碼所需要的包 
[root@localhost opt]# cd /opt/mysql-5.6.24 
[root@localhost mysql-5.6.24]#  cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \              [MySQL安裝的根目錄] 
-DMYSQL_DATADIR=/mydata/mysql/data  \                   [MySQL數據庫文件存放目錄] 
-DSYSCONFDIR=/etc \                                     [MySQL配置文件所在目錄] 
-DMYSQL_USER=mysql \                                    [MySQL用戶名]       
-DWITH_MYISAM_STORAGE_ENGINE=1 \                        [MySQL的數據庫引擎] 
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                      [MySQL的數據庫引擎] 
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                       [MySQL的數據庫引擎] 
-DWITH_MEMORY_STORAGE_ENGINE=1 \                        [MySQL的數據庫引擎] 
-DWITH_READLINE=1 \                                     [MySQL的readline library] 
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \           [MySQL的通訊目錄] 
-DMYSQL_TCP_PORT=3306 \                                 [MySQL的監聽端口] 
-DENABLED_LOCAL_INFILE=1 \                              [啟用加載本地數據] 
-DENABLE_DOWNLOADS=1 \                                  [編譯時允許自主下載相關文件] 
-DWITH_PARTITION_STORAGE_ENGINE=1  -DEXTRA_CHARSETS=all \       [使MySQL支持所有的擴展字符] 
-DDEFAULT_CHARSET=utf8 \                                [設置默認字符集為utf8] 
-DDEFAULT_COLLATION=utf8_general_ci \                   [設置默認字符校對] 
-DWITH_DEBUG=0 \                                        [禁用調試模式] 
-DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled \    [通訊時支持ssl協議] 
-DWITH_ZLIB:STRING=bundled                              [允許使用zlib library] 
[root@localhost mysql-5.6.24]# make && make install 
[root@localhost local]# chown -R mysql:mysql /usr/local/mysql/        #修改mysql文件夾屬組和屬主 
[root@localhost local]# chown -R mysql:mysql /mydata/mysql/data 
[root@localhost etc]# vim /etc/my.cnf        #修改my.conf配置文件 
# For advice on how to change settings please see 
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html 
 
[mysqld]
  
# Remove leading # and set to the amount of RAM for the most important data 
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. 
# innodb_buffer_pool_size = 128M 
 
# Remove leading # to turn on a very important data integrity option: logging 
# changes to the binary log between backups. 
# log_bin 
 
# These are commonly set, remove the # and set as required. 
basedir=/usr/local/mysql 
datadir=/mydata/mysql/data 
socket=/var/lib/mysql/mysql.sock 
character-set-server=utf8 
user= mysql 
# Remove leading 
# to set options mainly useful for reporting servers. 
# The server defaults are faster for transactions and fast SELECTs. 
# Adjust sizes as needed, experiment to find the optimal values. 
# join_buffer_size = 128M 
# sort_buffer_size = 2M 
# read_rnd_buffer_size = 2M 
[mysqld_safe] 
log-error=/var/log/mariadb/mariadb.log 
pid-file=/var/run/mariadb/mariadb.pid 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
[root@localhost local]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data    



編譯安裝php

 [root@localhost opt]# tar xzvf php-5.6.5.tar.gz  
[root@localhost php-5.6.5]# ./configure --enable-opcache --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd  --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv 
[root@localhost php-5.6.5]# make && make install 
[root@localhost etc]# cp /opt/php-5.6.5/php.ini-development /usr/local/php/etc/php.ini 
[root@localhost etc]# cd /usr/local/php/etc/ 
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf         
[root@localhost etc]# /usr/local/php/sbin/php-fpm        #啟動php 
[root@localhost html]# vim /usr/local/nginx/html/index.php        #創建一個php頁面 
<?php 
phpinfo(); 
?>



2、編寫一個腳本完成以下功能:

(2)、可通過在腳本后面跟上一些參數來自定義安裝目錄等其他選項。
 [root@localhost shell]# cat /shell/LNMP.conf         #參數較多放在一個配置文件中 
nginx_dir=/usr/local/nginx 
mysql_dir=/user/local/mysql 
mysqldata_dir=/mysqldata 
php_dir=/usr/local/php 
 
 
[root@localhost shell]# cat /shell/LNMP.sh  
#!/bin/bash #加載配置文件 
 
source $1 #nginx安裝函數 
nginx() {
     groupadd -r nginx
     useradd -s /sbin/nologin -g nginx -r nginx
     cd /opt
     echo "------------開始安裝nginx-1.8.1------------"
     wget http://nginx.org/download/nginx-1.8.1.tar.gz
     tar xzvf nginx-1.8.1.tar.gz
     cd nginx-1.8.1
     ./configure --prefix=${nginx_dir} --with-http_realip_module --with-http_sub_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre
     make && make install 
} 
 
#mysql安裝模塊
mysql() {
     groupadd mysql
     useradd -r -g mysql mysql
     cd /opt     echo "------------開始安裝libmcrypt-2.5.7------------" 
     wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz 
     tar mysql-5.6.24.tar.gz     cd mysql-5.6.24
     cmake . -DCMAKE_INSTALL_PREFIX=${mysql_dir} \ 
     -DMYSQL_DATADIR=${mysqldata_dir}  \ 
     -DDEFAULT_CHARSET=utf8  \ 
     -DDEFAULT_COLLATION=utf8_general_ci \
     -DMYSQL_USER=mysql \
     -DMYSQL_GROUP=mysql
     make && make install
     cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
     chown -R root:mysql ${mysql_dir}
     chown -R root:mysql ${mysqldata_dir} 
} 
 
#php安裝模塊 
 
php() {
     cd /opt
     echo "------------開始安裝libmcrypt-2.5.7------------"
     wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
     tar xvf libmcrypt-2.5.7.tar.gz 
     cd /opt/libmcrypt-2.5.7
     ./configure  --prefix=/usr/local/libmcrypt && make && make instal
l     
     echo "------------開始安裝php-5.6.5------------"
     wget http://cn2.php.net/distributions/php-5.6.5.tar.gz
     tar xzvf php-5.6.5.tar.gz
     cd php-5.6.5 
     ./configure --enable-opcache --prefix=${php_dir} --with-config-file-path=${php_dir}/etc --with-mysql=${mysql_dir} --with-mysqli=${mysql_dir}/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd  --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv && make && make install
     cp ${php_dir}/etc/php-fpm.conf.default  ${php_dir}/etc/php-fpm.conf 
     cp /opt/php-5.6.5/php.ini-development ${php_dir}/etc/php.ini 
}
 
 yum -y install gcc gcc-c++ make pcre-* zlib-* cmake ncurses-devel libjpeg* libpng* freetype* libcurl-devel libvpx-devel libxml2 libxml2-devel libXpm libXpm-devel libXpm.i686 libXpm.i686-devel openldap-devel
 
#安裝nginx軟件
 
nginx 
if [ $? -eq 0 ];then
    echo "nginx安裝成功?。?!"
 else
    echo "nginx安裝異常?。?!" 
    exit
 fi 
 
#安裝mysql數據庫 
 
mysql 
if [ $? -eq 0 ];then
    echo "mysql安裝成功!??!" 
else
    echo "mysql安裝異常!??!"
    exit 
fi 
 
#安裝php
 
 php if [ $? -eq 0 ];then
    echo "php安裝成功?。?!"
    exit 
else
    echo "php安裝異常?。?!"
    exit
fi

原創文章,作者:victorli88,如若轉載,請注明出處:http://www.www58058.com/73088

(0)
victorli88victorli88
上一篇 2017-05-08 20:08
下一篇 2017-05-08 20:08

相關推薦

  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存 至/tmp/maxusers.txt文件中。 5、取出當前主機…

    Linux干貨 2016-11-21
  • Python函數式編程指南(四):生成器

    生成器是迭代器,同時也并不僅僅是迭代器,不過迭代器之外的用途實在是不多,所以我們可以大聲地說:生成器提供了非常方便的自定義迭代器的途徑。 這是函數式編程指南的最后一篇,似乎拖了一個星期才寫好,嗯…… 轉載請注明原作者和原文地址:) 4. 生成器(generator) 4.1. 生成器簡介 首先請確信,生成器就是一種迭代器。生成器擁有next方法并且行為與迭代…

    Linux干貨 2015-03-11
  • 馬哥教育網絡班21期第6周作業

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; %s/^[[:space:]]\+/#& 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; %s/^[[:space:]]\+/ …

    Linux干貨 2016-12-05
  • 第一周作業

    作業

    Linux干貨 2018-03-20
  • 計算機組成原理

                                 計算機組成原理 Linux 操作系統是UNIX 操作系統的一種克隆系統。它誕生于1991 年的10 月5 日(這是第一次正式向外公布的時間)。以后借助于…

    Linux干貨 2016-10-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-06-20 11:25

    寫點很棒,希望可以繼續保持,再接再厲

欧美性久久久久