LAMP平台部署及应用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: LAMP平台部署及应用

LAMP平台概述

  1. LAMP是目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境
  2. 构成组件 Linux、Apache、MySQL、PHP/Perl/Python
  3. LAMP平台的应用优势 成本低廉 可定制、易于开发 方便易用、安全和稳定
  • 准备工作

确认没有使用RPM方式安装php及相关依赖包

  • 安装扩展工具库

数据加密工具libmcrypt、mhash、mcrypt

  • 编译安装PHP
  • 构建PHP运行环境

PHP即Hypertext Preprocessor(超级文本预处理语言)的缩写,是一种服务器端的HTML嵌入式脚本语言。PHP的语法混合了C,java,Perl及部分自创的新语法,拥有更好的网页执行速度,更重要的是PHP支持绝大多数流行的数据库,在数据库层面的操作功能十分强大,而且能够支持Unix,Windows,Linux等多种操作系统。

操作步骤

安装PHP软件包

PHP项目最初由Rasums Lerdorf在1994年创建,1995年发布第一个版本PHP1.0。本次我们将以稳定版源码包php-5.5.38.tar.gz为例。该版本可以从PHP官网PHP: Hypertext Preprocessor 下载。

准备工作

为了避免发生程序冲突等现象,建议先将rpm方式安装的PHP及相关依赖包卸载

[root@mysql ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps

另外将需要的依赖包安装上,依赖包都在系统盘上,所以先挂载盘在安装。

1.  [root@mysql ~]# mount /dev/cdrom /media
2.  mount: /dev/sr0 is write-protected, mounting read-only
3.  [root@mysql ~]# cd /media/Packages/
4.  [root@mysql Packages]# rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm xz-devel-5.2.2-1.el7.x86_64.rpm libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm
  • 安装扩展工具库

在实际企业应用中,一部分基于PHP开发的web应用系统会需要额外的扩展工具,如数据加密工具libmcrypt,mhash,mcrypt等(可以从Compare, Download & Develop Open Source & Business Software - SourceForge 下载)。安装PHP之前应先安装好这些扩展工具程序。

将扩展工具包和PHP做成一个盘,直接挂载。

1)安装libmcrypt

1.  [root@mysql ~]# mount /dev/cdrom /media
2.  mount: /dev/sr0 is write-protected, mounting read-only
3.  [root@mysql ~]# tar zxf /media/libmcrypt-2.5.8.tar.gz -C /usr/src
4.  [root@mysql ~]# cd /usr/src/libmcrypt-2.5.8/
5.  [root@mysql libmcrypt-2.5.8]# ./configure
6.  [root@mysql libmcrypt-2.5.8]# make && make install
7.  [root@mysql libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib

2)安装mhash

1.  [root@mysql ~]# tar zxf /media/mhash-0.9.9.9.tar.gz -C /usr/src
2.  [root@mysql ~]# cd /usr/src/mhash-0.9.9.9/
3.  [root@mysql mhash-0.9.9.9]# ./configure
4.  [root@mysql mhash-0.9.9.9]# make && make install
5.  [root@mysql mhash-0.9.9.9]# ln -s /usr/local/lib/libmcrypt* /usr/lib

3)安装mcrypt

1.  [root@mysql ~]# tar zxf /media/mcrypt-2.6.8.tar.gz -C /usr/src
2.  [root@mysql ~]# cd /usr/src/mcrypt-2.6.8/
3.  [root@mysql mcrypt-2.6.8]# ./configure
4.  [root@mysql mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH   //解决configure配置报错
5.  [root@mysql mcrypt-2.6.8]# ./configure
6.  [root@mysql mcrypt-2.6.8]# make && make install

编译安装PHP

1)解包

1.  [root@mysql ~]# tar zxf /media/php-5.5.38.tar.gz -C /usr/src
2.  [root@mysql ~]# cd /usr/src/php-5.5.38/
3.  [root@mysql php-5.5.38]#

2)配置

在定制PHP的配置选项时,最关键的是要指定httpd,mysqld的安装路径,以便添加相关支持设置,使LAMP各组件协同工作。除此之外还可以指定安装路径,启用多字节支持,加密扩展支持等。

