马哥教育网络班22期+第16周课程练习

1、源码编译安装LNMP架构环境;

安装开发包组
	yum groupinstall "Development Tools" "Server Platform Development" -y

	yum install -y pcre-devel zlib-devel

	yum install openssl openssl-devel -y

	groupadd -r -g 911 nginx
	useradd -r -g nginx -u 911 -s /sbin/nologin nginx
	mkdir -p /var/tmp/nginx/client
	cd /usr/local
	wget http://nginx.org/download/nginx-1.8.1.tar.gz
	tar -xf nginx-1.8.1.tar.gz 
	cd /usr/local/nginx-1.8.1/

	./configure \
	--prefix=$dst \
	--conf-path=/etc/nginx/nginx.conf \
	--user=nginx \
	--group=nginx \
	--error-log-path=/var/log/nginx/error.log \
	--http-log-path=/var/log/nginx/access.log \
	--pid-path=/var/run/nginx/nginx.pid \
	--lock-path=/var/lock/nginx.lock \
	--with-http_ssl_module \
	--with-http_gzip_static_module \
	--with-debug \
	--with-http_stub_status_module \
	--http-client-body-temp-path=/var/tmp/nginx/client \
	--http-proxy-temp-path=/var/tmp/nginx/proxy \
	--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
	--http-uwsgi-temp-path=/var/tmp/nginx/uwsg \
	--http-scgi-temp-path=/var/tmp/nginx/scgi \
	--with-pcre \
	--with-debug

	make
	make install

	vim /etc/nginx/nginx.conf          //编辑nginx配置安装文件

	location / {
	            root   html;
	            index  index.php index.html index.htm;  //设置根目录可识别index.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;     //设置使用fastcg协议的php文件根目录
	            include        fastcgi_params;
	        }


	修改PATH环境变量,让系统可以直接使用nginx的相关命令
	vim /etc/profile.d/nginx.sh
	export PATH=/usr/local/nginx/sbin:$PATH
	source /etc/profile.d/nginx.sh 

	nginx  启动nginx

	yum install -y mariadb mariadb-server php-fpm php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash 

	systemctl start mariadb.service

	vim /etc/php-fpm.d/www.conf      //编辑php-fpm配置文件

	listen = 127.0.0.1:9000      //如不是监听本地地址,可修改为需要监听的地址
	listen.allowed_clients = 127.0.0.1   //本地访问
	user = nginx
	group = nginx

	systemctl start php-fpm  //启动 php-fpm

	vim /usr/local/nginx/html/index.php

	 测试页面index.php示例如下:

	<?php

	$conn = mysql_connect('127.0.0.1','root','');
	if ($conn)
	        echo "ok";
	else
	        echo "Failure";

	phpinfo();
	?>

2、编写一个脚本完成以下功能:

   (1)、一键搭建LNMP源码编译环境;

   (2)、可通过在脚本后面跟上一些参数来自定义安装目录等其他选项。

	# install run environment packages
	echo "install development tools and server platform develpment"
	yum groupinstall "Development Tools" "Server Platform Development" -y
	if [ $? -ne 0 ];then
		echo -e "\033[31m install development packages faild \033[0m" && exit
	else
		echo -e "\033[37m install development packages finished \033[0m"
	fi
	yum install -y pcre-devel zlib-devel openssl openssl-devel
	if [ $? -ne 0 ];then 
		echo -e "\033[31m install run environment packages faild\033[0m" && exit
	else 
		echo -e  "\033[37m install run environment packages finished\033[0m"
	fi 

	sleep 3s
	#install nginx
	echo -e "\033[37m install nginx\033[0m"
	groupadd -r -g 911 nginx
	useradd -r -g nginx -u 911 -s /sbin/nologin nginx

	dst=$1
	#dst=/usr/local/nginx
	#[ ! -d $dst ] && mkdir -p $dst
	mkdir -p /var/tmp/nginx/client

	cd /usr/local
	[ ! -f nginx-1.8.1.tar.gz ] && wget http://nginx.org/download/nginx-1.8.1.tar.gz
	tar -xf nginx-1.8.1.tar.gz 
	cd /usr/local/nginx-1.8.1/

	./configure \
	--prefix=$dst \
	--conf-path=/etc/nginx/nginx.conf \
	--user=nginx \
	--group=nginx \
	--error-log-path=/var/log/nginx/error.log \
	--http-log-path=/var/log/nginx/access.log \
	--pid-path=/var/run/nginx/nginx.pid \
	--lock-path=/var/lock/nginx.lock \
	--with-http_ssl_module \
	--with-http_gzip_static_module \
	--with-debug \
	--with-http_stub_status_module \
	--http-client-body-temp-path=/var/tmp/nginx/client \
	--http-proxy-temp-path=/var/tmp/nginx/proxy \
	--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
	--http-uwsgi-temp-path=/var/tmp/nginx/uwsg \
	--http-scgi-temp-path=/var/tmp/nginx/scgi \
	--with-pcre \
	--with-debug

	make
	make install
	if [ $? -ne 0 ];then
	        echo -e "\033[31m install nginx faild \033[0m" && exit
	else 
	        echo -e "\033[37m install nginx finished \033[0m"
	fi
	sleep 3s

	#install mariadb php-fpm
	echo -e "\033[37m install mariadb php-fpm \033[0m"

	yum install -y mariadb mariadb-server php-fpm php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash
	if [ $? -ne 0 ];then
	        echo -e "\033[31m install mariadb php-fpm faild \033[0m" && exit
	else
	        echo -e "\033[37m install mariadb php-fpm finished \033[0m"
	fi
	sleep 3s

	#config nginx
	echo -e "\033[37m config nginx \033[0m"
	sed -r -i 's/(^[[:space:]]+index ).*/\1index.php index.html index.htm;/g' /etc/nginx/nginx.conf
	sed -r -i '/pass the/,/}/s/(.*)#(.*)/\1\2/g' /etc/nginx/nginx.conf
	sed -r -i 's/(^[[:space:]]+)(pass the .*)/\1#\2/g' /etc/nginx/nginx.conf
	sed -r -i 's@(^[[:space:]]+fastcgi_param.*)/scripts(.*)@\1/usr/local/nginx/html\2@g' /etc/nginx/nginx.conf

	#config php-fpm
	echo -e "\033[37m config php-fpm \033[0m"
	sed -i 's/^user = apache/user = nginx/g'  /etc/php-fpm.d/www.conf
	sed -i 's/^group = apache/group = nginx/g'  /etc/php-fpm.d/www.conf

	#create php test page
	cd /usr/local/nginx/html
	#[ ! -f "/usr/local/nginx/html/index.php" ] && cat >>test.test<<EOF

	[ ! -f "/usr/local/nginx/html/index.php" ] && cat >>index.php<<EOF
	<?php

	\$conn = mysql_connect('127.0.0.1','root','');
	if (\$conn)
	        echo "ok";
	else
	        echo "Failure";

	phpinfo();
	?>
	EOF
	sleep 3s
	#start service
	echo -e "\033[37m start nginx service\033[37m"
	/usr/local/nginx/sbin/nginx
	echo -e "\033[37m start mariadb serivce\033[0m"
	systemctl start mariadb.service
	echo -e "\033[37m start php-fpm serivce \033[0m"
	systemctl start php-fpm.service
	

