LAMP架构是目前最成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。与之并肩的还有LNMP,LAMP说白了就是Linux操作系统上安装Apache网站服务,构建php/perl/Python运行环境来连接mysql数据库,四个组件合起来就简称“LAMP”。 LNMP只不过是用Nginx来搭建了这个httpd服务。

开始搭建LAMP运行环境的准备工作:

  1. Linux系统来一个;
  2. Apache网站搭建搞起来,之前详细写过搭建Apache网站的博文,这里就不啰嗦了,可以参考 https://blog.51cto.com/14154700/2391114, 来搭建Apache。
  3. MySQL数据库同样搞起来,搭建MySQL数据库的参考博文:https://blog.51cto.com/14154700/2394026 ,Apache和MySQL的先后安装顺序无所谓,但是PHP的运行环境一定要放在最后搭建。
  4. 准备一堆所需的源码包,这里准备了一套(包括了Apache和MySQL的源码包),可以拿来用:https://pan.baidu.com/s/15OrNm9o91xAH5iTFumu0DA
    提取码:finx

在Apache和MySQL数据库都搞好后,开始搭建建PHP的运行环境(php源码包可以从 https://www.php.net/ 官网下载):

1、为避免发生程序冲突等现象,先将rpm方式安装的php及相关依赖包(如果已存在)卸载:

[root@localhost ~]# yum -y erase php*

2、安装php所需的依赖包(在系统盘的Packages目录):

[root@localhost Packages]# rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm
[root@localhost Packages]# rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm 
[root@localhost Packages]# rpm -ivh libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm

3、将准备好的源码包依次解压出来备用:

[root@localhost media]# tar zxf libmcrypt-2.5.8.tar.gz -C /tmp
[root@localhost media]# tar zxf mhash-0.9.9.9.tar.gz -C /tmp
[root@localhost media]# tar zxf mcrypt-2.6.8.tar.gz -C /tmp
[root@localhost media]# tar zxf php-5.5.38.tar.gz -C /tmp
[root@localhost media]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /tmp
[root@localhost media]# tar zxf phpMyAdmin-4.7.2-all-languages.tar.gz -C /tmp

3、安装扩展工具库(用来数据加密的工具libmcrypt、mhash、mcrypt等,可以从 https://sourceforge.net/ 进行下载):
1)安装libmcrypt:

[root@localhost media]# cd /tmp/libmcrypt-2.5.8/             #进入libmcrypt源码目录
[root@localhost libmcrypt-2.5.8]# ./configure && make && make install    #配置及编译安装
[root@localhost libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/          #创建软链接

2)安装mhash:

[root@localhost libmcrypt-2.5.8]# cd /tmp/mhash-0.9.9.9/           #进入mhash源码目录
[root@localhost mhash-0.9.9.9]# ./configure && make && make install       #配置及编译安装
[root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/         #创建软链接

3)安装mcrypt:

[root@localhost mhash-0.9.9.9]# cd /tmp/mcrypt-2.6.8/          #进入mcrypt源码目录
[root@localhost mcrypt-2.6.8]# ./configure              #开始配置

注意:编译会报错,如下所示(变量的问题):

搭建LAMP平台配置详解

解决configure配置报错并继续安装:

[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@localhost mcrypt-2.6.8]# ./configure && make && make install

4)编译安装PHP:

[root@localhost mcrypt-2.6.8]# cd /tmp/php-5.5.38/        #进入PHP源码目录
[root@localhost php-5.5.38]# ./configure --prefix=/usr/local/php5  \
--with-mcrypt  \
--with-apxs2=/usr/local/httpd/bin/apxs  \
--with-mysql=/usr/local/mysql  \
--with-mysqli=/usr/local/mysql/bin/mysql_config  \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring 
#“\”表示为折行,可以不进行折行,但是要以空格分开,一定要注意大小写,不要写错,这一步很关键
[root@localhost php-5.5.38]# make && make install        #编译安装

上述配置命令中,各个选项的配置命令如下:
搭建LAMP平台配置详解

至此,如果没有报错,安装就完成了,接下来需要对LAMP组件环境进行适当的配置,并验证是否能够协同工作。

1、调整php.ini配置文件:

安装好PHP软件包后,服务器并不会自动创建php.ini配置文件,但是在源码目录下提供了两个样例配置文件,如下所示:

/tmp/php-5.5.38/php.ini-development         #开发版样例,用于学习、测试
/tmp/php-5.5.38/php.ini-production          #生产版用于实际运营

开发版和生产版并没有太大的区别,甚至开发版更方便些,我在测试连接数据库时,若php代码写的有语法上的错误,它会详细提醒我第几行的代码有错误,而生产版只是给我报了个ERROR :500的错。不过如果真的在实际运营环境中,还是老老实实的使用生产版吧!

选择一个样例文件,复制到PHP的配置文件目录/usr/local/php5下,并改名为php.ini。在php.ini配置文件中,以分号开头的为注释信息。

[root@localhost php-5.5.38]# cp /tmp/php-5.5.38/php.ini-production /usr/local/php5/php.ini

