Linux云计算之Web平台搭建(LNMP——CentOS7)

一、准备工作

  1. 环境要求

操作系统:CentOS 7.x 64位
关闭 SELinux 和 iptables 防火墙
此次实验环境使用网络 yum 源,保证系统能正常连接互联网

  1. 网络 yum 源

先将系统自带的 yum 配置文件移除或者删除,然后下载一下两个配置文件

官方基础:
http://mirrors.163.com/.help/CentOS7-Base-163.repo
http://mirrors.aliyun.com/repo/Centos-7.repo

epel 扩展:
http://mirrors.aliyun.com/repo/epel-7.repo

下载完成后,需要使用命令清楚掉原有的 yum 缓存,使用新的配置文件建立缓存

# yum clean all	#清除掉原有缓存列表
# yum makecache	#建立新的缓存列表
# yum update	#将所有能更新的软件更新(非必选)
  1. 安装编译工具和依赖软件包:
# yum -y install gcc* pcre-devel openssl openssl-devel zlib-devel ncurses-devel cmake bison libxml2-devel libpng-devel

4.Nginx、MySQL、PHP三大软件的源码包下载地址:

Nginx:http://nginx.org/en/download.html
MySQL:https://dev.mysql.com/downloads/mysql/
PHP:http://www.php.net/

版本选用:

Nginx:1.12.* #选用软件的稳定版即可
MySQL:5.5.* #5.5以上版本需要 1G 以上的内存,否则无法安装
PHP:7.1.* #LAMP中我们使用的是 php7,此次使用 php5

注意:每次安装 LNMP 时,软件包的小版本都不一样,官方对其大版本下的小版本进行覆盖式更新,本文内部分连接会失效,切记按照下载版本进行安装

二、源码软件包安装

  1. Nginx

Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存少,并发能力强

1)下载Nginx 源码包

# wget http://nginx.org/download/nginx-1.12.2.tar.gz

2)创建用于运行 Nginx 的用户

# useradd -r -s /sbin/nologin nginx

3)解压缩 Nginx 并安装

# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
 --with-http_ssl_module
# make 
# make install

4)上传编写好的 nginx 启动管理脚本(见文本尾部)

  1. MySQL

下载:
https://dev.mysql.com/downloads/mysql/

选择:
MySQL Community Server 5.5 >>

选择:
Select Version:按照自己要求选择
Select Operating System:Source Code
Select OS Version:Generic Linux

格式: mysql-N.N.NN.tar.gz

# wget https://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.62.tar.gz

1)创建用于运行 Mysql 的用户:

# useradd -r -s /sbin/nologin mysql

2)解压缩 Mysql 并安装

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
-DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1
-DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
# make 
# make install
# ln -s /usr/local/mysql/bin/* /usr/local/bin

3)修改安装后的目录权限

# cd /usr/local/mysql
# chown -R root
# chown -R mysql data

4)生成 Mysql 配置文件

# cp -a /lnmp/mysql-5.5.62/support-files/my-medium.cnf /etc/my.cnf

5)初始化,生成授权表

# cd /usr/local/mysql		#一定要先切换到此目录下,然后执行下一步
# ./scripts/mysql_install_db --user=mysql
初始化成功标签:两个 ok

6)生成 Mysql的启动和自启动管理脚本

# cd /lnmp/mysql-5.5.62/support-files
切换到 Mysql 的源码解压缩目录下的 support-files
# cp -a mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld

# chkconfig --add mysqld
# chkconfig mysqld on
# service mysqld start | stop | restart

7)给 mysql 的 root 用户设置密码

# mysqladmin -uroot password 123456
  1. PHP

下载: http://www.php.net/

# wget http://tw2.php.net/distributions/php-7.1.29.tar.gz

1)解压缩 PHP 并安装

# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc/
--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets
--with-pdo-mysql=/usr/local/mysql --with-gd --without-pear --enable-fpm
# make 
# make install

报错提示: 若遇到 libpng.so not found 报错(老版本的 PHP 会出现此问题)
解决方案:

# ln -s /usr/lib64/libpng.so /usr/lib

2)生成 php 配置文件

# cp -a /lnmp/php-7.1.29/php.ini-production /usr/local/php/etc/php.ini
复制源码包内的配置文件到安装目录下,并改名即可

3)创建软链接,使用 php 相关命令是更方便

ln -s /usr/local/php/bin/*/usr/local/bin
ln -s /usr/local/php/sbin/*/usr/local/sbin/
  1. 配置 Nginx 连接 PPHP (重难点)

1)nginx 连接 php 需要启动 php-fpm 服务

# cd /usr/local/php/etc/
# cp -a php-fpm.conf.default php-fpm.conf
生成 php-fpm 的配置文件,并修改指定参数
# vim php-fpm.conf
修改指定条目的参数:
	pid=run/php-fpm.pid
	user=nginx
	group=nginx
	pm.start_servers=2
	pm.min_spare_servers=1
	pm.max_spare_servers=3
	启动时开启的进程数、最少空闲进程数、最多空闲进程数(默认值,未修改)
	修改 Nginx 启动管理脚本:将 php-fpm 的注释取消掉即可

2)修改 Nginx 的配置文件,使其识别.php 后缀的文件

# vim /usr/local/nginx/conf/nginx.conf
取消下列行的注释,并修改 include 选项的后缀为 fastcgi.conf,并注意每一行结尾的分号和大括号
# location ~\.php$ {
#	root			html
#	fastcgi_pass	127.0.0.1:9000;
#	fastcgi_index	index.php;
#	fastcgi_param	SCRIPT_FILENAME		/scripts$fastcgi_script_name;
#	include			fastcgi_params;		#修改为 fsatcgi.conf
# }

测试:

重启 Nginx 服务,创建 php 测试文件,访问并查看是否解析

3)修改 Nginx 配置文件,使其默认自动加载 php 文件

location /{
root html;						#Nginx 的默认网页路径:PREFIX/html
index	index.php index.html;	#设置默认加载的页面,以及优先级
}

附件:建议使用时先复制到文本文件中查看下是否有字符集问题

#####################Nginx 启动管理脚本#############################
#!/bin/bash
#Author: liu
#chkconfig:2345 9933
#description:nginx server control tools

ngxc="/usr/local/nginx/sbin/nginx"
pidf="/usr/local/nginx/logs/nginx.pid"
ngxc_fpm="/usr/local/php/sbin/php-fpm"
pid_fpm="/usr/local/php/var/run/php-fpm.pid"
case "$1" in
	start)
		$ngxc -t &>/dev/null
		if [ $? -eq 0 ];then
			$ngxc
			$ngxc_fpm
			echo "nginx service start success!"
		else
			$ngxc -t
		fi
		;;
	stop)
		kill -s QUIT $(cat $pidf)
		kill -s QUIT $(cat $pidf_fpm)
			echo "nginx service stop success!"
		;;
	restart)
		$0 stop
		$0 start
		;;
	reload)
		$ngxc -t &>/dev/null
		if [ $? -eq 0 ];then
			kill -s HUP $(cat $pidf)
			kill -s HUP $(cat $pidf_fpm)
			echo "reload nginx config success!"
		else
			$ngxc -t
		fi
		;;
	*)
		echo "please input stop|start|restart|reload."
		exit 1
esac

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值