LAMP/LNMP安装与配置

教程:
http://www.imooc.com/learn/703

什么是LAMP?

LAMP = Linux + Apache + MySQL + PHP

为什么使用LAMP?
涵盖整个Web开发流程。
流行( 全球70%网站在使用),免费(LAMP组成部分都是免费的),开源,轻量(最新Apache只有7M大小)。

Linux:
开源的类Unix操作系统,可以免费使用和自由传播。

CentOS,RedHat,Ubantu,红旗等都是其发行版本。

Linux和Windows:

质量的不同。
用户假设,软件哲学。

Linux优势:完全免费,稳定高效

PHP:

MySQL:
开源,免费,高性能的数据库。

Apache:
Web服务器软件。
监听端口,接受请求,解析HTTP协议,转发给PHP。
没有apache也就没有我们的网站开发。

Nginx:
与apache一样,都是服务器软件。
Nginx比apache:前景好,配置轻松,性能更加优秀。
apache是采用的轮询机制,nginx是一种高效的监听方式。

如何编译安装软件?

编译安装是在Linux安装软件的重要方式之一。
在linux中安装软件有两种主要的方式:
1)编译安装
对软件的源代码进行编译安装。
2)源安装
比如在CentOS中使用yum安装。

编译安装:
1)编译前的准备工作:
在命令行敲:

./configure

编译为二进制文件:

make

安装:

make install

实战环节

我们使用Oracle公司的VirtualBox这个软件做一个虚拟机。
网站:virtualbox.org

创建centos虚拟机,启动。(https://www.imooc.com/video/12897)
启动的时候需要下载系统镜像。

安装好重启之后,配置网卡:


LAMP/LNMP安装与配置_第1张图片
图片.png

注意还要添加DNS和网关:

DNS1=8.8.8.8
GATEWAY=10.10.10.1  # 这些都是和自己的内网一个网段的才行,包括上面的10.10.10.150。

http://www.jb51.net/os/RedHat/189963.html

重启网卡:

systemctl restart network.service

使防火墙运行22端口(ssh)连接:

firewall-cmd --zone=public --add-port=22/tcp --permanent
systemctl restart firewalld.service

在VirtualBox上面的网卡需要对虚拟机选择桥接网卡(设置->网络):


LAMP/LNMP安装与配置_第2张图片
图片.png

将其在VirtualBox中重新启动。之后,我们就可以重新登录了。

LAMP之安装PHP:

我们可以在我们自己的mac上面使用ssh去连接虚拟机了。

# 先安装vim和wget
yum install -y vim  wget  # 安装vim可以安装它以及它的一系列依赖

我们选择安装7.0.26版本的PHP:
http://php.net/downloads.php#v7.0.26

php-7.0.26.tar.gz 点击,进入,选择:Hong Kong

邮件拷贝连接(http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror):

注意:
我们拷贝的地址,是(http://hk1.php.net/get/php-7.0.26.tar.gz.asc/from/this/mirror)
我们要删除掉.asc:

http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror

然后:

wget  http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror

我们解压.tar.gz文件:

tar -zxvf mirror

我们使用ll,可以看到解压之后的文件:

-rw-------.  1 root        root            1454 Dec  4 14:59 anaconda-ks.cfg
-rw-r--r--.  1 root        root        18824456 Nov 21 20:20 mirror.1
drwxr-xr-x. 15 liaodalin01 liaodalin01     4096 Nov 21 19:57 php-7.0.26

php解压以后有一个问题,就是我们单纯的安装PHP,不能和nginx一起工作,只能和apache一起工作。
如果想和nginx一起工作作为webserver,我们需要安装一个软件(也是php的一个组件),叫作:FPM。
需要我们配置./configure的时候添加 --enable-fpm用来激活FPM。

我们使用:

yum install -y gcc gcc++ libxml2-devel

我们来编译安装PHP:

1)configure。进入解压后的php-7.0.26根目录,先configure

# 指定安装路径(一般来说是装在/usr/local/下)
./configure --prefix=/usr/local/php7/  --enable-fpm   

2)make编译(会比较慢,编译的时间长)

make

3)安装

make install

安装完成之后,我们在家目录下去测试:

cd ~
vim test.php

然后执行:

/usr/local/php7/bin/php test.php

我们可以看到php的info的打印结果。

了解:
php-fpm是什么?
fastcgi的管理器,只能适用于php.
fastcgi是与语言无关的开放扩展,主要讲cgi的解释器进程保持在内存中,借此以获取较高的性能。
fastcgi一直执行着,不过每一次都要花时间去fork一个子进程。
cgi,全称是公共网关接口。是一个协议。

