一、问题重现
1、网页客户端使用jQuery技术来获取linux服务端的数据,网页js代码如下:
[javascript]
$.post("test.php");
2、linux服务端使用php技术访问mysql数据库。其test.php中的代码如下:
[php]
<?php
$link = mysql_connect('localhost', 'root', '888888');
if (!$link) {
echo 'Connected falie';
}else{
echo 'Connected successfully';
}
mysql_close($link);
?>
3、结果网页客户端返回是 “ NetworkError: 500 Internal Server Error ” 是这样的结果。
二、问题解决方案
1、遇到这样的问题,首先将test.php的代码修改成如下:
[php]
<?php
phpinfo();
?>
这个函数的作用是将php相关的所有信息全部返回给网页客户端。
通过测试我发现,这个linux系统上的php竟然没有mysql项,所有原因找到了。 那接下来就是将php与mysql交互这块给补上去。
网上搜索一翻,可以直接安装php与mysql交互这块。模块名叫“php-mysql”. 使用linux命令 yum install php-mysql。
上面的解决方法是服务端linux没有阉割“yum”模块下可以使用,要是服务端被阉割了。哪有怎样去补上php-mysql模块呢?
2、进行对安装php-mysql后与没有安装php-mysql的系统对比php中的配置,发现在下面几个目录上增加了几个文件。
(1)在/usr/lib/php/modules/ 此目录下 新增了 mysql.so 与 mysqli.so 这两个文件。 将这两个文件拷贝过来。
(2)在/etc/php.d 此目录下新增了 mysql.ini 、mysqli.ini 、 pdo_mysql.ini 这三个文件。将这三个文件也拷贝过来。
结果,可以访问数据了。测试通过了。
不过还是有其他问题。使用post方法,服务端无法获取网页客户端发过去的数据,但是使用get方法,就可以正常获取客户端发过来的数据。