1.LANP架构介绍
Linux+Apache(httpd)+MySQL+PHP
httpd、PHP、MySQL三者如何工作
要搭配LANP环境需要先下载下来几个软件包
建议你以后把所有的软件包都安装在这个目录下
2.安装MySQL
2.1首先需要解压源码包
创建一个人目录,用来存放MySQL的安装信息。
接下来创建MySQL的用户,因为启动MySQL需要该用户
创建完成之后我还要初始他的数据库
首先要定义我的数据库安装在那个地方,还有我的数据存放在哪里
这里我们还要创建一个存放数据的目录,还要给他一个用户组和用户的权限
然后配置编译参数
这条命令中,—user表示定义数据库以哪个用户的身份运行,
—datadir表示定义数据库的安装目录(建议放到大空间的分区上)
如果你前面的操作和笔者一样,那你一定会遇到和笔者一样的问题,执行最后一条命令时,有个错误信息
“FATAL ERROR:please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper”,这是因为缺少包perl-Module-Install,使用yum命令安装t就好了
再次执行
执行echo $?
返回为0表示执行正确
现在初始化就完成了
2.2配置MySQL
首先复制配置文件
然后进入配置文件进行修改
其中, basedin是 MySQL包所在的路径, datadir是定义的存放数据的地方,默认情况下,错误日志也会记录在这个目录下面。port定义 MySQL服务监听的端口,如果不定义默认就是3306。 server id定义
该 MySQL服务的ID号,这个参数用在做主从配置的时候,后续会介绍。 socket定义 MySQL服务监听
的套接字地址,在 Linux系统下面,很多服务不仅可以监听一个端口(通过 TCP/IP的方式通信),也可
以监听 socket,两个进程就可以通过这个 socke文件通信。下面几个 buffer是关于内存的配置参数,保
持默认即可。
然后复制启动脚本文件并修改其属性,如图所示
修改以下两个位置,与前面初始化数据库时定义的目录一致。
2.3启动mysqld
把mysqld服务加入到系统服务列表中
使其开机自启
启动服务
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-utilcd /usr/local/src/apr-1.6.5
然后配置编译参数./configure --prefix=/usr/local/apr
报错
因为我们在一个干净的系统下,所以它缺少了一个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结合在一起工作。执行这一步使笔者遇到了几个错误,如图所示
还有一个错误
错误7
If configure fails try —with-vpx-dir=
解决办法:
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的时间会比较长,请耐心等待。
最后复制配置文件
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前面的#删除
找到如下内容:
改写成:
修改它的目的是,允许所有请求,如果不设置改行,则我们访问的时候会报403错误。
在搜索下面这一行:
在下面添加一行
接着找到这一段
将该行修改为:
最后保存并退出。
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占用则启动成功
测试是否正确解析PHP
编写一个测试脚本
保存脚本后继续测试
使用curl命令,访问一下
如果能显示以上信息说明PHP解析正确。