前言
环境:CentOS7.9 php-7.4.16.tar.gz
我们知道,在LAMP中,Apache解析PHP是通过libphp7.so模块来解析的,下面就来讲解一下LAMP架构中如何安装PHP服务,这里默认你已经安装好了MySQL和Apache。
下载php-7.4.16.tar.gz源码包
在https://www.php.net/distributions/下载并使用FileZilla上传到服务器;
服务器能连接外网的话也可以 wget https://www.php.net/distributions/php-7.4.16.tar.gz;
尽量先安装这些依赖包
yum install sqlite3 sqlite3-devel libxml2 libxml2-devel cmake
开始安装PHP
tar -zxvf php-7.4.16.tar.gz
cd php-7.4.16/
./configure --prefix=/usr/local/php/ --with-apxs2=/usr/local/apache/bin/apxs \
--with-mysql=/var/lib/mysql --with-mysqli=mysqlnd #报错的话就解决依赖包问题
make
make install
./configure预编译正常,如上图
看到这样的就表示装成功了,也可以执行echo $? 命令查看一下。
cp php-7.4.16/php.ini-production /usr/local/lib/php.ini #复制文件
使用Apache测试php
vim /usr/local/apache/conf/httpd.conf #打开Apache配置文件找到下面这段
#AddType application/x-gzip .tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在后面追加下面两句:
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
找到用户,改为php用户(如果不存在php用户,就创建:useradd -s /bin/nologin -M php)
User php
Group php
修改默认首页
<IfModule dir_module>
DirectoryIndex index.php index.html #加多一个index.php
</IfModule>
重启httpd服务
./apachectl -k restart
查看PHP模块
grep php /usr/local/apache/conf/httpd.conf
LoadModule php7_module modules/libphp7.so #新添加的PHP模块
配置测试首页
vim /usr/local/apache/htdocs/index.php
写入以下内容:
<?php
phpinfo();
?>
网页刷新,查看,已经正常显示php页面了
总结:以上最大的困难在于解决依赖包问题,特别是在./configure 时候,最容易报错,yum install安装软件包又找不到,所以需要网上下载rpm包来安装,就这步花费最长时间。