centos7源码编译php
整理一下学习日记,很适合小白学习
实验环境:centos7(VM虚拟机)
安装版本:php-5.3.29
下载php
下载链接:https://pan.baidu.com/s/1RgL70vmy4OLj57zgOL6p9A
此处就不在重复上传操作,如需了解可以看我发的上一篇文章
下边开始进行编译安装
安装依赖包
yum -y install libjpeg libjpeg-devel libpng libpng-devel libxml2 libxml2-devel curl curl-devel openssl openssl-devel freetype freetype-devel
使用tar工具解压缩已上传的mysql安装包
tar xvf php-5.3.29.tar.gz
编译安装php
cd php-5.3.29
#自定义配置
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysql-sock=/usr/local/mysql/data/mysql.sock --with-mysqli=/usr/local/mysql/bin/mysql_config --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-snmp --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer --enable-zip --with-pdo-mysql --with-pdo-pgsql --without-pdo-sqlite
#安装过程出现错误及解决方法:(如果还有其他问题,可以根据报错安装对应依赖包)
1. configure: error: Cannot find ldap libraries in /usr/lib
解决方法:
cp -frp /usr/lib64/libldap* /usr/lib/
2. configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
解决方法:
yum -y install postgresql-devel
3. Configure: error: snmp.h not found. Check your SNMP installation.
Solutions :
解决方法:
yum install net-snmp net-snmp-devel
#编译
make
#安装
make install
复制并配置php
cp php.ini-development /usr/local/php/lib/php.ini
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
#配置php
vi /usr/local/php/lib/php.ini
#找到并修改为以下内容:(可以通过“/+需要查找的内容”快速定位需要修改的内容)
mysqli-default_sock=/usr/local/mysql/mysql.sock
data.timezone=Asia/Shanghai
模块验证:
/usr/local/php/bin/php -m
调整Apache配置
vi /etc/httpd.conf
#修改以下内容:
LoadModule php5_module modules/libphp5.so #去掉前面的“#”,开启支持php模块
#添加以下内容:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#修改默认网站
DirectoryIndex index.php index.html
重启httpd服务
systemctl restart httpd
测试php页面能否正确显示
netstat -tlnp | grep httpd
#创建index页面,测试安装情况
vi /usr/local/httpd/htdocs/index.php
#添加以下内容:
<?php
phpinfo();
?>
#重新httpd
systemctl restart httpd
#通过ip地址访问默认首页查看php页面是否可以正常访问(如192.168.2.10/index.php)
#一般都正常,如果无法正常访问,可以查看端口80是否开放。
#测试能否正常连接数据库
vi /usr/local/httpd/htdocs/test.php
#输入以下内容:
<?php
$conn=mysqli_ocnnect("192.168.2.1","user","admin");
if($conn){
echo"OK";
}else{
echo"error";
}
?>
#打开数据库连接
mysql -u root -p
create database test;
GRANT all ON test.* TO 'user@%' INDETIFIED BY 'admin';
flush privileges;
#打开网页进行测试