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.rhkb.cn/news/218355.html

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

相关文章

python 爬虫 m3u8 视频文件 加密解密 整合mp4

文章目录 一、完整代码二、视频分析1. 认识m3u8文件2. 获取密钥&#xff0c;构建解密器3. 下载ts文件4. 合并ts文件为mp4 三、总结 一、完整代码 完整代码如下&#xff1a; import requests from multiprocessing import Pool import re import os from tqdm import tqdm fro…

深度探索Linux操作系统 —— 构建根文件系统

系列文章目录 深度探索Linux操作系统 —— 编译过程分析 深度探索Linux操作系统 —— 构建工具链 深度探索Linux操作系统 —— 构建内核 深度探索Linux操作系统 —— 构建initramfs 深度探索Linux操作系统 —— 从内核空间到用户空间 深度探索Linux操作系统 —— 构建根文件系统…

媒体直播平台有哪些,活动直播如何扩大曝光?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体直播平台包括人民视频、新华社现场云、中国网、新浪新闻直播、搜狐视频直播、凤凰新闻直播、腾讯新闻直播等。活动直播想要扩大曝光&#xff0c;可以考虑以下方式&#xff1a; 1.选择…

海思平台isp之ccm标定

文章目录 1、raw图采集2、ccm标定2.1、标定参数配置2.2、标定效果优化2.2.1、优化方式一2.2.2、优化方式二2.2.3、优化方式三1、raw图采集 raw图采集步骤及标准,请参考文章 《海思平台isp之ccm标定》。2、ccm标定 2.1、标定参数配置 (1)图像基本参数 (2)黑电平设置 (…

spring boot 实现直播聊天室

spring boot 实现直播聊天室 技术方案: spring bootwebsocketrabbitmq 使用 rabbitmq 提高系统吞吐量 引入依赖 <dependencies><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.42&…

十六、YARN和MapReduce配置

1、部署前提 &#xff08;1&#xff09;配置前提 已经配置好Hadoop集群。 配置内容&#xff1a; &#xff08;2&#xff09;部署说明 &#xff08;3&#xff09;集群规划 2、修改配置文件 MapReduce &#xff08;1&#xff09;修改mapred-env.sh配置文件 export JAVA_HOM…

从零开始:前端架构师的基础建设和架构设计之路

文章目录 一、引言二、前端架构师的职责三、基础建设四、架构设计思想五、总结《前端架构师&#xff1a;基础建设与架构设计思想》编辑推荐内容简介作者简介目录获取方式 一、引言 在现代软件开发中&#xff0c;前端开发已经成为了一个不可或缺的部分。随着互联网的普及和移动…

智能科技企业网站搭建的作用是什么

随着科学技术快速提升&#xff0c;各种智能产品随之而来&#xff0c;每个赛道里都涌入了大量企业商家&#xff0c;有些热门产品更是广受关注&#xff0c;对企业来说&#xff0c;形象、品牌、信息等方面需要完美呈现到用户眼前&#xff0c;而网站无疑是很好的工具。 企业通过【…

打开软木塞,我们来谈谈葡萄酒泡泡吧

香槟是任何庆祝场合的最佳搭配。从婚礼和生日到单身派对和典型的周五晚上&#xff0c;这款气泡饮料是生活中特别聚会的受欢迎伴侣。 来自云仓酒庄品牌雷盛红酒分享你知道吗&#xff0c;你喜欢喝的那瓶香槟酒可能根本不是香槟&#xff0c;而是汽酒&#xff1f;你不是唯一一个认…

造型精致的冰精灵充电头,充电效率高安全可靠,居家出行皆可用

随着大家对手机的依赖度越来越高&#xff0c;快速充电已经成为必不可少的需求。快充当然少不了支持快充的充电器&#xff0c;现在市面上的快充头很多&#xff0c;安全性和便携性是我们选择时的重点关注方向&#xff0c;我目前用的是战飞ZEFi冰精灵&#xff0c;这款产品有着独特…

【LeetCode刷题】-- 161.相隔为1的编辑距离

161.相隔为1的编辑距离 方法&#xff1a;一次遍历 首先&#xff0c;我们要确认字符串的长度不会相差太远。如果长度差了2个或更多字符&#xff0c;那么 s 和 t 就不可能是一次编辑之差的字符串。 接下来&#xff0c;我们假设 s 的长度总是短于或等于 t 的长度。如果不是这样&…

【C语言】结构体内存对齐

目录 引入结构体 结构的声明 创建和初始化 内部元素的使用&#xff1b; 特殊声明&#xff1a; 结构体在内存中的对齐 练习&#xff1a; 引入结构体 C语言有各种数据类型&#xff0c;我们已经对一些数据类型很熟悉&#xff1a; 整型&#xff08;int&#xff09;- 存储整…

MAC IDEA Maven Springboot

在mac中&#xff0c;使用idea进行maven项目构建 环境配置如何运行maven项目1.直接在IDEA中运行2.使用jar打包后执行 如何搭建spring boot1.添加依赖2.创建入口类3.创建控制器4. 运行5.其他 环境配置 官网安装IDEA使用IDEA的创建新项目选择创建MAEVEN项目测试IDEA的MAVEN路径是…

Mybatis-plus介绍与入门

前言 MyBatis-Plus是在MyBatis基础上的一个增强工具库&#xff0c;旨在简化开发者的工作&#xff0c;提高开发效率&#xff0c;同时保留MyBatis的灵活性。使用 MyBatis-Plus 可以减少重复性的代码&#xff0c;简化常见的数据库操作 官方学习文档&#xff1a;MyBatis-Plus (bao…

phpstudy是什么?

PHPStudy 是一个集成环境工具&#xff0c;它将 PHP 开发所需的软件&#xff0c;如 Apache&#xff08;Web服务器&#xff09;、MySQL&#xff08;数据库服务器&#xff09;、PHP&#xff08;脚本语言&#xff09;等打包在一起&#xff0c;以便用户能够轻松安装和配置这些软件&a…

fl studio20中文内测版下载2024最新完美实现汉化

fl studio20是一款众所周知的水果编曲软件&#xff0c;能够剪辑、混音、录音&#xff0c;它的矢量界面能更好用在4K、5K甚至8K显示器上&#xff0c;还可以可以编曲、剪辑、录音、混音&#xff0c;让你的计算机成为全功能录音室&#xff0c;不论是在功能上面还是用户界面上都是数…

为了吃鸡苦练狙击,避免坑队友自己造一个狙击游戏!

引言 一文教会你造一个简易的狙击游戏。 说到狙击&#xff0c;相信大家都不陌生&#xff0c;无论是影视作品还是网络游戏&#xff0c;都经常能看到狙击枪的身影&#xff0c;最深刻的是它能够从百里之外&#xff0c;一枪爆头。 本文将介绍如何在Cocos Creator中造一个简易的狙…

真正可行的vue3迁移到nuxt3方法(本人亲测,完全避坑)

终于到了总结经验的时候了&#xff0c;这绝对是全网唯一、完全真正可行的干货。 在我看来&#xff0c;知识就是要拿来分享的&#xff0c;分享给他人也是在提高自己。我绝对不会搞什么订阅或者vip专栏来搞钱坑害各位&#xff0c; 因为我在csdn写文章最主要的目的是为了记录和总…

虚幻学习笔记13—C++静态和动态加载

一、前言 我们在蓝图中可以很方便的添加各种需要的组件&#xff0c;那么在C代码中要如何实现呢。在代码中分静态和动态加载&#xff0c;而无论静态和动态&#xff0c;加载的内容有资源和资源类&#xff0c;资源类通常为带资源的蓝图类。 二、实现 在实现静态或动态加载时&…

科技云报道:从数据到生成式AI,是该重新思考风险的时候了

科技云报道原创。 OpenAI“宫斗”大戏即将尘埃落定。 自首席执行官Sam Altman突然被董事会宣布遭解雇、董事长兼总裁Greg Brockman辞职&#xff1b;紧接着OpenAI员工以辞职威胁董事会要求Altman回归&#xff1b;再到OpenAI董事会更换成员、Altman回归OpenAI。 表面上看&…