当前位置: > Linux服务器 > 环境配置 >

php5开发环境搭建-redhat5.5+apache2+php5+oci8+oracle11.2instance_client

时间:2015-01-21 23:47来源:www.it.net.cn 作者:IT网
本文档用于安装php 开发环境
本文档假设redhat5.5已经安装完毕,异地oracle10G 的数据库也安装完毕。
 
一.apache服务器的安装
1.以root用户创建目录
/webser/apache
2.上传安装文件到tmp
3.解压安装
gzip -d httpd-2.2.17.tar.gz
tar xvf  httpd-2.2.17.tar
cd httpd-2.2.17
./configure --prefix=/webser/apache/
make 
make install
4.配置
cd /webser/apache/conf
vi httpd.conf
ServerName 192.168.1.60:80
5.验证
启动apache服务后登陆
http://192.168.1.60 
显示it works!
 
二.PHP5的安装
装之前验证
rpm -q libxml2
libxml2-2.6.26-2.1.2.8
没有需要补全
 
1.创建php.ini文件存放目录
/webser/php5
2.上传安装文件到tmp
3.解压安装
gzip -d php-5.3.6.tar.gz
tar xvf  php-5.3.6.tar
cd php-5.3.6
配置编译参数
./configure --with-apxs2=/webser/apache/bin/apxs   --with-config-file-path=/webser/php5/  --prefix=/webser/php5 --with-gd  --with-jpeg-dir   --with-zlib    --enable-debug=no --enable-ftp=yes   --with-iconv --enable-mbstring=shared --enable-gd-native-ttf  --with-freetype-dir  --with-curl  
开始安装
make 
make install
 
4.安装完后的配置
4.1 拷贝php.ini-production到前面指定的php.ini的所在目录,改名为php.ini。
cp php.ini-production /webser/php5/php.ini
4.2 修改httpd.conf 
vi /webser/apache/conf/httpd.conf 
加载php模块,去掉注释“#”,如没有此行,请加上。 
LoadModule php5_module        modules/libphp5.so 
加上此两行 
AddType application/x-httpd-php .php .phtml 
AddType application/x-httpd-php-source .phps 
 
5.测试页面 使用函数
<?php
phpinfo();
?>
 
 
三.安装 oracle-instantclient11.2
1.上传安装文件到tmp ,rpm 安装
rpm -ivh  oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm
rpm -ivh  oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm
rpm -ivh  oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm
 
rpm 包安装完后会生成一个目录,存放有关的lib,須執行ldconfig命令把 library文件加到系統內
/usr/lib/oracle/11.2/client/lib
 
 
2.安装完的配置
 
cd /etc/ld.so.conf.d
创建文件
vi oracle-lib.conf
追加以下内容
/usr/lib/oracle/11.2/client/lib
之后执行命令:
ldconfig 
檢查httpd是否已有pthread模塊
ldd /webser/apache/bin/httpd | grep libpthread
 
四.安装oci8
1.上传安装文件到tmp 
2.解压,配置安装
tar zxvf oci8-1.4.5.tgz
cd oci8-1.4.5
/webser/php5/bin/phpize
./configure --with-php-config=/webser/php5/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib   ##配置的时候看看路径
make
make test   报了很多错 可能和数据库没有联系上有关
make install
安装完后会出现
Installing shared extensions:     /webser/php5/lib/php/extensions/no-debug-non-zts-20090626/
 
修改PHP配置文件,如果没有则增加
 vi /webser/php5/php.ini
extension_dir="/webser/php5/lib/php/extensions/no-debug-non-zts-20090626/"
extension=oci8.so
 
使用php -m命令可以查看php是否已经装载了oci8模块 
/webser/php5/bin/php -m | grep oci
oci8
 
五.配置连接oracle数据库
 
1.编辑tnsnams.ora 文件,放置于 TNS_ADMIN=/webser/oracle
pnrdb =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.220)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (sid = pnrdb )
    )
  )
 
 2.编写apache启动脚本
 vi start.sh
 #!/bin/sh
APACHEHOME=/webser/apache/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib:${LD_LIBRARY_PATH}
export TNS_ADMIN=/webser/oracle
export LD_LIBRARY_PATH TNS_ADMIN
echo Starting Apache
$APACHEHOME/apachectl start
 
3.编写测试脚本放置htdocs下
vi conn.php
<?php 
$conn=oci_connect("system","admin","pnrdb","utf8")  ;
?>
 
vi index.php
<?php
include("conn.php");  
$query="select count(*) from dba_objects ";  
$result=oci_parse($conn,$query);  
$r = oci_execute($result, OCI_DEFAULT);
$row=oci_fetch_array($result,OCI_RETURN_NULLS)
?>
<?php echo $row[0];?> 
<?php 
oci_close($conn);
?>
 
六.安装vsftp
1.安装前的准备 创建必要的用户和目录
adduser nobody 
mkdir /usr/share/empty/
mkdir /var/ftp/
useradd -d /var/ftp ftp 
chown root.root /var/ftp 
chmod og-w /var/ftp
2.开始解压安装
tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4
make
make install
3.手工复制vsftpd.conf到etc下
cp vsftpd.conf /etc
4.启动和配置
cp RedHat/vsftpd.pam /etc/pam.d/ftp 
 修改/etc/vsftpd.conf
 anonymous_enable=YES
 local_enable=YES
 write_enable=YES
 local_umask=022
 注释掉 listen=yes 这行  不会出现500错误 解释如下:
 
Q&A
***********************************************************************************************
我的办法是 :注释掉 listen=yes 这行
 
vsftpd 的错误提示:500 OOPS: could not bind listening IPv4 socket 遇到这个问题我在通过编译源代码后安装vsftpd的时候遇到的,在这以前我已经通过rpm方式安装过了vsftp
因此其配置文件/etc/xinet.d/vsftpd还在并且是自启动的,也就是说是XINET模式;但是/etc/rc.local中又写入
了启动脚本,因此便发生了冲突,只需要关闭它们中的一个问题就解决了。
有以下两种方式:
1.使用XINET模式
去掉/etc/rc.local文件中的vsftpd的启动脚本/usr/local/sbin/vsftp &
运行service vsftpd restart命令启动vsftpd
2.使用STANDALONE独立模式
在服务器的负担比较重的情况下最好用这个模式
chkconfig vsftpd --level 3 off
或者直接修改/etc/xinetd.d/vsftpd文件,把disable=no改成disable=yes就行了!
第二.
我曾经也碰到过这样的问题,
VSFTPD我是自己编译的,在论坛上许多文章说是编译使用的是XINETD模式,
所以只要在/etc/xinetd.d/vsftpd文件中,把disable=no改成YES就行了!
还有就是在/etc/vsftpd.conf文件添加listen=yes这样就改成了STANDALONE独立模式!
重启!OK
***********************************************************************************************
(责任编辑:IT)
------分隔线----------------------------