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的位置信息!!!