2、修改php.ini文件中的配置内容,可以控制php网页的执行特性,如下所示(通过在vim编辑器的末行模式下使用“/关键字”来定位到相应的配置项,需要注意的是,在末行模式下查找“short_open_tag”时,查找到的第一个不是,按“n”键继续查找下一个,默认存在“short_open_tag = Off”,只需将off该为On即可,如果这行不改,那么将会冲突):


[root@localhost php-5.5.38]# vim /usr/local/php5/php.ini 

[PHP]

.................
default_charset = "UTF-8"      #设置默认字符集为utf-8
file_uploads = On              #允许通过php网页上传文件
upload_max_filesize = 2M           #允许上传的文件大小限制
max_file_uploads = 20               #每个http最多允许请求上传的文件数
post_max_size = 8M             #每次通过表单post提交的数据量限制
short_open_tag = On               #允许识别php短语法标记,即<?...?>
extension=php_mysqli.dll            #添加MySQL支持

3、添加ZendGuardLoader优化模块:
为了进一步提高PHP程序的执行效率,优化页面加载速度,可以为php添加Zend公司开发的ZendGuardLoader优化模块,若需要加密PHP代码以限制未经授权的分发,还可以购买该公司的ZendGuard软件。
ZendGuardLoader优化模块使用于PHP 5.3到PHP 5.6系列,该模块可以从官方站点:http://www.zend.com/ 进行下载。若使用PHP 5.2系列的版本,应该用较早的ZendOptimizer。

进入解压后的源码目录,将目录内的模块文件复制到php程序的模块文件夹中:

[root@localhost php-5.5.38]# cd /tmp/zend-loader-php5.5-linux-x86_64/
[root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/

修改php.ini配置文件,添加加载及启用ZendGuardLoader模块的配置语句(下面两行配置项就需要纯手打了,写在开头“ [PHP] ”下即可,如下所示):

[PHP]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1
..................

4、调整httpd.conf配置:


[root@localhost /]# vim /usr/local/httpd/conf/httpd.conf

...........................
LoadModule php5_module        modules/libphp5.so           #末行模式下执行 /php5 定位到该行
#若是没有查找到上面该行,那么恭喜你,php环境搭建失败,砸电脑吧!(重新编译安装PHP吧)
<IfModule dir_module>
    DirectoryIndex index.html index.php       #执行/index,定位到该行,添加index.php配置项
</IfModule>
     AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php             #添加该行,以便对.php网页文件的支持
        #不要定位错了,上面AddType的配置项大概在397行左右
[root@localhost /]# systemctl restart httpd                  #重启httpd服务

5、LAMP基本搭建完成了,现在写两个简单的php测试文件,用来测试LAMP协同工作:


#test1用来测试PHP网页能否正常显示:
[root@localhost /]# vim /usr/local/httpd/htdocs/test1.php

<?php
phpinfo();
?>

#test2用来测试php网页能否访问MySQL数据库:
[root@localhost /]# vim /usr/local/httpd/htdocs/test2.php

<?php
$link=mysqli_connect('localhost','root','123');
if($link) echo "恭喜你,数据库连接成功!!!";
mysqli_close($link);
?>

通过浏览器分别访问test1.php和test2.php:

一、访问test1会显示PHP环境的详细信息,包括版本号、配置命令、运行变量等。如下所示,则表示此web服务器已经能够正常显示php网页;若还能看到Zend引擎相关信息,则表示ZendGuardLoader模块也已成功启用:
搭建LAMP平台配置详解

二、访问test2,若能够输出以下信息,则表示能够通过PHP网页访问MySQL数据库:

搭建LAMP平台配置详解

最后一步,也是大多数网站必备的一步,就是网站的后台,通过web网页来管理MySQL数据库的,使用的是PHPMyadmin管理套件,源码包可以从官方站点 https://www.phpmyadmin.net/ 进行下载:

开始配置:

1、将解压后的源码包目录,移动到网站目录下,并改名为phpadmin:

[root@localhost /]# mv /tmp/phpMyAdmin-4.7.2-all-languages/ /usr/local/httpd/htdocs/phpadmin

2、复制到网站目录以后,还需要创建配置文件才可正常使用,可以使用样板config.sample.inc.php进行修改,把该文件名改为config.inc.php即可,文件内有一行“blowfish_secret”配置项,默认已经设置了一个短语密钥(此密钥用于网页cookie认证,不需我们记忆),可根据需要自己修改,我在这里只把文件名改一下,可以正常使用即可:

[root@localhost /]# cd /usr/local/httpd/htdocs/phpadmin/
[root@localhost phpadmin]# mv config.sample.inc.php   config.inc.php#移动到同一个目录下,就是改文件名

测试phpmyadmin系统是否能够正常使用:

搭建LAMP平台配置详解

搭建LAMP平台配置详解

OK,大功告成,现在就可以使用该web页面来对我们的MySQL数据库进行管理了(创建库、表等)。再不需要使用SQL语句来管理我们的数据库了。

洗洗睡觉去........................