Linux安装PHP

2021-07-03 09:06

阅读:500

标签:com   inux   打不开   报错   rod   ror   ini   配置文件   blank   

下载PHP:

官网地址:http://cn2.php.net/

下载页面:http://cn2.php.net/get/php-7.1.6.tar.gz/from/a/mirror

技术分享点击下载

tar -zxf 解压

可以通过 ./configure  --help 查看帮助。

配置:注意with-apxs2 httpd路径和 with-pdo-mysql 路径。

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-config-file-path=/usr/local/lib --with-pdo-mysql=/usr/local/mysql --with-zlib-dir=/usr/lib

可能会遇到错误:configure error xml2-config not found. please check your libxml2 installation

解决办法:

检查是否安装了libxm包
[root@localhost software]# rpm -qa |grep  libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12
重新安装libxml2和libxml2-devel包, yum安装的时候发现新版本会提示更新,需要更新的可以更新,不要跳过就行了。
[root@localhost  /]# yum install libxml2
[root@localhost  /]# yum install libxml2-devel -y
安装完之后查找xml2-config文件是否存在
[root@localhost  /] # find / -name "xml2-config"
/usr/bin/xml2-config
 
然后重新执行./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --with-config-file-path=/usr/local/lib --with-pdo-mysql=/usr/local/mysql --with-zlib-dir=/usr/lib

配置成功:

技术分享

技术分享

在make之前还要做一个mysql的header文件的软连接。因为mysql安装的时候指定了目录,不做软连接的话,还是找不到header文件。

   ln -s /usr/local/mysql/include/* /usr/local/include/

执行make 编译

执行 make install 安装 

 安装包中的php.ini-production拷贝到/usr/local/php/lib/下即可

cp php.ini-production /usr/local/lib/php.ini

在httpd.conf配置文件中查找 LoadModule php7_module modules/libphp7.so

如果没有搜索到(一般都是可以搜索到的),就将这段指令添加到httpd.conf配置文件中,使apache可以加载libphp7.so模块,并进行php文件的解析。

 

在httpd.conf配置文件中再添加一段指令: SetHandler application/x-httpd-php

这段指令告诉apache,碰到文件名以.php, .php2, .php3, .php4, .php5, .php6或phtml结尾的文件使用libphp7.so模块进行解析。其中"\.ph(p[2-6]?|tml)$"为正则表达式,你可以随意更改,只要符合PCRE正则表达式语法,都可以。

 

接下来,在Vim中搜索”DirectoryIndex“字符串,大家可以看到已经有index.html了,在index.html后面添加 index.php index.phtml

 

进入/usr/local/apache2/htdocs目录:cd /usr/local/apache2/htdocs创建一个测试文件:touch t.php用Vim打开它添加:然后就可以通过浏览器访问了:

技术分享

如果php的页面不能够解析,需要重启httpd服务,最好是杀死每个进程,然后再重启。
如果遇到这样的错误:
错误 324 (net::ERR_EMPTY_RESPONSE):服务器已断开连接,且未发送任何数据。
找到php.ini,加上配置 
error_reporting  =  E_ALL & ~E_NOTICE
,忽略E_NOTICE报错,重启apache 解决问题。

如果浏览器还是打不开,需要关闭防火墙。


评论


亲,登录后才可以留言!