介绍ubuntu中安装php5.3的方法。
首先,安装常用的编译器及库文件:
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install autoconf
sudo apt-get install libxml2
sudo apt-get install libxml2-dev
sudo apt-get install libevent-1.4-2
sudo apt-get install libevent-dev
sudo apt-get install bzip2
sudo apt-get install libbz2-dev
sudo apt-get install libcurl3-gnutls
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libpng12-0
sudo apt-get install libpng12-dev
sudo apt-get install libjpeg62
sudo apt-get install libjpeg62-dev
sudo apt-get install libfreetype6
sudo apt-get install libfreetype6-dev
sudo apt-get install libmcrypt4
sudo apt-get install libmcrypt-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libtidy-dev
注意:
如果是RH,需要:
yum -y install curl-devel
yum install libjpeg-devel
yum install libpng-devel
yum install freetype-devel
yum install -y libmcrypt-devel.x86_64
yum install -y libxml2-devel.x86_64
yum install -y bzip2-devel.x86_64
yum install libtool-ltdl-devel (在 make的时候会出现:/usr/bin/ld: cannot find -lltdl)
yum install autoconf
yum install -y libtidy-devel.x86_64
编译、安装
make
make install
编译安装完成之后,还需要对php-fpm 进行配置,因为php5.3不再需要打php-fpm补丁,所以以前控制php-fpm(启动、重启)的方式需要改变。操作步骤如下:
从源码包复制:
sudo chmod a+x /etx/init.d/php-fpm
然后,即可通过 /etc/init.d/php-fpm (start|stop|force-quit|restart|reload) 进行控制
一般扩展安装
安装memcached:
tar -xvf memcache-2.2.5.tgz
cd memcache-2.2.5
/usr/local/php-5.3.3/bin/phpize
./configure --with-php-config=/usr/local/php-5.3.3/bin/php-config
make
make install
安装solr:
tar -xvf solr-0.9.11.tgz
cd solr-0.9.11
/usr/local/php-5.3.3/bin/phpize
./configure --with-php-config=/usr/local/php-5.3.3/bin/php-config
make
make install
安装xcache:
tar -xjvf xcache-1.3.0.tar.bz2
cd xcache-1.3.0
/usr/local/php-5.3.3/bin/phpize
./configure --with-php-config=/usr/local/php-5.3.3/bin/php-config
make
make install
配置php_ini文件:
error_reporting = E_ALL
display_errors = On
short_open_tag = On
extension=memcache.so
extension=xcache.so
extension=solr.so bbs需要
;log_errors = on
error_log = syslog #说明:linux系统可以使用这个,把errorlog 输出到syslog中
date.timezone = Asia/Shanghai
到这里,php5.3就安装成功了,希望以上的教程,对大家有所帮助。
初学php的朋友,最容易在这一块有困惹,就是不知道如何接收页面或url中的参数值。
在PHP5中,默认接收参数传递的值时,会考虑使用:
$_POST['value'];
如果在PHP.ini配置文件中,将register_globals = Off,修改为:register_globals = on,那么就可以直接使用,$value的值。
不过,为了安全起见,我们不推荐这样做。
下面,介绍下PHP获取Post的原始数据的方法。
在php编程中,一般都用$_POST或$_REQUEST两个预定义变量来接收POST提交的数据。
不过,当提交的数据无变量名,而是直接的字符串时,就需要考虑换种方式来接受这种数据了。
下面,为大家介绍两种变通的方法。
方法一,使用全局变量$GLOBALS['HTTP_RAW_POST_DATA']
在$GLOBALS['HTTP_RAW_POST_DATA']存放的是POST过来的原始数据。
而$_POST或$_REQUEST存放的是PHP以key=>value的形式格式化以后的数据。
但$GLOBALS['HTTP_RAW_POST_DATA']中是否保存POST过来的数据取决于centent-Type的设置,即POST数据时必须显式示指明Content-Type: application/x-www-form-urlencoded,POST的数据才会存放到 $GLOBALS['HTTP_RAW_POST_DATA']中。
方法二,使用file_get_contents("php://input")
对于未指定 Content-Type 的POST数据,则可以使用file_get_contents("php://input");来获取原始数据。
事实上,用PHP接收POST的任何数据均使用本方法。而不用考虑Content-Type,包括二进制文件流也是可行的。
推荐使用方法来,来获取无变量名的post原始数据。
最后,我们探讨下有关php中页面调用的一些问题。
在php中,调用其它页面,一般会考虑使用require()与require_once()。
一般就放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require所指定引入的文件,如果出现错误是致命的。
再来看include()与include_once()。
可以放在 PHP 程序的任何一个位置,PHP 程序在执行到时,才会先读入include 所指定引入的文件,如果出现错误将会提示。
有关php中include与require的深入探讨,可以参考文章:php中的include()与require()的对比分析 。
以下是简单的示例:
require('my_conn.php');
include('my_conn.php');
?>
以php的多进程实现类似多线程,并行执行脚本的代码:
#!/usr/bin/env php
<?php
/**
* php 多进程
* by www.
*/
$cmds=array(
array('/app/test.php','charge/pstat.php','mobile',1),
array('/app/test.php','charge/pstat.php','mobile',2),
array('/app/test.php','charge/pstat.php','click',1),
array('/app/test.php','charge/pstat.php','click',2),
array('/app/test.php','charge/pstat.php',1),
array('/app/test.php','charge/pstat.php',2)
);
foreach($cmds as $cmd){
$pid=pcntl_fork();
if($pid==-1){ //进程创建失败
die('fork child process failure!');
}
else if($pid){ //父进程处理逻辑
pcntl_wait($status,WNOHANG);
}
else{ //子进程处理逻辑
pcntl_exec('/usr/local/bin/php',$cmd);
}
}
?>