LAMP环境搭建之编译安装指南(php-5.3.27.tar.gz)

2024-08-30 14:32

本文主要是介绍LAMP环境搭建之编译安装指南(php-5.3.27.tar.gz),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

测试环境:CentOS release 6.5 (Final)

软件安装:httpd-2.2.27.tar.gz   mysql-5.1.72.tar.gz   php-5.3.27.tar.gz 

1、mysql安装详见:https://www.cnblogs.com/su-root/p/11210794.html

2、apache安装详见:https://www.cnblogs.com/su-root/p/11182549.html

3、PHH安装如下:

一、php安装准备

①yum安装php所依赖的包

[root@bqh-119 php]# yum -y install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel

②检测机器是否已经安装好

[root@bqh-119 php]# rpm -qa zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel

③安装libiconv-1.14.tar.gz  -----(https://excellmedia.dl.sourceforge.net/project/korwah/source/libiconv/libiconv-1.14.tar.gz)


[root@bqh-119 php]# tar zxf libiconv-1.14.tar.gz 
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install

④快速安装libmcrypt扩展库(epel源方法来安装) 

[root@bqh-119 yum.repos.d]#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[root@bqh-119 yum.repos.d]#yum makecache
[root@bqh-119 yum.repos.d]# yum install libmcrypt-devel -y

⑤快速安装mhash加密算法扩展库

  Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下开启,mhash的可以用于场景检验数值,消息摘要,小小认证码,以及无需原文的关键信息保存(如密码)等。

  Mhash为PHP提供了多种哈希算法,如MD5,SHA1,GOST等,你可以通过MHASH_hashname()来查看支持的算法有哪些。

注意问题:该扩展不能提供最新的哈希算法;该扩展结果原则上运算不可逆。

[root@bqh-119 php]# yum install mhash mhash-devel -y

⑥快速安装mcrypt加密扩展库

  php程序员们在编写程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障。php除了自带的几种加密函数外,还有功能更全面的php加密扩展库mcrypt和mhash。其中,mcrypt扩展可以实现加密解密功能,就是既能将明文密码加

密,也可以密文还原。mcrypt是php里面重要的加密支持扩扎库,该库在默认情况下不开启。编辑本段支持的算法和加密模式:mcrypt库支持20多种加密算法和8中加密模式,具体可以通过函数crypt_list_algorithms()和mcrypt_list_modes()来显示。

[root@bqh-119 php]# yum install mcrypt -y

⑦安装libxslt-devel

[root@bqh-119 php]# yum -y install libxslt-devel

 以上安装php依赖包就ok了。

二、开始安装PHP服务

 ①下载php-5.3.27.tar.gz 并解压。 

下载php:https://www.php.net/distributions/php-5.3.27.tar.gz

[root@bqh-119 php]# tar xf php-5.3.27.tar.gz

②编译安装PHP

[root@bqh-119 php-5.3.27]# cd php-5.3.27
[root@bqh-119 php-5.3.27]# ./configure \ --prefix=/application/php5.3.27 \ #指定php的安装路径 --with-apxs2=/application/apache/bin/apxs \ #指定apache的bin/apxs路径,通过apxs来增加php扩展模块到apache中 --with-mysql=/application/mysql \ #指定mysql的安装路径 --with-xmlrpc --with-openssl \ --with-zlib \ --with-freetype-dir \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-iconv=/usr/local/libiconv \ --enable-short-tags --enable-sockets \ --enable-zend-multibyte \ --enable-mbstring \ --enable-static \ --enable-gd-native-ttf \ --with-curl \ --with-xsl \ --enable-ftp \ --with-libxml-dir

 执行上边命令后效果如下:

③接着执行:

[root@bqh-119 php-5.3.27]# make && make install  #安装php生成文件至系统.....
.........以上省略
/root/tools/php-5.3.27/build/shtool install -c ext/phar/phar.phar /application/php5.3.27/bin
ln -s -f /application/php5.3.27/bin/phar.phar /application/php5.3.27/bin/phar
Installing PDO headers:          /application/php5.3.27/include/php/ext/pdo/
[root@bqh-119 php-5.3.27]# echo $?
0

④设置软连接安全方便访问:

[root@bqh-119 php-5.3.27]# ln -s /application/php5.3.27/ /application/php
[root@bqh-119 php-5.3.27]# ll /application/php
lrwxrwxrwx 1 root root 23 7月  19 03:08 /application/php -> /application/php5.3.27/

⑤安装php服务后,我们看一下apache下的模块路径及httpd.conf配置文件中切入了libphp5.so

[root@bqh-119 php-5.3.27]# ll /application/apache/modules/
总用量 27824
-rw-r--r-- 1 root root     9115 7月  13 23:26 httpd.exp
-rwxr-xr-x 1 root root 28479402 7月  19 03:02 libphp5.so #通过apxs来增加php扩展模块到apache中
[root@bqh-119 php-5.3.27]# grep libphp5 /application/apache/conf/httpd.conf
LoadModule php5_module        modules/libphp5.so

注:当用户访问apache时,如何是静态文件,自身解析处理;如果是动态文件,交给php模块解析处理

⑥拷贝php配置文件到php默认目录下并更名为php.ini

[root@bqh-119 php-5.3.27]# ll php.ini-*
-rw-r--r-- 1 101 101 69606 7月  11 2013 php.ini-development   #开发
-rw-r--r-- 1 101 101 69627 7月  11 2013 php.ini-production    #生产
[root@bqh-119 php-5.3.27]# cp php.ini-production /application/php/lib/php.ini

⑦修改apache主配置文件httpd.conf,解决FQDN:

[root@bqh-119 apache]# sed -i 's#\#ServerName www.example.com:80#ServerName 127.0.0.1:80#g' ./conf/httpd.conf
[root@bqh-119 apache]# grep ServerName ./conf/httpd.conf
# ServerName gives the name and port that the server uses to identify itself.
ServerName 127.0.0.1:80

⑧配置apache支持php:在主配置文件httpd.conf第311行后添加下面两行即可:

  • AddType application/x-httpd-php .php .phtml
  • AddType application/x-httpd-php-source .phps

修改damon用户为bqh:

如果不存在bqh用户,配置好文件后,需要创建bqh用户。

注:这个damon用户不是必须修改的,一般情况我们是需要修改用户的,更改默认用户是为了安全考虑。

修改默认的首页文件,例如增加一个index.php:

保存配置后可用diff比对一下:

创建用户:

[root@bqh-119 conf]# id bqh
id: bqh:无此用户
[root@bqh-119 conf]# groupadd bqh
[root@bqh-119 conf]# useradd bqh -s /sbin/nologin -M -g bqh 
[root@bqh-119 conf]# id bqh
uid=503(bqh) gid=503(bqh) 组=503(bqh)

⑨测试php

配置apache主配置文件httpd.conf

[root@bqh-119 extra]# cat httpd-vhosts.conf
#
# Virtual Hosts
#
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.2/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.#
# Use name-based virtual hosting.
#
NameVirtualHost *:80#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:80>ServerAdmin 1147076062@qq.comDocumentRoot "/var/html"ServerName test_phpinfo.phpServerAlias index.phpErrorLog "logs/php-error_log"CustomLog "|/usr/local/sbin/cronolog /application/apache/logs/access_php_%Y%m%d.log" combined
</VirtualHost>

注:

  1. 以上基于前文的基于域名的虚拟主机上基础上配置的,详情至:https://www.cnblogs.com/su-root/p/11185264.html
  2. 以上日志轮询是采用的cronolog,详情至:https://www.cnblogs.com/su-root/p/11192398.html
  3. 当然也可以不创建虚拟主机,直接在默认的配置文件、站点目录下配置也行ok。

在新建的/var/html/站点目录下写一个test_phpinfo.php代码测试php

[root@bqh-119 html]# cat test_phpinfo.php 
<?phpphpinfo();
?>

⑩刷新配置,打开浏览器输入地址结果看是否成功。

[root@bqh-119 extra]# /application/apache/bin/apachectl -t
Syntax OK
[root@bqh-119 extra]# /application/apache/bin/apachectl graceful

http://192.168.0.118/test_phpinfo.php

我们再看看日志:

[root@bqh-119 extra]# tail -2 /application/apache/logs/access_php_20190720.log 
192.168.0.110 - - [20/Jul/2019:12:52:02 +0800] "GET /test_phpinfo.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2146 "http://192.168.0.119/test_phpinfo.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"
192.168.0.110 - - [20/Jul/2019:12:52:02 +0800] "GET /test_phpinfo.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2524 "http://192.168.0.119/test_phpinfo.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"

ok,目前Apache到php已经通了,下面我们需要测试php到mysql是否通。

在站点/var/html/目录下再写一个test_mysql.php代码测试php

[root@bqh-119 html]# vim test_mysql.php
[root@bqh-119 html]# cat test_mysql.php 
<?php
$link_id=mysql_connect('localhost','root','bqh123') or mysql_error();
if($link_id) {echo "MySQL connection succeeded!";}
else {echo mysql_error();}
?>

浏览器输入地址:http://192.168.0.119/test_mysql.php

ok测试没有问题。

假如我们把mysql密码改了,我们再来测试一下效果:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

到此为止,Apache→php→mysql测试已通; LAMP环境搭建ok。 

这篇关于LAMP环境搭建之编译安装指南(php-5.3.27.tar.gz)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1121082

相关文章

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数