LAMP平台——构建PHP运行环境

        在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP。其中Apache和 MySQL的安装并没有严格的顺序;而PHP环境的安装一般放到最后,负责沟通Web服务器和数据库 系统以协同工作。

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

         本节将介绍如何构建PHP运行环境,以实现LAMP协同架构。其前提条件是服务器中已经编译安装好 Apache HTTP Server 和MySQL.数据库。

安装PHP软件包

        PHP项目最初由Rasums Lerdorf在1994年创建,1995年发布第一个版本PHP 1.0.本小节将以 稳定版源码包php-5.5.38.tar.gz为例。该版本可以从PHP官方站点http://www.php.net下载。 下面介绍编译安装PHP相关软件包的基本过程。

        

1.准备工作

        为了避免发生程序冲突等现象,建议先将RPM方式安装的php及相关依赖包(如果已存在,卸载)。例如,根据实际安装情况可卸载php、php-cli、php-ldap.php-common.php-mysql等.另外,需要安装zlib-devel和libxml2-devel包。

[root@lgcllc ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps
错误:未安装软件包 php 
错误:未安装软件包 php-cli 
错误:未安装软件包 php-ldap 
错误:未安装软件包 php-common 
错误:未安装软件包 php-mysql [root@lgcllc ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@lgcllc ~]# rpm -ivh /mnt/Packages/zlib-devel-1.2.7-18.el7.x86_64.rpm 
[root@lgcllc ~]# rpm -ivh /mnt/Packages/xz-devel-5.2.2-1.el7.x86_64.rpm
[root@lgcllc ~]# rpm -ivh /mnt/Packages/libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm 

2.安装扩展工具库

        在实际企业应用中,一部分基于PHP开发的Web应用系统会需要额外的扩展工具,如数据加密 工具libmcrypt.mhash.mcrypt等(可以从站点http://sourceforge.net下载).安装PHP软件包之前, 应先安装好这些扩展工具程序。

源码的安装一般由这三个步骤:配置(configure) 编译(make) 安装(make install) 安装成功

(1)安装libmcrypt

[root@lgcllc ~]# rz -E           //将源码包libmcrypt-2.5.8.tar.gz拉进来
rz waiting to receive.  [root@lgcllc ~]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@lgcllc ~]# cd /usr/src/libmcrypt-2.5.8/
[root@lgcllc libmcrypt-2.5.8]# ./configure    
[root@lgcllc libmcrypt-2.5.8]# make && make install 
[root@lgcllc libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/

(2)安装mhash

[root@lgcllc ~]# rz -E    //将源码包mhash-0.9.9.9.tar.gz拉进来
rz waiting to receive.[root@lgcllc ~]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@lgcllc ~]# cd /usr/src/mhash-0.9.9.9/
[root@lgcllc mhash-0.9.9.9]# ./configure 
[root@lgcllc mhash-0.9.9.9]# make && make install
[root@lgcllc mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/

(3)安装mcrypt

root@lgcllc ~]# rz -E     //将源码包mcrypt-2.6.8.tar.gz拉进来
rz waiting to receive.[root@lgcllc ~]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@lgcllc ~]# cd /usr/src/mcrypt-2.6.8/
[root@lgcllc mcrypt-2.6.8]# ./configure
[root@lgcllc mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib   //解决configure配置报错
[root@lgcllc mcrypt-2.6.8]# ./configure
[root@lgcllc mcrypt-2.6.8]# make && make install

3.编译安装PHP

(1)解包

[root@lgcllc ~]# rz -E       //将源码包php-5.5.38.tar.gz拉进来
rz waiting to receive.将下载获得的PHP源码包解压并释放到/usr/src目录下,切换到展开后的源码目录。
[root@lgcllc ~]# tar zxf php-5.5.38.tar.gz -C /usr/src/
[root@lgcllc ~]# cd /usr/src/php-5.5.38/

(2)配置

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

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

(3)编译及安装 

        编译的过程可能会需要较长时间,需耐心等待。

[root@lgcllc php-5.5.38]# make
[root@lgcllc php-5.5.38]# make install

设置LAMP组件环境

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

1.php.ini配置调整

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

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

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

[root@lgcllc ~]# cp /usr/src/php-5.5.38/php.ini-development /usr/local/php5/php.ini
[root@lgcllc ~]# grep -v "^;" /usr/local/php5/php.ini | grep -v "^$"
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
。。。。。。

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

[root@lgcllc ~]# 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支持。。。。。。

(2)添加ZendGuardLoader优化模块

        为了进一步提高PHP程序的执行效率,优化页面加载速度,可以为PHP添加Zend公司开发的 ZendGuardLoader 优化模块。若需要加密PHP 代码以限制未经授权的分发,还可以购买该公司的 ZendGuard 软件。

         ZendGuardLoader优化模块适用于PHP 5.3到PHP 5.6系列版本,该模块可以从Zend公司的官方 站点http://www.zend.com下载.若使用PHP 5.2系列版本.应改用较早的ZendOptimizer.为PHP 安装及添加 ZendGuardLoader 模块支持的过程如下所述。

        将下载的ZendGuardLoader包解压缩,并将源码目录下的模块文件复制到PHP程序的模块文件夹。

[root@lgcllc ~]# rz -E    //将源码包zend-loader-php5.5-linux-x86_64_update1.tar.gz拉进来
rz waiting to receive.[root@lgcllc ~]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src/
[root@lgcllc ~]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
[root@lgcllc zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php

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

[root@lgcllc ~]# vim /usr/local/php5/php.ini   //再编辑下列两条进去
[PHP]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

2.httpd.conf配置调整

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

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

首先这条默认是在的更改这条再加一条最后把这条注释掉 前面带'#'

重启服务以更新配置

[root@lgcllc ~]# /usr/local/httpd/bin/apachectl restart

        在上述配置内容中,LoadModule行应该会在安装PHP的过程中自动添加.其中的“php5_module" 表示模块名称:“modules/libphp5.so”表示模块文件位置。而AddType行需要手动添加,Directorylndex 行在原有基础上对其进行修改即可。

测试LAMP协同工作

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

        下面分别从PHP网页的解析、通过PHP页面访问MySQL数据库两个方面进行测试。 要想测试PHP环境是否能够正常工作,需要建立一个使用PHP语言编写的网页文件,并通过httpd 服务器发布,在浏览器中对其进行访问。由 用于测试时,只需要建立一个简短的PHP测试文件即可。

1.测试PHP网页能否正确显示

        编写一个“.php”格式的测试网页文件,使用PHP内建的“phpinfo()”函数显示服务器的PHP 环境信息,PHP代码应包括在“<?php…?>”标记之间。将测试网页文件放置到网站根目录下,如 /usr/local/httpd/htdocs/test1.php。

[root@lgcllc ~]# vim /usr/local/httpd/htdocs/test1.php   //编辑下列代码用于测试
<?php
phpinfo();
?>

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

2.测试PHP网页能否访问MySQL数据库

        编写一个测试网页文件test2.php.添加简单的数据库操作命令,用于验证与MySQL服务器的连 接、查询等操作。其中,“mysqli_connect()"函数用于连接MySQL数据库,需要指定目标主机地址, 以及授权访问的用户名、密码。

[root@lgcllc ~]# vim /usr/local/httpd/htdocs/test2.php  //编辑下列代码用于测试
<?php
$link=mysqli_connect('localhost','root','123457');     //连接MySQL数据库 使用root的账号密码
if($link) echo "恭喜你,数据库连接成功啦!!!";           //连接成功时的反馈消息
mysqli_close($link);                                   //关闭数据库连接  
?>

         通过浏览器访问测试,如http://192.168.55.220/test2.php。若能看到成功;连接的提示信息,如下图所示,则表示能够通过PHP网页访问MySQL数据库.当使用了错误的用户名、密码,或者因“mysqli-connect()” 函数未运行而导致连接失败时,执行时将会报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构 之map/set练习

文章目录 1. 只出现一次的数字算法原理&#xff1a;代码&#xff1a; 2. 随机链表的复制算法原理&#xff1a;代码&#xff1a; 3. 宝石与石头算法原理&#xff1a;代码&#xff1a; 4. 坏键盘打字算法原理&#xff1a;代码&#xff1a; 5. 前K个高频单词算法原理&#xff1a;代…

图片的批量建码怎么做?一图一码的制作方法

在使用图片展示内容时&#xff0c;经常会有同一类型的图片信息是有区别的&#xff0c;如果需要将每张图片批量生成二维码图片&#xff0c;那么出了一张一张去制作之外&#xff0c;有没有能够一键批量建码的功能可以解决这个问题呢&#xff1f;下面来给大家分享一下图片批量建码…

SpringBoot 源码解析1:环境搭建

SpringBoot 源码解析1&#xff1a;环境搭建 1.项目结构2.pom.xml3.MyApplication 1.项目结构 最简单的spring-web项目 2.pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns…

记删除CK不彻底问题 及 新增表TTL机制

问题背景&#xff1a;对CK表进行删除时&#xff0c;发现无法彻底删除&#xff0c;并报错如下&#xff1a; 同时也会有下面的报错信息&#xff1a; 解决过程&#xff1a; 确认CK 节点是否健康存活&#xff0c;select * from system.clusters 可以查看&#xff1b;确认CK元数据是…

基于ssm日用品网站设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本日用品网站就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&…

linux系统的u盘/mmc/sd卡等的支持热插拔和自动挂载行为

1.了解mdev mdev是busybox自带的一个简化版的udev。udev是从Linux 2.6 内核系列开始的设备文件系统&#xff08;DevFS&#xff09;的替代品&#xff0c;是 Linux 内核的设备管理器。总的来说&#xff0c;它取代了 devfs 和 hotplug&#xff0c;负责管理 /dev 中的设备节点。同时…

openEuler商业化进展可观:累计装机量超610万套,市场持续扩容

12月15日至16日&#xff0c;以“崛起数字时代&#xff0c;引领数智未来”为主题的操作系统大会&#xff06;openEuler Summit 2023在北京国家会议中心举办。大会旨在汇聚全球产业界创新力量&#xff0c;构筑坚实的基础软件根基&#xff0c;推动基础软件技术持续创新&#xff0c…

win10 node-red安装及管理配置

win10 node-red安装及管理配置 一、安装node.js环境二、安装node-red环境2.1 node-red安装2.2 node-red安全登录方式 三、pm2管理node-red服务3.1 安装pm23.2 pm2管理node-red服务 四、常用命令4.1 npm命令4.2 pm2命令 更多 本文旨在详细介绍windows10系统下的node-red开发配置…

visio打出根号,下标,并调整符号的大小

插入公式对象 打出根号和带下标的字母 调整符号大小 把做好的公式符号弄到visio中的图中 ctrla 复制符号 进入visio中粘贴 并 调整大小 调整大小直接拖动边框上的圆点即可。

java SSM酒店客房管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM酒店客房管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

在开发微信小程序的时候,报错navigateBack:fail cannot navigate back at firstpage

这个错误的意思是&#xff1a;在这个页面已经是第一个页面了&#xff0c;没办法再返回了 报错原因 这个错误原因其实也简单&#xff0c;就是在跳转的时候使用了wx.redirectTo()&#xff0c;使用wx.redirectTo()相当于重定向&#xff0c;不算是从上一个页面跳转过来的&#xf…

com.sun.org.apache.xerces.internal.impl.dv.util.Base64

com.sun.org.apache.xerces.internal.impl.dv.util.Base64 Access restriction: The type Base64 is not API (restriction on required library D:\Java\jdk1.8.0_341\jre\lib\rt.jar) Maven Update Project 虽然没错误了&#xff0c;但是有警告&#xff0c;好奇&#xff1f;…

python进度条

分享一个进度条python库 瞬间觉得很酷 :)) 它的名字叫tqdm 效果图&#xff1a; 代码&#xff1a; import time from tqdm import tqdmfor i in tqdm(range(100), desc"Loading", unit"kb"):time.sleep(0.1)

