linux 32部署php,linux下部署php应用

安装配置apache

一般linux服务器上都已经有apache环境了,如果有可以跳过这一步。如果要查看linux 是否已经安装apache,可以用下面的命令:

[root@localhost htdocs]# httpd -v

Server version: Apache/2.2.15 (Unix)

Server built: Aug 13 2013 17:29:28

[root@localhost htdocs]# apachectl -v

Server version: Apache/2.2.15 (Unix)

Server built: Aug 13 2013 17:29:28

两个命令都行。几乎所有的linux版本都自带apache, 名字一般是httpd,不叫apache。

/etc/init.d/httpd是它的启动脚本。

有时候我们不想用自带的apache,这样可能需要先删除自带的,再安装自己的。

删除的步骤如下:

1 查看与httpd相关软件包。

# rpm -qa|grep httpd,

httpd-2.2.3-11.el5_2.centos.4

2 然后删除httpd:

# rpm -e httpd

可能出现问题:

error: Failed dependencies:

httpd >= 2.2.0 is needed by (installed) gnome-user-share-0.10-6.el5.i386

3 还有一个依赖的软件包没有删除

# rpm -e gnome-user-share

4 再删除httpd

# rpm -e httpd

下载地址

我下载的是

httpd-2.2.31.tar.gz

切换到root用户,后面的所有操作都用root进行。

新建目录

mkdir /usr/local/apache2

安装的apache2要安装到这个文件夹里面。这个目录其实不新建也可以,后面编译安装时没有的话也会动态创建

另外,也可以把目录指定在/home/目录下的某个用户下。

解压,配置,编译安装

[root@localhost /]# tar -zxvf httpd-2.2.31.tar.gz

[root@localhost httpd-2.2.31]# ./configure --prefix=/usr/local/apache2 --enable-module=shared

[root@localhost httpd-2.2.31]# make

[root@localhost httpd-2.2.31]# make install

完成后如下

[root@localhost apache2]# pwd

/usr/local/apache2

[root@localhost apache2]# ll

总用量 60

drwxr-xr-x. 2 root root 4096 9月 20 15:00 bin

drwxr-xr-x. 2 root root 4096 9月 20 15:00 build

drwxr-xr-x. 2 root root 4096 9月 20 15:00 cgi-bin

drwxr-xr-x. 4 root root 4096 9月 20 15:00 conf

drwxr-xr-x. 3 root root 4096 9月 20 15:00 error

drwxr-xr-x. 2 root root 4096 7月 16 2015 htdocs

drwxr-xr-x. 3 root root 4096 9月 20 15:00 icons

drwxr-xr-x. 2 root root 4096 9月 20 15:00 include

drwxr-xr-x. 4 root root 4096 9月 20 15:00 lib

drwxr-xr-x. 2 root root 4096 9月 20 15:00 logs

drwxr-xr-x. 4 root root 4096 9月 20 15:00 man

drwxr-xr-x. 14 root root 12288 7月 16 2015 manual

drwxr-xr-x. 2 root root 4096 9月 20 15:00 modules

启动遇到错误:

[root@localhost bin]# ./apachectl start

httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName

解决这个问题需要编辑httpd.conf文件(/apache2/conf/目录下),找到:

#ServerName www.example.com:80

修改为:

ServerName 127.0.0.1:80或者ServerName localhost:80

然后重新启动:

[root@localhost bin]# ./apachectl start

打开浏览器,地址输入localhost,可以看到启动成功了。

0818b9ca8b590ca3270a3433284dd417.png

如果启动时报如下的错误:

[root@localhost bin]# ./apachectl start (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs

这个错误的原因是因为有其他服务正在使用80端口。先用

[root@localhost bin]# netstat -lnp|grep 80

查看那个进程使用了80端口。或者:

ps -ef|grep httpd

查看有没有httpd进程正在运行。

然后对应杀掉(比如:sudo killall httpd),再重启。

添加php支持

编辑httpd.conf文件,找到

LoadModule php5_module modules/libphp5.so

这个默认应该就是打开的,主要是找到确认下。

添加下面一行(注意.号前面有空格):

AddType application/x-httpd-php .php

安装php

下载地址:

我下载的是

php-5.6.26.tar.gz

新建目录

mkdir /usr/local/php

解压,编译,安装

[root@localhost /]# tar -zxvf php-5.6.26.tar.gz

[root@localhost php-5.6.26]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc

[root@localhost php-5.6.26]# make clean

[root@localhost php-5.6.26]# make

[root@localhost php-5.6.26]# make test

[root@localhost php-5.6.26]# make install

–with-config-file-path会指明配置文件的路径(php.ini),很重要,不要忘了。

摘自其他网站:

