安装PHP
所有的Linux发行版都有php, 你可以很简单的从软件仓库安装. 但是作者还是非常建议你下载最新的PHP源代码, 然后手动编译和安装. 为什么呢? 因为这样可以很好的升级PHP版本以及打各种补丁. 这一篇介绍了如何在Linux上从源码安装PHP.
前提需要
作者在这里要求事先装好Apache2和MySQL, 但是我觉着这里没啥必要, 你也可以装Nginx啊, 也可以不需要MySQL啊, 所以你只要有一个可以运行PHP的容器即可.
即使没有容器, 也可以从命令行中运行PHP脚本.
下载安装PHP
从PHP官网下载最新的PHP版本.
(作者在这里举的例子是5.2.6, 现在早已超过这个版本了, 不过我现在在图书馆, 没网… 只能贴作者的代码)
# bzip2 -d php-5.2.6.tar.bz2
# tar xvf php-5.2.6.tar
(两种不同的解压方式, 依据你下载的格式采用不同的姿势.)
可以通过./configure —help
来查看所有的配置选项, 最常用的选项是—prefix={install-dir-name}
, 从名字就可以看出, 这是用来确定安装目录的, 缺省选项是/usr/local/lib
目录.
# cd php-5.2.6
# ./configure --help
开始编译:
# ./configure --with-apxs2=/usr/local/apache2/bin/apxsv --with-mysql
# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini
配置httpd.conf文件
在/usr/local/apache2/conf/httpd.conf
文件中添加如下几行:
<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
然后确认LoadModule php5_module modules/libphp5.so
这一行代码在PHP安装的过程中添加到了httpd.conf
文件中.
确认安装成功
重启Apache2:
# /usr/local/bin/apache2/apachectl restart
然后在/usr/local/apache2/htdocs
目录下添加一个文件:
# echo '<?php phpinfo(); ?>' >> /usr/local/apache2/htdocs/test.php
如果打开浏览器, 查看http://local-host/test.php
, 出现了phpinfo的相关内容, 那么就是配置好了.
安装过程中可能会遇到的错误:
Error 1 : configure: error: xml2-config not found:
如果再安装过程中遇到了一下错误:
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql
Configuring extensions
checking whether to enable LIBXML support... yes
checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your
libxml2 installation.
那么就需要你安装libxml2-devel
和zlib-devel
库:
# rpm -ivh /home/downloads/linux-iso/libxml2-devel-2.6.26-
2.1.2.0.1.i386.rpm /home/downloads/linux-iso/zlib-devel-
1.2.3-3.i386.rpm
Preparing...##################################### [100%]
1:zlib-devel##################################### [ 50%]
2:libxml2-devel################################## [100%]
下载这些库并且安装上就好了.
Error 2 : configure: error: Cannot find MySQL header files.
如果你遇到了以下的错误:
# ./configure --with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql
checking for MySQL UNIX socket location...
/var/lib/mysql/mysql.sock
configure: error: Cannot find MySQL header files under
yes. Note that the MySQL client library is not bundled
anymore!
则说明你没有安装MySQL, 安上就好了:
# rpm -ivh /home/downloads/MySQL-devel-community-5.1.25-
0.rhel5.i386.rpm
Preparing...###################################### [100%]
1:MySQL-devel-community########################### [100%]