中通单号查询,中通快递物流查询,对需要的单号进行备注

批量查询中通快递单号的物流信息&#xff0c;对需要的单号进行备注。 所需工具&#xff1a; 一个【快递批量查询高手】软件 中通快递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;并登录 步骤2&#xff1a;点击主界面左上角的“…

系列一、Linux中安装MySQL

一、Linux中安装MySQL 1.1、下载MySQL安装包 官网&#xff1a;https://dev.mysql.com/downloads/file/?id523327 我分享的&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/188_9RnBYlWVzFb_UJH5aaQ?pwdyyds 提取码&#xff1a;yyds 1.2、上传至/opt目录 & 解压…

Linux Conda 安装 Jupyter

在Linux服务器Conda环境上安装Jupyter过程中遇到了无数的报错&#xff0c;特此记录。 目录 步骤一&#xff1a;安装Anaconda3 步骤二&#xff1a;配置Conda源 步骤三&#xff1a;安装Jupyter 安装报错&#xff1a;simplejson.errors.JSONDecodeError 安装报错&#xff1a;…

什么是第一方数据,如何使用它?

多年来&#xff0c;第一方数据一直是营销行业的话题。 随着用户数据隐私法律法规的不断收紧&#xff0c;营销人员必须接受一个几乎没有数据 cookie 的世界。 我们必须在如何合法和合乎道德地获取客户信息方面更具创造性。 不确定什么是第一方数据&#xff1f;或者不太确定从…

[python][plotly]利用plotly绘制散点图

import plotly.express as px import pandas as pd# 创建示例数据 data pd.DataFrame({x: [1, 2, 3, 4, 5],y: [5, 4, 3, 2, 1] })# 使用 plotly.express 绘制散点图 fig px.scatter(data, xx, yy, titleScatter plot) fig.show() 结果&#xff1a;

【DataSophon】大数据管理平台DataSophon-1.2.1基本使用

&#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&am…

C#上位机与欧姆龙PLC的通信01----项目背景

最近&#xff0c;【西门庆】作为项目经理负责一个70万的北京项目&#xff0c;需要在工控系统集成软件开发中和欧 姆龙PLC对接&#xff0c;考虑项目现场情况优先想到了采用FinsTCP通讯协议&#xff0c;接下来就是记录如何一步步实现这些通讯过程的&#xff0c;希望给电气工程师&…