[root@mysql 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

上述配置命令中,各项的含义如下。

--prefix=/usr/local/php5 :指定将PHP程序安装到哪个目录下。

--with-mcrypt :加载数据加密等扩展工具支持。

--with-apxs2=/usr/local/httpd/bin/apxs :设置Apache HTTP Server提供的apxs模块支持程序的文件位置。

--with-mysql=/usr/local/mysql :设置MySQL数据库服务程序的安装位置。

--with-mysqli=/usr/local/mysql/bin/mysql_config :添加mysql扩展支持。

--with-config-file-path=/usr/local/php5 :设置PHP的配置文件php.ini将要存放的位置。

--enable-mbstring:启用多字节字符串功能,以便支持中文等代码。

3)编译及安装

[root@mysql php-5.5.38]# make && make install

编译的时间可能较长,若期间未出现报错,那么PHP程序的安装过程基本就完成了。

设置LAMP组件环境

设置LAMP组件环境,主要包括对PHP的配置文件php.in,Apache 的配置文件httpd.conf的调整。前者用来确定PHP的运行参数,后者用来加载libphp5.so模块,以便支持PHP网页。

  • php.ini配置调整

1)php.ini的建立及基本设置

安装好PHP软件包以后,服务器并不会自动创建php.ini配置文件,但在源码目录下提供了两个样例配置文件,分别对应于开发环境,生产环境。

/usr/src/php-5.5.28/php.ini-development //开发版样例文件,用于学习测试

/usr/src/php-5.5.28/php.ini-production //生产版样例文件,用于实际运营


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

[root@mysql ~]# cp /usr/src/php-5.5.38/php.ini-development /usr/local/php5/php.ini

通过修改php.ini文件中的配置内容,可以控制PHP网页的执行特性,如是否允许用户上传文件,设置上传文件的大小限制,设置默认使用的字符集,加载额外的扩展模块等。如果没有特别要求,可以直接沿用默认设置,不做修改。

1.  [root@mysql ~]# vim /usr/local/php5/php.ini 
2.  ......                                  //省略部分
3.  ;ault_charset = "UTF-8"                 //设置默认的字符集为utf-8(去掉注释“;”)
4.  file_uploads = On                       //允许通过PHP网页上传文件(默认允许)
5.  upload_max_filesize = 2M                //允许上传的文件大小限制
6.  max_file_uploads = 20                   //允许HTTP最多允许请求上传的文件数
7.  post_max_size = 8M                      //允许通过表单post提交的数据量限制
8.  short_open_tag = no                     //允许识别PHP短语法标记,即<?...?>(off改成on)
9.  ;extension=php_mysqli.dll               //添加MySQL支持(去掉注释“;”)

2)添加ZendGuardLoader优化模块

为了进一步提高PHP程序的执行速度,优化页面加载速度,可以为PHP添加Zend公司开发的ZendGuardLoader优化模块。

