Composer PHP Fatal error:Allowed memory size of
今天在运行composer update时遇到的,详细的错误消息如下:
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted
(tried to allocate 32 bytes) in phar:///usr/local/Cellar/composer/
1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/
Rule.php on line 62
Fatal error: Allowed memory size of 536870912 bytes exhausted
(tried to allocate 32 bytes) in phar:///usr/local/Cellar/composer/
1.0.0-alpha8/libexec/composer.phar/src/Composer/DependencyResolver/
Rule.php on line 62
一直以为是网络原因,最近连接国外的网络不是很稳定,后来根据报错的信息Allowed memory size of 536870912 bytes exhausted提示知道可能是内存分配不够,大家知道在PHP的配置文件php.ini中有限制脚本运行内存的设置memory_limit把这个值调大一些就可以解决这个问题了。
memory_limit = 1G
当然大家也许不喜欢随随便便的改动配置文件php.ini,在帖子《Composer update runs out of memory #1898》Dynom给出了个临时的解决办法:
php -dmemory_limit=1G composer.phar update
如果你是碰到无法上传文件那么可能是目录权限地设置问题,但能上小文件无法上传大文件,这个就是php.ini或环境的配置问题,下文来给各位整理此类问题的解决办法。php.ini无法上传大文件完美解决办法
1、打开php.ini(打开方式就不用说了,百度一大堆)
2、查找post_max_size
表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的
默认为8M,设置为自己需要的值,此参数建议要设置比upload_max_filesize大一些
3、查找File Uploads
是否允许通过http上传文件的开关,确认file_uploads = on
4、查找upload_tmp_dir
文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
如果系统报错提示有“XXX临时目录XXX”的话,这个目录就需要你来设置一个有效目录,没报错就不用管
5、查找upload_max_filesize
允许上传文件大小的最大值,默认为2M,设置为自己需要的值此参数建议不要超过post_max_size值,因为它受控于post_max_size值(就算upload_max_filesize设置了1G,而post_max_size只设置了2M时,大于2M的文件照样传不上去,因为它受控于post_max_size值)
6、如果要上传大于8M的文件,还需要对下面的参数也进行设置:
查找max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8M ;每个PHP页面所需要的最大内存,默认8M
nginx法上传大文件完美解决办法
1.client_body_buffer_size 尽量设置的大点,这是基于速度的考虑,如果因为设置的过小,导致上传的文件老要写磁盘,那速度就太慢了。
2.client_body_temp_path 路径要有可写权限,这个是明显的错误了。改正了就好
3.client_max_body_size 设置上传文件的最大值,这个是基于安全的考虑,我们认为正常用户不会或者基本不会上传太大的文件。
可以设置为client_max_body_size 100m; 或者按照自己的业务来设置这个值。
例子
nginx的配置。
代码如下 | 复制代码 |
cd /export/servers/nginx/conf/nginx.conf,在这个配置文件里面的server段里面的 location / { root html; index index.html index.htm; client_max_body_size 1000m; } |
加上了client_max_body_size 字段,怎么重启都不行。后来在总配置文件里面发现了分配置文件:
代码如下 | 复制代码 |
sendfileon; |
于是找到了分配置文件,在分配置文件里面进行修改。分配置文件配置如下:
代码如下 | 复制代码 |
server { listen 80; server_name chat.erp.360buy.com; # access_log /export/servers/nginx/logs/chat.erp.360buy.com; location / { proxy_pass http://tomcat; client_max_body_size 1000m; } } |
用/export/servers/nginx/sbin/nginx -s reload重启下,上传文件的大小受限的问题就解决了。
分享下我的解决过程,希望对大家有帮助。
如果还是无法解决我们需要看看是不是php表单设置问题
这段代码分为两个文件,一个为upload.html,一个是upload.php
upload.html
代码如下 | 复制代码 |
<form enctype="multipart/form-data" action="upload.php" method="post"> <input type="hidden" name="max_file_size" value="100000"> <input name="userfile" type="file"> <input type="submit" value="上传文件"> </form> |
其中,
请注意<form enctype="multipart/form-data"……>这是一个标签,我们要实现文件的上传,必须指定为multipart/form-data,否则服务器将不知道要干什么。
值得注意的是文件upload.html中表单选项 MAX_FILE_SIZE 的隐藏值域,通过设置其Value(值)可以限制上载文件的大小。
MAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。
upload.php
代码如下 | 复制代码 |
$f=&$HTTP_POST_FILES['Myfile']; $dest_dir=’uploads’;//设定上传目录 $dest=$dest_dir.’/’.date("ymd")."_".$f['name'];//设置文件名为日期加上文件名避免重复 $r=move_uploaded_file($f['tmp_name'],$dest); chmod($dest, 0755);//设定上传的文件的属性 或者 <?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?> |
以上范例中 $_FILES 数组的内容如下所示。我们假设文件上传字段的名称为 userfile(名称可随意命名)
出现failed to open stream: Permission denied in是apache运行用户没用权限去访问指定的文件了,所以导致目录文件打不开了。在打开浏览器时提示
Warning: include(/global.php) [function.include]: failed to open stream: Permission denied in \index.php on line 21
Warning: include() [function.include]: Failed opening '/global.php' for inclusion (include_path='.;C:\php5\pear') in index.php on line 21
Fatal error: Class 'fl_global' not found in \index.php on line 22
从这么多错误提示中我们可以看出一句failed to open stream: Permission denied in了,意思是说没有权限访问这个问题
linux解决办法
linux下
chmod -R 777 ./dirname 赋予目录可写权限
chmod 777 ./filename 赋予文件可写权限.
windows 2003解决办法
我是apache用户所以只需要给apache用户权限就可以了(如果是iis用户还需要在iis中设置权限哦)
例子:右击www或web目录,然后在弹出点击“安全与共享”或“属性”也可以打开之后选择安全之类的,然后增加用户并设置访问用户的权限必须选中下图所示了,注意了,我们增加访问用户必须与apache目录是一样的才可以哦。
在安装一个网站时提示Fatal error: Call to undefined function openssl_x509_parse函数了,而函数openssl_x509_read是一个php内置的函数哦,这个函数像curl需要组件支持哦,我们需要在php.ini中打开相关配置即可具体如下
网站提示 Fatal error: Call to undefined function openssl_x509_parse() ......
解决办法
打开php.ini,找到这一行 ;extension=php_openssl.dll,将前面的“;”去掉
再重启apache或者iis即可
再打开网站错误不提示了,为了证明是openssl.dll没开启的原因我们可以运行
代码如下 | 复制代码 |
<?php $validFrom = date('Y-m-d H:i:s', $data['validFrom_time_t']); echo $validFrom . " "; ?> |
这函数看看是不是没有问题哦。
同样今天在配置 apache+php环境时折腾了很久很久,后来成功了但发现验证码图片可以生成,在登录验证时发现session为空,并没有值了,那么碰到php 验证session无效问题如何解决呢,下面一起来看看过程。环境,我用的是apache+php环境了
如我的程序代码如下
代码如下 | 复制代码 |
<input name="username" type="text" class="input" id="username"> 提交之后处理文件这post.php文件 if($_SESSION['ssioner']!=$ssever){ |
结果发现一直提示验证码必须由4位数字组成,我再打印输出session
echo $_SESSION['ssioner'];exit;
一直为空了,于时我想到了php环境配置的一个session文件目录,现在我们找到php.ini配置文件找到
upload_tmp_dir
发现这个目录是
upload_tmp_dir="D:\www.111cn.net\tp"
我检查一下我的D盘发现只有www.111cn.net文件而没有tp目录了,这样问题就找到了,于时我创建一个tp目录,重启apache发现在tp目录有sess_i40gl0p4hfep5r69j67o1k26d01文件了,这样再重新登录发现成功了。
相关文章
- memory_limit是php.ini中的一个比较重要的参数了,它可以限制你php进行最大使用内存的情况,如果小了会导致运行时提示Fatal Error: Allowed memory size of xxxxxx bytes...2016-11-25
Nginx反向代理proxy_cache_path directive is not allowed错误解决方法
这篇文章主要介绍了Nginx反向代理proxy_cache_path directive is not allowed错误解决方法,需要的朋友可以参考下...2016-01-27Fatal error: Out of memory (allocated 786432)提示解决办法
今天在运行phpmyadmin时页面突然出现了Fatal error: Out of memory (allocated 786432)提示,看英文的意思是说超过了指定内存大小了,下面我来介绍解决办法 错误提...2016-11-25解决php curl获取网页内容提示405 method not allowed状态码
在使用php curl获取网页内容有些网站提示405 method not allowed状态码了,这个问题我分析了出问题的网站是因为ipv6而导致了,所以我们只要简单的调整一下就可以解决这个...2016-11-25- Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件,下面我们一起来看com...2016-11-25
php错误Fatal error: Out of memory (allocated 262144)
昨天网站用着用着就提示了Fatal error: Out of memory (allocated 262144),后来百度搜索了一些解决方法,下面我分享给各位朋友。 从上面的Out of memory (allocate...2016-11-25Pytorch GPU显存充足却显示out of memory的解决方式
今天小编就为大家分享一篇Pytorch GPU显存充足却显示out of memory的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27- 这篇文章主要介绍了使用Composer安装Yii框架的方法,结合具体实例分析了Composer的相关使用技巧,需要的朋友可以参考下...2016-03-17
php Allowed memory size of 8388608 bytes exhausted (tried to allocate 46080 bytes) in....
今天在用一个php产品时出现了Allowed memory size of 8388608 bytes exhausted (tried to allocate 46080 bytes) in....提示信息,经过查核是因为此产品未考虑到用户内...2016-11-25- Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。接下来通过本文给大家介绍Composer设置忽略版本匹配的方法,需要的朋友参考下吧...2016-05-04
- 今天我的新一台服务器安装了php环境但在在运行时提示Fatal Error: Allowed memory size of xxxxxx bytes exhausted了,是内存不足呀,下面我来介绍解决些问题的几种办法。...2016-11-25
Fatal error: Allowed memory size of 134217728 bytes exhauste
在运行dedecms是有些朋友会发现有些页面会提示Fatal error: Allowed memory size of 134217728 bytes exhauste错误了,下面我们一起来看看解决此问题办法。...2016-11-25Composer PHP Fatal error:Allowed memory size of
在使用composer update时遇到的,详细的错误消息Composer PHP Fatal error:Allowed memory size of 536870912 bytes exhausted了,下面来一起看问题解决办法 今天...2016-11-25- 一般在框架中都会用到composer工具, 用它来管理依赖。其中 composer有类的自动加载机制,可以加载composer下载的库中的所有的类文件。那么composer的自动加载机制是怎么实现的呢?...2021-05-30
- 这篇文章主要介绍了PHP 开发者该知道的 5 个 Composer 小技巧,需要的朋友可以参考下...2016-02-09
SQL Server误设置max server memory的处理方法
这篇文章主要给大家介绍了关于SQL Server误设置max server memory的处理方法,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧下...2020-07-11composer安装包时报any version for your minimum-stability (stable)
composer安装包时报any version for your minimum-stability (stable)了,那么碰到这种问题我们要如何来解决呢。 Composer 中文网致力于推广 PHP 世界的包管理工具...2016-11-25Fatal error: Allowed memory size of 33554432 bytes exhausted
今天换了一个服务器运行php久了就会发现Fatal error: Allowed memory size of 33554432 bytes exhausted提示了,下面我来给大家介绍此问题解决地。...2016-11-25- 视图的基本使用很简单,可查看视图文档了解详情,今天这里我们演示两个使用示例:在视图间共享数据和视图Composer。下面一起来看看。...2016-08-27
提交PHP组件到Packagist 发布自己的Composer包
下面我们来看一篇关于 提交PHP组件到Packagist 发布自己的Composer包的教程,希望这篇文章能够帮助到各位朋友哦。 Composer是PHP的一个依赖管理工具,它使得PHP焕发...2016-11-25