LAMP平台概述
- LAMP是目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境
- 构成组件 Linux、Apache、MySQL、PHP/Perl/Python
- 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版本信息。