1、选择版本
下载地址
http://php.net/downloads.php
本节课我们使用5.6.x系列。大家也可以使用PHP7。目前本课程不使用这个版本
2、同样是使用./configure
使用最简单的方式编译安装
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/myapache/bin/apxs
PHP并不是完全独立的代码,很多功能也要依赖一些开源库。这一点一定要注意,所以这就是为什么安装时需要安装其他 各种依赖库
3、PHP的真正运行方式
PHP编译好后,会有一个可执行程序(在windows上就叫 php.exe)
PHP 是脚本解释运行。所以真正运行PHP的就是这个解释器.
Webserver怎么和PHP交互的?
4、通用的方式就是CGI
通用网关接口(Common Gateway Interface)。充当了webserver和PHP之间的桥梁。
1、用户请求webserver
2、webserver调用CGI,创建进程和PHP解释器进行交互。然后把结果给webserver,再返还给用户浏览器。
后面有各种升级版如FastCGI ,包括PHP的FASTCGI进程管理器(FPM)
5、推荐方式—模块方式
Php编译成webserver的模块,随webserver一起启动。本课时用的apache就是这种方式。
我们加了参数 --with-apxs2
apxs 是apache的扩展工具。如果我们将来也要自己写apache 模块,那么也要用到这个(PHP当然也要用啦)
6、编译好后
查看apache的配置文件,它会帮你加入这么一行
LoadModule php5_module modules/libphp5.so
libphp5.so就是刚才我们生出来的
我们在目录下创建一个PHP文件试试看
然而发现并没卵用
原因很简单,apache不认识xxx.php后缀。
继续打开apache配置文件
AddType application/x-httpd-php .php
后来的错误汇总:
cd /wdzj/source/php-5.6.11/ext/openssl
/wdzj/lnmp/php5.6.11/bin/phpize
Cannot find config.m4.
Make sure that you run ‘/wdzj/lnmp/php5.6.11/bin/phpize’ in the top level source directory of the module
cp config0.m4 config.m4
yum -y install autoconf
/wdzj/lnmp/php5.6.11/bin/phpize
./configure –with-openssl –with-php-config=/wdzj/lnmp/php5.6.11/bin/php-config
make; make install
yum install error: protected multilib versions error
sudo yum downgrade openssl 降级
sudo yum install openssl-devel