注意这里有一个-with-apxs2=/usr/local/apache2/bin/apxs选项,其中apxs是在安装Apache时产生的,apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。我的理解是通过这个工具把PHP模块动态加载到Apache中

在configure阶段,遇到一个错误:

checking for xml2-config path...

configure: error: xml2-config not found. Please check your libxml2 installation

运行yum install libxml2,然后再运行yum install libxml2-devel安装完毕后,重新运行上面的./configure命令就可以了。

将源码目录下的

php.ini-development文件复制到/usr/local/php/etc目录下(注意要和前面指定的–with-config-file-path的值一致),更名为php.ini

设置当浏览器访问目录时,缺省访问的页面

找到httpd.conf文件,我的在/usr/local/apache2/conf/目录下,找到IfModule dir_module,添加index.php

DirectoryIndex index.html index.php

重启apache,然后在/usr/local/apache2/htdocs下新建一个test.php,代码如下:

phpinfo();

?>

打开浏览器,访问localhost/test.php,成功:

0818b9ca8b590ca3270a3433284dd417.png

注意红色标记的部分就是php.ini的位置,后面还会用到。

修改默认站点目录

缺省的站点目录是:

/usr/local/apache2/htdocs

有时候需要改这个目录,比如我的服务器将这个地址改为/home/pony/inn_web目录下。步骤如下:

编辑httpd.conf文件,

找到 DocumentRoot,目录改为:

/home/pony/inn_web

找到

访问oracle数据库支持

php搭配oracle可能比较少见,但是项目中确实用到了,还是要搞一下。

安装instant client

instantclient是oracle的连接数据库的简单客户端,只需下载Basic和Devel两个rpm包。

下载地址:

我下载的是

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

安装

[root@localhost /]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

Preparing... ########################################### [100%]

1:oracle-instantclient11.########################################### [100%]

[root@localhost /]# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

Preparing... ########################################### [100%]

1:oracle-instantclient11.########################################### [100%]

[root@localhost /]#

建立软链接

[root@localhost 11.2]# ln -s /usr/lib/oracle/11.2/client64/ /usr/lib/oracle/11.2/client

[root@localhost oracle]# ln -s /usr/include/oracle/11.2/client64/ /usr/include/oracle/11.2/client

安装oci

Oracle 调用接口 (OCI) 是最全面、性能最高、基于原生“C”语言的 Oracle 数据库接口,它可以提供 Oracle 数据库的全部功能。OCI 为构建各种语言专用接口(如 Oracle JDBC-OCI、ODP.Net、Oracle 预编译器、Oracle ODBC 和 Oracle C++ Call Interface (OCCI)驱动程序)提供了基础。各种领先的开源接口(如 PHP OCI8 扩展、ruby-oci8、Perl DBD::oracle 和 Python cx_oracle)也都使用 OCI。作为对 Oracle 数据库的原生接口,OCI 还对 Oracle 数据库核心内部发出的查询、语句和调用进行了增强。

找到php源码,进入ext/pdo_oci目录下。

phpize是用来动态增加php扩展模块的

[root@localhost pdo_oci]# /usr/local/php/bin/phpize CFLAGS="-I/usr/lib/oracle/11.2/client" CXXFLAGS="-I/usr/lib/oracle/11.2/client"

Configuring for:

PHP Api Version: 20131106

Zend Module Api No: 20131226

Zend Extension Api No: 220131226

[root@localhost pdo_oci]#

配置,编译安装

[root@localhost pdo_oci]# ./configure --with-pdo-oci=instantclient,/usr,11.2 --with-php-config=/usr/local/php/bin/php-config

[root@localhost pdo_oci]# make clean

[root@localhost pdo_oci]# make

[root@localhost pdo_oci]# make install

编辑php.ini文件,增加下面两项:

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"

extension=pdo_oci.so

注意确认/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/目录下确实有pdo_oci.so文件

重启apache,然后浏览器打开前面的test.php,往下拉会发现oci已经加成功了:

0818b9ca8b590ca3270a3433284dd417.png

代码示例

$tns = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.86.132)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )";

define('PDO_DB_DNS', "oci:dbname=".$tns); //数据库dns

define('PDO_DB_USER', 'test'); //登录用户名

define('PDO_DB_PASSWORD', 'test'); //登录密码

class PDOManage{

private $_pdo = null;

private static $_instance = null;

/** * 构造方法,私有 */

private function __construct(){

try{

$this->_pdo = new PDO(PDO_DB_DNS, PDO_DB_USER, PDO_DB_PASSWORD);

$this->_pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//可以抛出异常

}catch (PDOException $e)

{

user_dump('SQL instance:'.$e->getMessage());

exit($e->getMessage());

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值