Browsing articles from "八月, 2013"
八月
26
2013

AWS EC2 Micro instance ErrorException: proc_open(): fork failed – Cannot allocate memory in phar的解決方法

今天在AWS EC2 micro上面執行composer update的時候跳出了下面的錯誤訊息

PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/S
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 990, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(990): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(832): Symfony\Component\Console\Application->getSttyColumns()
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(797): Symfony\Component\Console\Application->getTerminalDimensions()
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(731): Symfony\Component\Console\Application->getTerminalWidth()
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php on line 990

Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///usr/local/bin/composer/vendor/symfony/console/Symfon
Stack trace:
#0 [internal function]: Composer\Util\ErrorHandler::handle(2, 'proc_open(): fo...', 'phar:///usr/loc...', 990, Array)
#1 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Console/Application.php(990): proc_open('stty -a | grep ...', Array, NULL, NULL, NULL, Array)
#2 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Conso
#3 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Conso
#4 phar:///usr/local/bin/composer/vendor/symfony/console/Symfony/Component/Conso
#5 phar:///usr/local/bin/com in phar:///usr/local/bin/composer/vendor/symfony/co

google了一下,很多人都說AWS EC2 micro instance遇到這個問題是無解必須把等級往上升一等才能解決,我不信邪,一樣在micro的機器上面做以下的修改

vi /etc/php.ini
把原本的 memory_limit=128M 改成 memory_limit=256M

然後重新啟動apache,再執行一次composer update就可以正常了,到目前為止composer都運作的很順利沒有遇到任何的問題

八月
12
2013

如何在AWS EC2上面安裝Zend OPcache加速PHP

之前分享如何在AWS EC2上面安裝PHP-APC加速器,有網友留言說可以試試PHP5.5內建的OPcache試試看。我想要試試看OPcache的威力但目前暫時還不想要升級到PHP5.5。好在remi這個源裡面有提供OPcache可以讓我們安裝,下面就跟大家分享一下如何在AWS EC2上面安裝OPcache。

1. 安裝remi repo
首先我們一樣要在AWS EC2中安裝remi這個源,如果你還沒有安裝過,可以參考如何在AWS EC2上面安裝PHP-APC加速器這篇文章的步驟一。

 

2. 安裝OPcache加速器
指令只有一行

sudo yum install php-pecl-zendopcache

 

3. 設定OPcache
安裝完OPcache之後,我們必須針對設定檔進行一些設定,設定的參數我是參考使用Zend Opcache加速PHP這篇文章

sudo vi /etc/php.d/opcache.ini

然後根據我參考的那篇文章,做以下的設定調整

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

 

4. 關閉PHP-APC
如果之前有安裝PHP-APC加速器,但是不想要移除,可以使用下面的方法來關閉

sudo vi /etc/php.d/apc.ini

extension = apc.so這行最前面加上 ; (分號)註解掉;或者是把apc.enable_opcode_cache改成0(數字零)這樣就可以關閉APC了

 

5. 最後記得重新啟動Apache

sudo service httpd restart

 

6. 確認Zend OPcache是否安裝成功

[[email protected]_jp ~]$ php -v
PHP 5.4.17 (cli) (built: Jul 12 2013 21:18:57)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.2, Copyright (c) 1999-2013, by Zend Technologies

當然也可以寫一個phpinfo的頁面來看,不過記得看完之後要把這個檔案刪掉,避免主機上的資訊洩漏。

八月
5
2013

七步驟快速建立Windows的Sass+Compass+susy環境

1. Install Ruby
http://rubyinstaller.org/downloads/
我習慣把開發的環境建置在 D:\Develop\

2. Update Ruby
開啟命令提示字元

D:
cd Develop\Ruby200-x64
gem update --system

3. Install Sass
* Standard Gem

gem install sass

* Prerelease Gem

gem install sass --pre

4. Install compass

gem install compass

5. Install susy

gem install susy

6. Create Projcet

compass create <project name> -r susy -u susy

7. Execute

compass watch

這邊我強烈建議使用console,如果使用其他的套件或工具常常會詭異的發生下面的錯誤

LoadError on line xxx of xxx.file: no such file to load -- susy
八月
4
2013

Android 4.3專屬app: Permission Manager幫我們拿回權限的主控權

Android app最令人頭痛的地方就是app開發者基於各種理由要求了過多的權限,在以往我們只能屈就於想要用某些app,開放這些權限給這些app。但是到了Android 4.3一切就要改變了,Permission Manager將幫助我們拿回屬於我們的權限主控權。

在安裝這個app之前,請先確認你的Android已經升級到4.3,在目前這個時間點只有Google的兒孫們享有這樣的優勢,不過相信過一段時間,應該大家都可以順利的把Android升級到4.3了。確認系統升級到4.3之後,請到Google Play下載Permission Manager

安裝完之後,會有兩個icon,分別是Manage Permissions和Permission Manager,光看字面實在是有點令人混淆,我們先暫時忽略這兩個令人混淆的icon,或許將來作者會用比較清楚的名稱讓我們不會搞混,我們真正需要使用的是Manage Permissions這個圖示,所以可以把這個圖示拉出來。

[2013-08-05更新] 作者收到許多使用者的反應,已經把圖示從兩個變成一個,我們現在只會看到一個圖示,不會再被兩個圖示搞混了,保留下來的圖示是Permission Manager。

Android 4.3專屬app: Permission Manager幫我們拿回權限的主控權

如果安裝完直接開啟,我們會看到下面的介紹說明,如果不想要看,可以直接按返回鍵,直接進入這個app主要功能

頁次:12»