PHP7.2与apache环境安装部署详细流程

本文详细介绍如何在CentOS环境下从源码安装Apache与PHP,包括解决安装过程中的依赖问题及配置步骤,确保PHP能在Apache服务器上正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php-agent 安装部署详细流程

一、环境

测试机内网IP: 10.128.5.98
用户名口令: root/oneapm21

cat /etc/system-release
cat /etc/issue
uname -r

备注:需要准备xshell和xftp软件;不再赘述;

二、安装apache

cd httpd-2_x_NN
./configure --enable-so
make
make install

参考:https://www.php.net/manual/zh/install.unix.apache2.php

如果是新机器一般会编译出现问题,提示缺少组件,参考:https://www.itdaan.com/blog/2018/04/23/3a7fff07e26d489cb195960eb1ea828d.html

解决办法:

1、下载所需要的软件包

wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz  
wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz  
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip  

2、解决APR not found报错

tar -zxf apr-1.4.5.tar.gz  
cd  apr-1.4.5  
./configure --prefix=/usr/local/apr  
make -j8 && make install 

3、解决APR-util not found问题

tar -zxf apr-util-1.3.12.tar.gz  
cd apr-util-1.3.12  
./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config  
make -j8 && make install 

4、解决pcre问题

unzip -o pcre-8.10.zip  
cd pcre-8.10  
./configure --prefix=/usr/local/pcre  
make -j8 && make install 

5、重新配置

./configure --enable-so --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre
make -j8
make install

OK!

6、测试

现在已经将 Apache 2.x.NN 安装在 /usr/local/apache2

之后,可以使用如下命令启动 Apache 服务器:

/usr/local/apache2/bin/apachectl start

如果成功,可以停止 Apache 服务器并继续安装 PHP:

/usr/local/apache2/bin/apachectl stop

在浏览器中输入:

http://10.128.5.98/

可以看到 特大号的 It works!

三、安装配置PHP

下载的源码地址有:http://mirrors.sohu.com/php/

参考:https://www.php.net/manual/zh/install.unix.apache2.php

现在需要配置并编译 PHP。在这里可以用各种各样的参数来自定义 PHP,例如启动哪些扩展功能包的支持等。用 ./configure --help 命令可以列出当前可用的所有参数。
目前我们可以不启动太多的选项;

1、首先要安装libxml

一般新机器都会提示需要

libxml-2.0 >= 2.9.0)

在ubuntu18.04 上一般可以安装libxml

apt-get install libxml2
apt-get install libxml2-dev

在centos上,我没有设置源,我选择直接下载RPM包安装:

下载RPM包地址:ftp://xmlsoft.org/libxml2/

我下载了比较新的:

ftp://xmlsoft.org/libxml2/libxml2-2.9.9-1.fc28.x86_64.rpm
ftp://xmlsoft.org/libxml2/libxml2-devel-2.9.9-1.fc28.x86_64.rpm

但是在安装时候,centos7.8提示和以前的旧版本冲突,并且需要cmake,我们可以使用强制安装方式霸王硬上弓:

rpm -ivh  --force --nodeps  libxml2-2.9.9-1.fc28.x86_64.rpm
rpm -ivh  --force --nodeps  libxml2-devel-2.9.9-1.fc28.x86_64.rpm

2、安装PHP7.x

#php配置命令是
./configure --prefix=/root/php/php720 --with-apxs2=/usr/local/apache2/bin/apxs

这里–prefix只是指定了前缀,如果不使用前缀,会默认安装到系统目录,好处是php可以直接使用,但是系统也会变得有点乱,所以在需要多个PHP版本共存的情况下,需要指定一个前缀,为了在/root/php目录下安装多个版本,所以里面又加了目录720,我个人不喜欢加很多特殊符号,所以去掉版本之间的符号;

–with-apxs2是为了告诉PHP需要和那个apache2一起工作,这里是之前使用的目录,见第二节;

测试人员在测试过程中使用各种框架,所以使用了更复杂的配置脚本:

./configure --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5/etc --with-apxs2=/usr/local/apache2/bin/apxs   --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-gd  --with-iconv  --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex   --enable-mbstring --enable-ftp  --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext   --enable-session  --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --with-pdo-sqlite --with-xsl --with-mhash --with-curl

这里需要强调一下–with-config-file-path选项:

重要:这个选项指定了PHP去哪里寻找INI文件,如果不指定的话,默认是去前缀目录的lib子目录去找,比如我安装后,他会去这里找配置文件:

/root/php/php720/php.ini

编译安装,

make -j8
make install
php --version
# 这个命令可以看到ini应该在的位置
php --ini

为新PHP准备一个全新的 php.ini

cp php.ini-development /root/php/php720/php.ini

3、配置apache与测试PHP

编辑 httpd.conf 文件以调用 PHP 模块。LoadModule 表达式右边的路径必须指向系统中的 PHP 模块。

以上的 make install 命令可能已经完成了这些,但务必要检查。

/usr/local/apache2/conf/httpd.conf

我喜欢用xftp拖到本地,然后用notepad++编辑,再上传回去。

如果 PHP 8.x 版本: 在153行

LoadModule php_module modules/libphp.so

PHP 7.x 版本: 在149行,

LoadModule php7_module modules/libphp7.so

可以确认一下文件是否正确

find / -name "libphp7.so"

**还需要添加文件类型映射:**在354行,

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    # 添加如下这句,
	AddType application/x-httpd-php .php

顺便设置一下服务器名字:需要在httpd.conf中设置ServerName,在191行

ServerName 10.128.5.98:80

准备一下PHP测试页面文件,建立一个网页文件在:

/usr/local/apache2/htdocs

添加测试页面:hi.php

<html>
 <head>
  <title>PHP Info</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>';  ?>

<?php phpinfo(); ?>
 </body>
</html>

需要更改此文件的权限为可执行文件,

chmod 777 hi.php

重启HTTP,在浏览器访问即可;

/usr/local/apache2/bin/apachectl restart

页面中可以看到php版本信息等各种信息的一个表格就说明配置正确了!

表格中会涉及php当前版本,以及php.ini的位置信息!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值