再顺序理一下:
CGI:是一个协议,能够保证webserver传递过来的数据是标准格式,方便CGI程序的编写者。
eg:我们访问index.php的时候,这个时候,nginx会根据配置文件,知道这个不是一个静态文件二直接返回,需要执行php解释器来处理,nginx会发送数据给解释器本次请求的url,以及请求参数等。总之,nginx给php传递什么数据都是由cgi这个协议来决定的。

访问index.php,nginx要启动cgi来处理,而我们的php解释器就是一个cgi程序,现在再来看下fastcgi。
cgi在处理程序的时候会fork一个子进程, 处理完成后释放,下次来请求的时候,再fork,再释放。这样的方式大家会觉得很笨,效率不高,所以fastcgi诞生了。
fastcgi是程序主动启动一个进程,这个进程有n个子进程,然后子进程都会常驻在内存中,避免了fork和释放。当然,fastcgi在忙的时候也会自己启动新的子进程来帮助,在比较闲的时候又会将这些子进程销毁,保证资源不浪费。
PHP-FPM(FastCGI Process Manager) 是实现了fastcgi这个协议的程序,之前是三方的,现在被PHP官网买了。(协议是用于被实现,自己只有标准,没有具体的实现)。所以现在我们就可以直接在官方下载和使用了。


安装mysql

我们进入:

dev.mysql.org

DOWNLOADS - > Community -> MySQL Community Server -> Generally Available(GA) releales 下选择Source Code, 和Generic Linux (Architecture Independent), 通用的linux架构(Compressed TAR Archive)。

我们选择下载,我们是下载到虚拟机上,我们右键,拷贝链接。在:No thanks, just start my download那里:
(https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz)

我们在虚拟机中下载:

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

使用tar解压:

tar -zxvf mysql

我们安装一些依赖包:

yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel

我们进入到解压后的mysql根目录,然后cmake 编译:

注意:cmake是一个跨平台的安装工具。

最新版的mysql都使用cmake命令来进行安装,cmake的命令参数较多:

LAMP/LNMP安装与配置_第3张图片
图片.png
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
-DMYSQL_DATADIR=/mydata/mysql/data  \
-DSYSCONFDIR=/etc  \
-DMYSQL_USER=mysql  \
-DWITH_MYISAM_STORAGE_ENGINE=1  \
-DWITH_INNOBASE_STORAGE_ENGINE=1  \
-DWITH_ARCHIVE_STORAGE_ENGINE=1  \
-DWITH_MEMORY_STORAGE_ENGINE=1  \
-DWITH_READLINE=1  \
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock  \
-DMYSQL_TCP_PORT=3306  \
-DENABLED_LOCAL_INFILE=1   \
-DENABLED_DOWNLOADS=1  \
-DWITH_PARTITION_STORAGE_ENGINE=1  \
-DEXTRA_CHARSET=all  \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci  \
-DWITH_DEBUG=0  \
-DMYSQL_MAINTAINER_MODE=0  \
-DWITH_SSL:STRING=bundled  \
-DWITH_ZLIB:STRING=bundled

注意:
如果有错的话重新下载这个版本安装:( wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz)

安装:

make install  

我们就安装好了mysql,使用:

mysqld 

启动Mysql。

启动之后,我们输入:mysql就可以进入mysql了。


安装Apache

打开Apache官网:httpd.apache.org

Download -> Apache HTTP Server 2.4.29 (httpd): 2.4.29 is the latest available version 2017-10-05

LAMP/LNMP安装与配置_第4张图片
图片.png

我们点击右键,拷贝链接(http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.29.tar.gz)。

在命令行,下载到虚拟机用户根目录:

wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.29.tar.gz

使用tar解压:

tar -zxvf httpd

cd进入解压apache解压目录.

./configure --prefix=/usr/local/apache2

就在进行编译前的准备工作。
如果有错误说APR没有被发现,我们就安装APR。

我们在用户根目录下载APR以及APR-Util:

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz

wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz

并解压:

tar -zxvf apr
tar -zxvf apr-util

我们对apr和apr-util重命名。

mv apr-1.4.5 apr
mv apr-util-1.3.12 apr-util

我们要把这两个文件夹(apr,apr-util)丢到httpd-2.4.20这个目录中。

mv apr apr-utl httpd-2.4.20/srclib/

处理好apr和apr-util之后,我们下载一个依赖pcre(正则):

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz

下载好安装它(下载完之后它被命名为download文件夹),它是最后一个依赖。

mv download pcre.tar.bz2
tar -jxvf  pcre.tar.bz2

在解压完成后,进入解压目录:

cd pcre-8.37/

配置:

./configure --prefix=/usr/local/pcre-8.37

然后编译:

make

安装:

make install

你可能感兴趣的:(LAMP/LNMP安装与配置)