一.LNMP简介
近几年随着Nginx Web服务的逐渐流行,又出现了新的Web服务环境组合——LNMP或LEMP,其中LNMP为Linux、Nginx、MySQL、PHP等首字母的缩写,而LEMP中的E则表示Nginx。
1.1 网站的访问流程
我们开发的所有项目代码最终效果是所有用户都能访问的到,那么我们首先要考虑的是,他们如何怎么访问公司所开发的网站?现在我们有必要来说一下,简单的网站访问流程
完整的请求流程:
1、用户在自己的浏览器中输入一段web请求地址
2、浏览器会对这个请求进行拆分:
ip地址找对应的服务器
port端口找服务器上监听该端口的服务
然后将最后的具体请求交给web服务去处理
3、web服务接收该请求后,处理该请求,
4、如果遇到一些数据处理,需要到后端的数据库服务获取数据
5、数据库服务返回数据给web服务
6、web服务生成完整的web网页,以数据报文的形式发送到客户端的浏览器
7、浏览器渲染web网页,最后展示给用户
1.2 URI、URL、URN
URI,URL,URN简介
URI是uniform resource identifier,统一资源标识符,是一个紧凑的字符串用来标示抽象或物理资源唯一的标识。URI 可以进一步被分为定位符、名字或两者都有。
URL是uniform resource locator,统一资源定位器,它是一种具体的URI,它重点是指明了如何定位该资源的主要访问机制(如其网络“位置”)。
URN,uniform resource name,统一资源命名,它是一种具体的URI,它重点是指明了如何命名该资源的主要访问机制。
三者之间的区别(面试中可能会问到)
URI是以一种抽象的,高层次概念定义统一资源标识,URL和URN都是一种具体的URI,URL侧重于资源的定位,URN侧重于资源的命名。
当前我们一般使用URL来称呼一个web的浏览器地址,但是规范的术语是URI
二.基本环境配置
本机环境:Windows10安装centos7,关于虚拟机的安装我这边不做详细介绍,网上教程很多。
开始正式搭建环境之前,因为我们安装的软件比较多,所以我们需要创建服务和软件的专用目录基本环境配置
基本软件目录
mkdir /data/{server,soft} -p
这样方便查找
2.1 LNMP 之 N
Nginx是一个轻量级的Web软件,它有非常强大的功能,下面我们只学习它最基本的功能。
2.1.1 nginx安装
1)基本依赖环境部署
安装nginx软件的基本依赖软件
yum install openssl-devel pcre-devel gcc -y
2)编译安装nginx
注意:
编译安装nginx的时候,应该有一个专用的启动用户,我们把这个用户设置为 www
编译安装nginx
tar xf nginx-1.10.2.tar.gz
cd nginx-1.10.2
./configure --prefix=/data/server/nginx
make
make install
创建专用的启动用户www
useradd www -s /sbin/nologin -M
修改配置文件
[root@localhost soft]# vim /data/server/nginx/conf/nginx.conf
user www;
3) 检查效果
启动nginx
/data/server/nginx/sbin/nginx
检查端口
[root@localhost nginx-1.10.2]# netstat -tnulp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 42500/nginx
查看浏览器效果
软件安装总结
解压 tar
作用:解压文件,获取真正的配置文件
配置 configure
作用:根据默认的配置项或者更改配置项,生成编译配置文件(Makefile)
编译 make
作用:根据 Makefile 内容,编译生成指定的软件所需要的所有文件
安装 make install
作用:将编译生成的所有文件,转移到软件指定安装的目录下面
2.1.2 nginx命令简介
检查nginx
/data/server/nginx/sbin/nginx -t
启动nginx
/data/server/nginx/sbin/nginx
关闭nginx
/data/server/nginx/sbin/nginx -s stop
重载nginx
/data/server/nginx/sbin/nginx -s reload
启动后检查
netstat -tnulp | grep nginx
备注:nginx 默认的配置文件
/data/server/nginx/conf/nginx.conf
2.2 LNMP 之 M
2.2.1 mysql安装
mysql的安装方法很多,最简单的而且最适用就是二进制方法安装。接下来我们使用mysql的二进制包来进行安装部署mysql
1)解压软件
tar xf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz -C /data/server/
cd /data/server/
ln -s mysql-5.6.35-linux-glibc2.5-x86_64 mysql
2)创建专用用户
useradd -s /sbin/nologin -M mysql
3)初始化mysql数据库
/data/server/mysql/scripts/mysql_install_db --basedir=/data/server/mysql --datadir=/data/server/mysql/data/ --user=mysql
4)数据库配置文件管理
mv /etc/my.cnf /etc/my.cnf-bak
cp /data/server/mysql/support-files/my-default.cnf /etc/my.cnf
5)数据库启动命令配置
cp /data/server/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
6)启动文件修改
sed -i 's#/usr/local/mysql#/data/server/mysql#g' /data/server/mysql/bin/mysqld_safe /etc/init.d/mysqld
7)数据库文件权限管理
chown -R mysql.mysql /data/server/mysql/
8)启动数据库前检查
netstat -tnulp | grep mysql
9)启动数据库
/etc/init.d/mysqld start
10)检查数据库启动状态
netstat -tnulp|grep mysqld
11)配置环境变量
vim /etc/profile
#在末尾添加下面这条配置
PATH=/data/server/mysql/bin:$PATH
#让配置文件生效
source /etc/profile
12)测试进入数据库
[root@localhost server]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
13)将mysql服务设置为开机自启动服务
chkconfig --add mysqld
chkconfig mysqld on
2.2.2 mysql简单操作
设置mysql数据库登录用户名与密码
前文有提到过登录数据库需要输入用户名和密码,此时我们就设置一个密码
[root@localhost server]# mysqladmin -u root password '123456'
Warning: Using a password on the command line interface can be insecure.
查询默认的数据库信息
show databases; <--- 查询默认的数据库信息
选择使用一个数据库
use mysql; <--- 表示选择使用一个数据库,相当于cd进入一个数据库
查看当前所在数据库
select database(); <--- 表示查看当前所在数据库,类似于pwd命令的功能
查看当前登录数据库的用户
select user(); <--- 查看当前登录数据库的用户,类似于whoami命令
2.3 LNMP 之 P
2.3.1 基本软件安装
1)安装基本依赖软件
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel -y
2)安装libiconv软件
cd /data/soft
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
3)安装其他软件包
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install libmcrypt-devel mhash mcrypt
注释:
这三个软件包,在本地的光盘镜像中没有,所以我们需要去网上下载
4)安装php
cd /data/soft/
tar xf php-5.3.29.tar.gz
cd php-5.3.29
在解压后的PHP目录内执行
ln -s /data/server/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar
./configure \
--prefix=/data/server/php-5.3.29 \
--with-mysql=/data/server/mysql \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp
编译时可能会出错,先执行上面的操作再编译安装
make
make install
5)php文件配置
创建目录,生成程序文件,这里失败的话/data/server下就不会有php的目录
[root@localhost php-5.3.29]# ls /data/server/
mysql mysql-5.6.35-linux-glibc2.5-x86_64 nginx php-5.3.29
创建一个软链接,方便使用,更新软件时,重新创建软链接即可
cd /data/server
ln -s php-5.3.29 php
把解压包内的php解析文件拷贝到php安装目录下
cd /data/soft/php-5.3.29
cp php.ini-production /data/server/php/lib/php.ini
修改php.ini文件,开启session功能
vim /data/server/php/lib/php.ini
...
[Session]
; Handler used to store/retrieve data.
; http://php.net/session.save-handler
session.save_handler = files
#原内容:
;session.save_path = "/tmp
#修改后内容:
session.save_path = "/tmp
复制php-fpm的配置文件,默认没有该文件但是有一个备份文件
cd /data/server/php/etc/
cp php-fpm.conf.default php-fpm.conf
6)启动php
和nginx一样,使用程序目录下的启动命令来启动php,然后检查进程和端口号即可。
[root@localhost etc]# /data/server/php/sbin/php-fpm
[root@localhost etc]# netstat -tnulp | grep php-fpm
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 35770/php-fpm
[root@localhost etc]# ps aux | grep php-fpm
root 35770 0.0 0.1 222924 4380 ? Ss 22:15 0:00 php-fpm: master process (/data/server/php-5.3.29/etc/php-fpm.conf)
www 35771 0.0 0.1 222924 4124 ? S 22:15 0:00 php-fpm: pool www
www 35772 0.0 0.1 222924 4124 ? S 22:15 0:00 php-fpm: pool www
root 35778 0.0 0.0 103316 844 pts/4 S+ 22:16 0:00 grep php-fpm
2.3.2 php简单操作
#启动php
/data/server/php/sbin/php-fpm
#关闭php
pkill php-fpm
备注:所有的软件安装包自行提取下载
链接:https://pan.baidu.com/s/1yO7Z07b_4gehB-tYr0EOAg
提取码:wabm