1.  [root@mysql ~]# tar zxf /media/zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src
2.  [root@mysql ~]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
3.  [root@mysql zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php/

修改php.ini配置文件,添加加载及启用ZendGuardLoader.so模块的配置语句。

1.  [root@mysql ~]# vim /usr/local/php5/php.ini 
2.  .....添加以下两行配置内容
3.  zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
4.  zend_loader.enable=1
  • httpd.conf配置调整

要使httpd服务器支持PHP页面解析功能,通过LoadModule配置项加载PHP程序的模块文件,并通过AddType配置项添加对“.php”类型网页文件的支持。除此之外,还应修改Directorylndex配置行,添加index.php配置项,以识别常见的PHP首页文件。由于前面章节做虚拟web站点,开启了lnclude conf/extra/httpd-vhosts.conf配置项,所以本章中需要将其注释掉。

1.  [root@mysql ~]# vim /usr/local/httpd/conf/httpd.conf
2.  ......
3.  LoadModule php5_module        modules/libphp5.so        //安装过程中应该会自动添加
4.  <IfModule dir_module>
5.      DirectoryIndex index.html index.php         //添加index.php
6.  </IfModule>
7.     AddType application/x-httpd-php .php         //添加这段配置
8.  #Include conf/extra/httpd-vhosts.conf           //需要注释掉
9.  [root@mysql ~]# /usr/local/httpd/bin/apachectl restart
10.  AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::1008:2aaf:112f:2970. Set the 'ServerName' directive globally to suppress this message            //不是报错,可以不改。可以改配置ServerName localhost:80或者配置可用的域名。

测试LAMP协同工作

完成PHP相关软件的安装,调整配置以后,应对其进行必要的功能测试,以验证LAMP平台各组件是否能够协同运作。在网站根目录下创建相应的PHP测试网页,然后通过浏览器进行访问,根据显示结果即可判断LAMP平台是否构建成功。

  • 测试PHP网页能否正常显示
1.  [root@mysql ~]# vim /usr/local/httpd/htdocs/test1.php
2.  
3. <?php
4. phpinfo();
5. ?>

通过浏览器访问测试网页,如http://www.123.com/test1.php。若能够看到PHP程序的版本号,配置命令,运行变量等相关信息,则表示此web服务器已经能够正常显示PHP网页,若还能看到Zend引擎相关信息,则表示ZendGuardLoader模块也成功启动。

  • 测试PHP网页能否访问MySQL数据库
1.  [root@mysql ~]# vim /usr/local/httpd/htdocs/test2.php
2.  
3.  <?php
4.  $link=mysqli_connect('localhost','root','123');        //登录方式,用户名,密码
5.  if($link) echo "66666";                                //连接成功反馈的信息
6.  mysqli_close($link);                                   //关闭数据库连接
7.  ?>

其中”mysqli_connect()“函数用于连接MySQL数据库,需要指定目标主机地址,以及授权访问的用户名,当使用了错误的用户名,密码或因”mysqli_connect()“函数未运行而导致连接失败时,执行将会报错。

LAMP结构应用实例

phpMyadmin是一个使用PHP语言编写,用来管理MySQL数据库的web应用系统。通过该套件提供的网页界面,即便是对SQL语句不太熟悉的人,也能够非常容易地对MySQL数据库进行管理和维护。

  • 解包并进行复制到网站目录
1.  [root@mysql ~]# tar zxf /media/phpMyAdmin-4.7.2-all-languages.tar.gz -C /usr/src
2.  [root@mysql ~]# mv /usr/src/phpMyAdmin-4.7.2-all-languages/ /usr/local/httpd/htdocs/phpMyAdmin
  • 建立配置文件config.inc.php

将phpMyAdmin套件复制到网站目录以后,还需要创建配置文件方可正常使用。

1.  [root@mysql ~]# cd /usr/local/httpd/htdocs/phpMyAdmin/
2.  [root@mysql phpMyAdmin]# cp config.sample.inc.php config.inc.php
  • 访问phpMyAdmin的web管理页面

在浏览器中访问http://www.123.com/phpMyAdmin,如果能够看到phpMyAdmin系统的登录界面,则表示部署成功。使用MySQL数据库的用户(不能是密码为空的用户)登陆后,即可在授权范围内对数据库进行管理。

使用phpMyAdmin系统

通过phpMyAdmin套件,用户可以在授权的范围内执行各种数据库管理操作,使界面更加直观,友好,大大减低了远程维护MySQL数据库服务器的难度。

管理页面的初始界面是一个典型的分栏结构,左侧部分半括一排导航按钮(主页,退出,查询,帮助,SQL文档),库列表;右侧部分是主体窗口,其中显示了若干标签,操作面板,界面控制等组件,以及MySQL,网站服务器,phpMyAdmin版本信息。


相关文章
|
关系型数据库 MySQL PHP
搭建lamp平台
搭建lamp平台
|
关系型数据库 MySQL PHP
部署LAMP平台(二)
部署LAMP平台(二)
部署LAMP平台(二)
|
存储 关系型数据库 MySQL
|
网络协议 关系型数据库 MySQL
LAMP平台部署及应用
LAMP是指一组通常一起使用来运行动态网站​或者服务器的自由软件名称首字母缩写。
LAMP平台部署及应用
|
安全 关系型数据库 MySQL
LAMP平台服务简介、部署及应用
LAMP平台服务简介、部署及应用
485 0
LAMP平台服务简介、部署及应用
|
弹性计算 关系型数据库 MySQL
快速搭建LAMP环境
CentOS 7.7的ECS实例(云服务器)。通过本教程的操作,您可以基于ECS实例快速搭建一套LAMP环境。
368 0
快速搭建LAMP环境
|
弹性计算 关系型数据库 MySQL
Day6-快速搭建LAMP环境
阿里云云服务器ecs第6天打卡
Day6-快速搭建LAMP环境
|
关系型数据库 MySQL Apache
搭建LAMP环境
新手一起来学啊!!!
390 0
搭建LAMP环境
|
关系型数据库 MySQL 数据库