php composer.phar install 无法安装解决方法

在使用 php composer.phar install 命令的时候,我们可能会收到下面这种提示:

mmap() failed: [12] Cannot allocate memory
PHP Fatal error:  Out of memory (allocated 523217676) (tried to allocate 4096 bytes) in phar:///usr/bin/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 126

看到 stackoverflow 上有人说修改 memory_limit 的值,经过实际测试这种方法无效。

最好的解决办法是添加 Swap 虚拟内存。


宝塔Linux面板安装PHP失败原因

最近在安装宝塔面板的时候发现一件很奇怪的事,在 Debian 系统下 PHP7.1/7.2/7.3 一直都是装不上的状态。我去官方那搜到了很多反馈类似错误的,但大部分都是 Ubuntu 系统的,经过日志排查,确定不是宝塔的问题,最终把问题确定为性能导致。

如果你的安装机器在1G内存以上应该不会出现这类问题,1G以下是安装不上的。使用1G的机器会出现这类的问题,解决方法也是有的,首先安装宝塔后,在宝塔首页释放一下内存,不要使用一键安装LNMP环境,打开软件管理,首先安装PHP,然后在依次安装其它组件。如果安装失败了,可以尝试重启一下机器。

如果一直安装不上,可能就是机器的性能问题了,你要换一台机器或者尝试其它安装方式。

总结:小内存的机器尽量不要使用一键安装,在安装前清理一下内存,停止一些无用的进程。


PHP 随机打印数组文字

需求:随机打印指定文字中的其中一个。

用处,结合 HTML 使用可以把 class 变成动态的,用户每次刷新页面都会看到不一样的样式。挺无聊...

代码实现方法

<?php 
  $a=array("a","b","c","d","e","f"); 
  shuffle($a); 
  $b=$a[0]; 
  echo $b;
?>

PHP 301 重定向的两种写法

方法一 (推荐)

<?php
header("Location: https://kakarot.net", true, 301);
exit();
?>

方法二

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://kakarot.net");
?>
  • 注意:下面这种写法是错误的,虽然能实现同样的效果,但是没有声明是301重定向,搜索引擎会认为是302暂时重定向,如果你要做SEO的话,这是非常不友好的。
<?php
header("Location: https://kakarot.net");
?>