背景:
我有一个自定义的CMS网站,是MYSQL驱动的。一个php脚本,它连接到数据库来加载网页的内容。
加载的每个页面都使用相同的脚本连接到数据库。
这包括php,js,css文件。
连接到数据库的脚本如下所示:
$my_link=mysql_connect("localhost",$dbusername,$dbpassword);
@mysql_select_db($database) or databaserror();其中一个页面的内部内容如下
<link href="/administrator/files/master.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="/administrator/files/cbdb-btn.css" />
<link rel="stylesheet" type="text/css" href="/administrator/files/BreadCrumb.css" />
<link rel="stylesheet" type="text/css" href="/administrator/files/prettyPhoto.css" />
<link rel="stylesheet" type="text/css" href="/administrator/files/tabs.css" />
<script src="/administrator/files/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="/administrator/files/context_menu.js"></script>
<script type="text/javascript" src="/administrator/files/jquery.spinner.js"></script>
<script type="text/javascript" src="/administrator/files/jquery.jBreadCrumb.js"></script>
<script type="text/javascript" src="/administrator/files/jquery_upload.js"></script>
<script type="text/javascript" src="/administrator/files/prettyPhoto.js"></script>
<script type="text/javascript" src="/admin/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="/admin/ckeditor/adapters/jquery.js"></script>所有以/administrator/ files /开头的文件,包括包含上述信息的文件,都是mysql驱动的。
上面文件有一个establish数据库
$my_link=mysql_connect("localhost",$dbusername,$dbpassword);然后,当它加载样式表时
<link href="/administrator/files/master.css" rel="stylesheet" type="text/css" />它使用以下命令再次连接到数据库
$my_link=mysql_connect("localhost",$dbusername,$dbpassword);对于所有.css和.js文件,它都会重复执行。
并不是在每次页面刷新时都会发生这种情况,但是我会收到错误消息1/5页面加载
(12)Cannot allocate memory: couldn't create child process: /opt/suphp/sbin/suphp我是否错误地连接到MySQL?
如果我不包含mysql驱动的样式表或js文件就没有问题,或者如果我自己加载样式表页,就没有问题。
存储器被设置为500mb,
单独加载mysql驱动页面时,内存将保持接近0mb加载超过1个mysql驱动页面时,内存将达到最大值
如果您需要更多信息,请让我知道。
谢谢
发布于 2012-09-18 12:59:14
正如我已经在评论中提到的,您需要为每个query连接mysql database,因为这可能会降低服务器使用更多内存的速度,因此只需连接mysql db一次,然后发送所需数量的查询,或者您可以使用以下代码尝试使用increasing memory limit
ini_set('memory_limit','200M');20M表示它的20 Megabytes。在你的php脚本中你想要的地方插入上面的代码...
https://stackoverflow.com/questions/7846744
复制相似问题