1.LANP架构介绍

Linux+Apache(httpd)+MySQL+PHP
httpd、PHP、MySQL三者如何工作
image.png
要搭配LANP环境需要先下载下来几个软件包
image.png
建议你以后把所有的软件包都安装在这个目录下

2.安装MySQL

2.1首先需要解压源码包

image.png
创建一个人目录,用来存放MySQL的安装信息。
image.png
接下来创建MySQL的用户,因为启动MySQL需要该用户
image.png
创建完成之后我还要初始他的数据库
首先要定义我的数据库安装在那个地方,还有我的数据存放在哪里
这里我们还要创建一个存放数据的目录,还要给他一个用户组和用户的权限
image.png
然后配置编译参数
image.png
这条命令中,—user表示定义数据库以哪个用户的身份运行,
—datadir表示定义数据库的安装目录(建议放到大空间的分区上)
如果你前面的操作和笔者一样,那你一定会遇到和笔者一样的问题,执行最后一条命令时,有个错误信息
“FATAL ERROR:please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper”,这是因为缺少包perl-Module-Install,使用yum命令安装t就好了
image.png
再次执行
image.png
执行echo $?
返回为0表示执行正确
现在初始化就完成了

2.2配置MySQL

首先复制配置文件
image.png
然后进入配置文件进行修改
image.png
其中, basedin是 MySQL包所在的路径, datadir是定义的存放数据的地方,默认情况下,错误日志也会记录在这个目录下面。port定义 MySQL服务监听的端口,如果不定义默认就是3306。 server id定义
该 MySQL服务的ID号,这个参数用在做主从配置的时候,后续会介绍。 socket定义 MySQL服务监听
的套接字地址,在 Linux系统下面,很多服务不仅可以监听一个端口(通过 TCP/IP的方式通信),也可
以监听 socket,两个进程就可以通过这个 socke文件通信。下面几个 buffer是关于内存的配置参数,保
持默认即可。
然后复制启动脚本文件并修改其属性,如图所示
image.png
image.png
修改以下两个位置,与前面初始化数据库时定义的目录一致。

image.png

2.3启动mysqld

把mysqld服务加入到系统服务列表中
image.png
使其开机自启
image.png
启动服务
image.png

3.安装Apache

3.1安装apr

首先解压下载好的源码包
tar zxvf htttp-2.4.33.tar.gz
tar zxvf apr-1.6.5.tar.gz
tar zxvf apr-util-1.6.1.tar.gz
在这里httpd是依赖apr和apr-util的,如果不安装这两个东西,httpd就无法工作。
所以我们先来安装apr和apr-util
cd /usr/local/src/apr-1.6.5
然后配置编译参数
./configure --prefix=/usr/local/apr

报错

image.png
因为我们在一个干净的系统下,所以它缺少了一个libtool库
我们用yum安装一下
yum install -y libtool*
接下来
make && make install(编译和安装)

3.2安装apr-util

cd /usr/local/src/apr-util-1.6.1
然后配置编译参数
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

报错

如果在安装apr-util时出现如下错误:libtool: link: cannot find the library /usr/local/src/apr-util-1 54/xml/expat/libexpat la’or
unhandled argument /usr/local/src/apr-util-1.5.4/xml/expat/libexpat la
nake:*[ libapruti1-1.la]错误1
解决办法是
yum install -y expat-devel

接下来
make && make install(编译和安装)

3.3安装httpd

cd /usr/local/src/httpd-2.4.33
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

这里,— prefix指定安装目录, —enable-so表示启用DSO。DSO的意思是,把某些功能以模块(个功能模块就是一个so文件,这些文件在编译完httpd后会看到)的形式展现出来。
enable-mods- shared=most表示以共享的方式安装大多数功能模块,安装后会在 modules目录下面看到这
些文件。因为选择了大多数,所以后面的编译时间就会大大增加。另外,为了避免在make的时候出现
错误,你最好提前安装好一些库文件,如下所示:
yum install -y pcre pcre-devel
接下来
make && make install(编译和安装)
以上两个步骤都可以使用echo $?来检查一下是否有错误。

4.安装PHP

4.1安装

先解析源码包
tar -jxvf php-5.6.39.tar.bz2
笔者这里下载的源码包是bz2格式的。
解析这个需要下载一个文件
yum install -y bzip2

然后配置编译参数
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc--with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
关于PHP的编译参数比较多,笔者暂时就不解释了
有一个地方需要提一下,apxs为httpd的一个工具,以为有它才自动把PHP模块安装到httpd的modules目录下,也就是说PHP将会以一个模块的形式和httpd结合在一起工作。执行这一步使笔者遇到了几个错误,如图所示
image.png
image.png
还有一个错误

错误7
If configure fails try —with-vpx-dir=

configure: error: jpeglib.h not found.
解决办法:
yum install libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 -y

在yum这些包的时候,再次执行./configure的时候,再次出错。
然后,又yum一遍,提示出No package libjpeg-devel.x86_64,在yum库中没有找到这个包。
可以利用yum -y update命令更新yum库,更新完成以后,可以再次yum install,如果这一步成功,皆大欢喜。
如果依旧不可以,使用下一种方法,利用yum search 包名(例libjpeg-devel.x86_64可以写成libjpeg),可以搜出一些,可以找到相应其他的包

然后再次配置编译参数
配置完一定要检查一下是否有错误(echo $?)

然后编译和安装
make && make install
make的时间会比较长,请耐心等待。
最后复制配置文件
image.png

4.2配置httpd支持PHP

httpd的主配置文件为/usr/local/src/apache2.4/conf/httpd.conf,编译这个文件
vim /usr/local/src/apache2.4/conf/httpd.conf
搜索ServerName,把#ServerName www.example.com:80前面的#删除
image.png
找到如下内容:
image.png
改写成:
image.png
修改它的目的是,允许所有请求,如果不设置改行,则我们访问的时候会报403错误。
在搜索下面这一行:
image.png
在下面添加一行
image.png
接着找到这一段
image.png
将该行修改为:
image.png
最后保存并退出。

4.3测试LAMP是否成功

启动Httpd之前需要先检验配置文件是否正确
/usr/local/src/apache2.4/bin/apachectl -t
如果有错误,请继续修改配置文件httpd.conf,
配置正确则会显示Syntax Ok
然后启动Httpd
/usr/local/src/apache2.4/bin/apachectl start
可以使用netstat命令进行网络端口的查看
如果看到80端口被Httpd占用则启动成功
image.png

测试是否正确解析PHP

编写一个测试脚本
image.png
image.png
保存脚本后继续测试
使用curl命令,访问一下
image.png
如果能显示以上信息说明PHP解析正确。