centos7离线环境安装php5.6+apache2.4+oracle11客户端部署网站
- 2018-12-05 05:55:00
- 1147533288 原创
- 5979
背景:
客户机器centos7,无法上网,需要搭建php网站连接oracle数据库,此为背景。
解决思路:
利用一台可以上网的机器,下载需要的rpm安装包,拷贝到目标机器再行安装。
去除失败的搭建经过,搭建步骤总结如下,此搭建过程坑蛮多的~~:
1.下载多个rpm安装包(上网机执行,仅下载不安装)
# yum install epel-release
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
使用yum list命令查看可安装的包(Packege)。
# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
yum -y install --enablerepo=remi --enablerepo=remi-php56 php php-devel php-mbstring php-mcrypt php-cli php-common php-gd php-ldap php-mysql php-pdo php-soap httpd s y s t e mtap-sdt-devel openssl --downloadonly --downloaddir /root/php56
2.目标机拷贝文件并安装
rpm-ivh*.rpm--force--nodeps
php安装完成,php -v检查版本(显示php安装的版本为5.6)。
# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
建立软链接
ln -s /usr/i n c l u d e/oracle/11.2/client64 /usr/i n c l u d e/oracle/11.2/client
ln -s /usr/lib/oracle/11.2/client64 /usr/lib/oracle/11.2/client
4.安装PHP扩展库PDO_OCI
wget https://pecl.php.net/get/PDO_OCI-1.0.tgz
tar -xvf PDO_OCI-1.0.tgz
cd PDO_OCI-1.0
编辑config.m4:
在第10行左右找到与下面类似的代码,添加:
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
PDO_OCI_VERSION=11.2
在第102行左右添加:
11.2)
PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
;;
编译:
phpize
./configure --with-pdo-oci=instantclient,/usr,11.2
make
make install
此处有坑:pdo_oci.c:34:1: error: unknown type name ‘function_entry’
修改function_entry为zend_function_entry,再次编译安装成功.
5.安装oci8(php5.6版本请不要使用过高版本,过高版本是对应php7的;此处遇坑make无法编译,下载rpm syste mtap-sdt-devel问题得到解决)
# wget https://pecl.php.net/get/oci8-2.0.8.tgz
# tar -xvf oci8-2.0.8.tgz
# cd oci8-2.0.8
# phpize
# ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
# make
# make install
./configure --with-php-config=php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib
ls /usr/lib64/php/modules
php开启扩展
echo "extension=oci8.so" > /etc/php.d/oci8.ini
6.设置php.ini
此处略,包含显示错误,设置错误日志目录,设置session会话目录,设置临时目录
7.配置apache的http.conf(/etc/httpd/conf/http.conf)
此处略,包含设置端口号,网站目录,设置.htaccess权限
8.验证php安装正确,可以连接oracle
php -m检查已安装模块,必须包含(oci8,PDO,pdo_oci等),phpinfo()可以页面输出oci模块内容。以下代码用于测试数据库连接是否正常。
<?php
echo getenv('LD_LIBRARY_PATH');
$conn = oci_connect('portal', '123456789', '10.2.17.21/orcl');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}else {
echo "连接oracle成功!";
}
phpinfo();
?>
9.php网站无法写入新文件(我按改动1无效,使用改动2的办法解决的,请直接尝试改动2)
改动1:
apache对应http.conf文件
User www
Group www
groupadd www
useradd --shell /sbin/nologin -g www www
#假设网站部署在/home/www下
cd /home/www/
chown -R www:www .
改动2:
vi /etc/sysconf/selinux 设置disabled 需要重启
不重启使用
# setenforce 0,可以把SELinux暂时设定成Permissive模式。记得用root用户。
再使用 # setenforce 1 这条命令会把SELinux设定成Enforcing模式

----------------------------------------------------------------
验证收工,结束![]()
| 联系人: | meepo |
|---|---|
| 电话: | ***** |
| Email: | 1147533288@qq.com |
| QQ: | 1147533288 |