Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15318701
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2010-03-27 20:54:10

浅析ubuntu上安装php步骤

参考:

luther@gliethttp:~$ sudo apt-get install libapache2-mod-php5 php5 php5-dev php5-mysql php5-gd
luther@gliethttp:~$ sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.raw
luther@gliethttp:~$ sudo vim /etc/php5/apache2/php.ini
safe_mode = On
open_basedir = /var/www/
allow_url_fopen = Off
register_globals = Off
disable_functions = phpinfo,get_cfg_var
; 设置下面的php扩展
; 让Mysql这个so扩展模块,在php5被加载时,也同时被动态加载到php5内核,类似linux内核的insmod hello.ko,这样就不用重新编译php5内核,也不用dl("hello.so"),就可以直接使用hello.so中的扩展函数了,很强大的一个功能,但是该功能不太适合调试,适合在release中使用,因为每次修改hello.so中代码的话,都需要让service apache restart重启才能让php5内核再次加载新的hello.so扩展,为此我们可以enable_dl = On;同时safe_mode = Off;然后在代码中显视加载so,比如:dl("hello.so");
extension=msql.so
extension=gd.so
;禁止使用dl()函数强行加载so扩展模块
enable_dl = Off

==============================
比如我们自己写了一个php扩展hello.so,添加了一 个扩展函数hello_add(int a, int b);进行a+b操作

luther@gliethttp:~$ sudo vim /etc/php5/apache2/php.ini
enable_dl = Off
extension=hello.so
luther@gliethttp:~$ sudo service apache2 restart 不能reload而必须restart apache,这样so就像insmod hello.ko一样被融到了php5内核,然后代码就可以忽略掉dl("hello.so");,代码如下:

<?php

    # dl("hello.so");
    echo hello_add(3, 4);
?>

,但是该功能不太适合调试,因为每次修改hello.so中代码的话,都需要让service apache restart重启才能让php5内核再次加载新的hello.so扩展.

php扩展实现了
Browser网页浏览端和Server服务端apache之间没有了远端和本地之分,Browser可以直接执行
Server服务端的任何php扩展出来的so实现的函数,包括so扩展中实现的删除Server端的本地文件和打开/dev/下面的设备,
当然对php扩展so的调用都是由apache完成的,所以操作用户都是www-data,
因此不论删除apache端的文件还是打开
apache端的/dev/设备都要使用户www-data具有相应操作权限[luther.gliethttp]

==============================


luther@gliethttp:~$ ll /usr/lib/php5/20060613+lfs
total 372K
-rw-r--r-- 1 root root  84K 2010-01-07 06:49 pdo.so
-rw-r--r-- 1 root root  26K 2010-01-07 06:49 pdo_mysql.so
-rw-r--r-- 1 root root  44K 2010-01-07 06:49 mysql.so
-rw-r--r-- 1 root root 100K 2010-01-07 06:49 mysqli.so
-rw-r--r-- 1 root root 103K 2010-01-07 06:49 gd.so
-rwxr-xr-x 1 root root  25K 2010-03-28 12:43 hello.so

luther@gliethttp:~$ sudo vim /etc/apache2/mods-enabled/php5.conf

  AddType application/x-httpd-php .php .phtml .php3
  AddType application/x-httpd-php-source .phps

luther@gliethttp:~$ sudo service apache2 restart

luther@gliethttp:~$ sudo vim /var/www/test.php
echo "字符串转变为数字";
echo "
";
$str="123";
echo "转换前的类型为:".gettype($str);
echo "
";
$str=intval($str);
echo "转换后的类型为:".gettype($str);
echo "
";
echo "
";
echo "数字转变为字符串";
echo "
";
$str1=123;
echo "转换前的类型为:".gettype($str1);
echo "
";
$str1=strval($str1);
echo "转换后的类型为:".gettype($str1);
?>
luther@gliethttp:~$ firefox

阅读(1472) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~