```
说明:PHP环境搭建时,采用源码安装的方法失败,最后使用的yum云安装成功(详见另外一篇日志),后面看到一篇更详细的源码安装方法,先行转载记录下来,供后期尝试学习。
说明:(1)手动搭建两次PHP运行环境之后,针对原来的博客做了部分修改;(2)由于前后端分离,因此我自己搭建的环境并没有安装数据库,关于数据库的安装操作不能保证完全正确;
```
安装配置apache
一般linux服务器上都已经有apache环境了,如果有可以跳过这一步。如果要查看linux 是否已经安装apache,可以用下面的命令:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
两个命令都行。几乎所有的linux版本都自带apache, 名字一般是httpd,不叫apache。
/etc/init.d/httpd是它的启动脚本。
有时候我们不想用自带的apache,这样可能需要先删除自带的,再安装自己的。
删除的步骤如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
下载地址
我下载的是
httpd-2.2.31.tar.gz
切换到root用户,后面的所有操作都用root进行。
新建目录
- 1
安装的apache2要安装到这个文件夹里面。这个目录其实不新建也可以,后面编译安装时没有的话也会动态创建
另外,也可以把目录指定在/home/目录下的某个用户下。
解压,配置,编译安装
- 1
- 2
- 3
- 4
- 5
- 6
完成后如下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
启动遇到错误:
- 1
- 2
解决这个问题需要编辑httpd.conf文件(/apache2/conf/目录下),找到:
#ServerName www.example.com:80
修改为:
ServerName 127.0.0.1:80或者ServerName localhost:80
然后重新启动:
- 1
打开浏览器,地址输入localhost,可以看到启动成功了。
如果启动时报如下的错误:
- 1
- 2
- 3
- 4
- 5
这个错误的原因是因为有其他服务正在使用80端口。先用
[root@localhost bin]# netstat -lnp|grep 80
查看那个进程使用了80端口。或者:
ps -ef|grep httpd
查看有没有httpd进程正在运行。
然后对应杀掉(比如:sudo killall httpd),再重启。
----------如果浏览器无法访问80端口,可能是防火墙没有开启80端口------------------------
可以通过命令去添加端口的方法:
代码如下 | 复制代码 |
[root@centos httpd]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@centos httpd]# /etc/rc.d/init.d/iptables save [root@centos httpd]# /etc/init.d/iptables restart |
这样就搞定了,查看效果
代码如下 | 复制代码 |
[root@centos httpd]# /etc/init.d/iptables status |
-----------------------------------------------------------------------------------------------
添加php支持
编辑httpd.conf文件,找到
- 1
这个默认应该就是打开的,主要是找到确认下。
添加下面一行(注意.号前面有空格):
- 1
安装php
下载地址:
我下载的是
php-5.6.26.tar.gz
新建目录
- 1
解压,编译,安装
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
–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阶段,遇到一个错误:
- 1
- 2
运行yum install libxml2,然后再运行yum install libxml2-devel安装完毕后,重新运行上面的./configure命令就可以了。
将源码目录下的
php.ini-development文件复制到/usr/local/php/etc目录下(注意要和前面指定的–with-config-file-path的值一致),更名为php.ini
$ cd php-5.6.20
$ cp php.ini-development /usr/local/php/php.ini
$ cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
$ cp sapi/fpm/php-fpm /usr/local/bin
需要注意的是:在这里一定要配置php-fpm,因为在安装PHP插件的时候,修改完php.ini之后一定要重启php-fpm新的配置信息才会生效。我曾今在这里卡了很久。
找到httpd.conf文件,我的在/usr/local/apache2/conf/目录下,找到IfModule dir_module,添加index.php
- 1
- 2
- 3
重启apache,然后在/usr/local/apache2/htdocs下新建一个test.php,代码如下:
- 1
- 2
- 3
打开浏览器,访问localhost/test.php,成功:
注意红色标记的部分就是php.ini的位置,后面还会用到。
修改默认站点目录
缺省的站点目录是:
- 1
有时候需要改这个目录,比如我的服务器将这个地址改为/home/pony/inn_web目录下。步骤如下:
编辑httpd.conf文件,
找到 DocumentRoot,目录改为:
/home/pony/inn_web
找到
访问oracle数据库支持
php搭配oracle可能比较少见,但是项目中确实用到了,还是要搞一下。
安装instant client
instantclient是oracle的连接数据库的简单客户端,只需下载Basic和Devel两个rpm包。
下载地址:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
我下载的是
- 1
- 2
安装
- 1
- 2
- 3
- 4
- 5
- 6
- 7
建立软链接
- 1
- 2
- 3
- 4
安装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扩展模块的
- 1
- 2
- 3
- 4
- 5
- 6
配置,编译安装
- 1
- 2
- 3
- 4
编辑php.ini文件,增加下面两项:
- 1
- 2
注意确认/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/目录下确实有pdo_oci.so文件
重启apache,然后浏览器打开前面的test.php,往下拉会发现oci已经加成功了:
代码示例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
添加php curl支持
curl是一个强大的开源库,支持http等协议。如果项目中用到curl的话,需要加上curl扩展。不需要单独下载,一般源码包里都有只要编译配置下就行。
windows下似乎是自带的,因为我是移植一个项目到linux下,发现有些页面会报错:
- 1
才知道linux下需要单独安装的。
进入php源码下的ext/curl目录,配置安装:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
注意–with-php-config这个要根据自己的php目录实际修改。
安装完成后,会提示我们动态库安装到了一个目录下:
我的是在
- 1
在这个目录下可以找到curl.so文件。
编辑php.ini文件
找到前面加pdo_oci.so的位置,增加一行:
extension = curl.so
重启apache即可生效。
添加php openssl 支持
项目中也用到了openssl,所以也要添加openssl扩展,步骤类似上面。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
编辑php.ini文件
找到前面加pdo_oci.so的位置,增加一行:
extension = openssl.so
重启apache即可生效。
```
附上转载的原文链接:
http://blog.csdn.net/pony_maggie/article/details/52758159
```
```
2017年12月4号
推荐三篇博文,基本可以搞定Apache+PHP+PHP插件的安装配置:
(1)源码安装的步骤参考:
https://www.cnblogs.com/zhuque/archive/2012/11/03/2763351.html
(2)但是一定要注意添加php-fpm的配置,具体请参考这篇博文:
http://blog.csdn.net/why_2012_gogo/article/details/51120645
(3)至于PHP插件的安装,譬如常见的openssl、curl、mcrypt等,都可以参照这篇博文:
(4)重点截图:
http://blog.csdn.net/fanyun7654/article/details/20635203
```