首先,说明一下,在Linux系统中apache, php , mysql都是对立的模块。Apache和mysql更是一种服务;而php则是一种脚本语言解释器。他们不仅功能相对独立,而且软件在linux上面的存在形式也是对的。 一般情况下,三个模块之间是通过配置文件联系在一起;
大体是这样:
Apache和php的联系是通过 httpd.conf 配置文件联系在一起的;他说明apache在跑网页程序时需要使用php解释器;
Php和mysql则是通过php.ini配置文件联系在一起。该配置文件如果启用了mysql模块,则说名在php代码中可以使用mysql驱动连接mysql数据库;
下面来说下详细配置信息:
1,apache + php
具体环境和软件是:
OS: archlinux
Apache : apahce2(可通过pacman -S apache来安装)
Php : php5(可以通过pacman -S php-apache来安装)
首先,我们需要在apache服务启动时加载php解释器程序模块。即在apache配置文件
/etc/httpd/conf/httpd.conf
做如下更改:
增加 LoadModule php5_mudule models/libphp5.so
说明一下:libphp5是php解释器的路径。这个路径是apache配置的ServerRoot 路径的相对路径。Libphp5便是php解释器了;
其次, 我们需要对这个解释器在运行时做一些配置。这些配置项在安装php-apache的时候已经写好了。我们只需要找到php5_module.conf文件:
/etc/httpd/conf/extra/php5_module.conf
然后做相应更改,如果使用默认解释器的设置,就不别动这个文件的内容了;
这个文件是存在了但是未做配置之前apache是找不到这个文件的,我们还需要将这给文件的路径告诉apache服务器,同样地,我们需要修改httpd.conf这个文件:
在Include列表下面加上如下配置:
Include conf/extra/php5_module.conf
最后,保存一下配置文件。Ok,重启apache服务器,运行下面的command :
Sudo /etc/rc.d/httpd restart
一般情况下,apache服务器能够使用php5这个语言解释器了;
如果测试服务器时你的.php文件被当做html文件输出,或者是当做其他二进制文件被下载了。那说明名服务器的Mime-type设置有问题。可以去lib5_module.conf中看看是不是相应的mime-type被注释了;如果没有.php, .phps的mime-type信息。则可以在httpd.conf文件中加入如下配置:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
保存后重启服务应该就能解决该问题。如果程序不能被正确解释。可以看看日志文件/var/log/httpd/error.log,然后再去找解决办法;
下面来说一下php解释器 支持mysql启动访问mysql服务器:
首先,php解释器要使用mysql服务,那是php解释器的事。所以所有的配置信息都是在php解释器这端。实现这个过程,我们只需要告诉解释器启用mysql驱动模块就行了;找到php安装配置文件
/etc/php/php.ini
一般情况下,该配置文件中已经有了mysql驱动模块的信息,只是以被注释状态存在:
;extension=mysql.so
只需要去掉注释标识符; 皆可;
如果么有这个信息这需要安装php-mysql软件包。完成安装后需要将
extension=mysql.so
加入php.ini文件。
保存后重启apache服务。应该解决问题了。
Note:
由于linux分支很多,每个分支安装服务和模块的时候配置文件和相应的模块代码存放的路径都不尽相同;所以以上配置路径只适合特定的系统配置;不过了解了这个原来之后; 其实找到配置文件就不是问题了;不是吗?
晚安吧!