浅析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
阅读(1550) | 评论(0) | 转发(0) |