[root@test ~]# bash lnmp.sh /usr/local/nginx	

原创文章,作者:N22_上海_长清,如若转载,请注明出处:http://www.178linux.com/65099

(0)
N22_上海_长清N22_上海_长清
上一篇 2017-01-03 11:05
下一篇 2017-01-03 11:05

相关推荐

  • 命令(2017.5.16-2017.519-部分)

    命令(1) bc  计算器 dd if=/dev/zero 查看逻辑设备(非硬件) dd if=/dev/sd 查看硬件设备 dd if=/dev/zeroof=file bs=1M count=24  写入磁盘速度 dd if=/dev/zeroof=/dev/null bs=1M count=24  测试…

    Linux干货 2017-05-22
  • find可以这么用

    在工作中不可或缺的工具find:查找系统中的各种文件,对查找的文件进行操作,这就是find的作用。进入正题: 1、查找下系统中有一下系统中有几个文件叫issue的     [root@localhost private]#find / -name issue      …

    Linux干货 2017-03-05
  • linux做路由并实现路由转发

    一、环境介绍 1.linux版本:CentOS6.8,CentOS7.2两台主机分别加载两块网卡,分别作为路由器的两个端口 2.实验在vmware虚拟机中完成 3.另有两台CentOS6.8和CentOS7.2作为两个网段的主机 4.实验图示: 二、路由1(左)和路由2(右)的设置 1.路由1配置信息 eth0网卡:    &n…

    Linux干货 2016-09-07
  • 磁盘管理及文件系统

    磁盘及文件系统管理初步与进阶(重点内容) 磁盘分区及文件系统 linux系统管理 磁盘分区及文件系统管理:分区工具 linux磁盘及文件系统管理 整个操作系统的硬件组成部分,最底层是硬件设备,计算能力得以运行的最根本的基础。 计算机的五大基本部件:cpu,运算器,控制器被整合到一起,由一个硬件部件来提供。 存储器(主存rom可编址的存储单元)。主板上有cpu…

    Linux干货 2016-08-30
  • Linux基础之安全加密及CA、证书实战应用

    一、建立私有CA并让客户端申请请求,需要两台虚拟机完成 1、建立私有CA,生成私钥 2、CA公司给自己,生成自签证书 3、为CA提供所需要的目录及文件(如果事先存在,此步骤可以跳过) 二、CA公司已建立,需要一台客户机配合CA签署证书 1、客户端用到证书,因此生成私钥 2、客户端生成证书签署请求 3、将请求通过可靠方式发送给CA主机,这里作为测试,因此使用s…

    Linux干货 2016-10-04
  • N25-第二周作业

    1、  Linux上的文件管理类命令都有那些,其常用的使用方法及其相关示例演示。 常用的管理类命令有:rm、mv、cp 1)         rm:remove rm [ OPTION ] FILE 常用选项:     &nbsp…

    Linux干货 2016-12-13

评论列表(1条)

  • 马哥教育
    马哥教育 2017-01-04 16:04

    脚本写的很好,一部分也做了条件判断,我认为条件判断还可以在多一点,如果第二次执行脚本会怎么样?多加一些条件判断吧