- Linux
- 2013-02-06 - 更新:2013-02-07
Procmailにてレベルを定義し振り分けをおこなう方法と
ORによる条件判定の方法。
LEVEL=2
レベル2のとき適用
:0 * $LEVEL ?? 2 { # 逆引きできないホストを経由したメールの場合 :0Hfw * ^Received: .*from.*unknown | formail -I "X-Spam-Flag: True" }
Procmailにてレベルを定義し振り分けをおこなう方法と
ORによる条件判定の方法。
LEVEL=2
レベル2のとき適用
:0 * $LEVEL ?? 2 { # 逆引きできないホストを経由したメールの場合 :0Hfw * ^Received: .*from.*unknown | formail -I "X-Spam-Flag: True" }
PHPでファイルを扱う中で、以下のようなエラーが発生することがあります。
Fatal error: Allowed memory size of xxx bytes exhausted (tried to allocate xxx bytes) in ...
ファイルの容量が大き過ぎて、PHPに割り当てられているメモリーの範囲を超えてしまっているのです。
php.iniに以下のような行がありますので、この値を変更してあげます。
デフォルトは8Mです。
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)
おすすめはしませんが、-1とすると上限なしに設定できるようです。
変更したらapacheを再起動させてください。
php.iniが触れない場合や、基本的な上限は変えたくないときは一時的に変更します。
init_set("memory_limit", "16M");
もしくは.htaccessでも可能です。
php_value memory_limit 16M
以下の記事も参考にしてください
[ファイルアップロードの最大サイズを変更]
フォームよりアップロードできるファイルの最大容量を変更したいとき、
php.ini
で以下の設定を変更します。
1つのファイルアップロードに許可される最大サイズ
デフォルト:2M 40M
upload_max_filesize = 40M
POST送信できる最大サイズ
デフォルト:8M 40M
post_max_size = 40M
メモリ使用量の制限
デフォルト:128MB 512MB
※-1
にすると無制限
memory_limit = 512MB
タイムアウト秒数
デフォルト:20 120
※0
にすると無制限
max_execution_time = 120
1回の送信で送れるファイルの個数
デフォルト:20
※こちらについてはphp.ini、もしくはApacheのhttpd.conf(extra/httpd-vhost.conf)でないと設定できません。
max_file_uploads = 150
memory_limit
・post_max_size
・upload_max_filesize
については以下のような関係になるよう設定してください。
memory_limit > post_max_size > upload_max_filesize
<Directory "/var/www/html"> php_value memory_limit 128M php_value max_execution_time 0 </Directory>
.htaccess
ファイルで設定することも可能です。
php_value memory_limit 128M php_value max_execution_time 0
変更した後は忘れずにApacheを再起動しましょう。
#!/bin/sh # httpd: /usr/local/apache2 . /etc/rc.d/init.d/functions [ -f /usr/local/apache2/bin/apachectl ] || exit 0 case "$1" in start) # Start daemons. /usr/local/apache2/bin/apachectl start if [ $? = 0 ] ; then echo "httpd starting:" `echo_success` else echo "httpd starting:" `echo_failure` fi ;; stop) # Stop daemons. /usr/local/apache2/bin/apachectl stop if [ $? = 0 ] ; then echo "stopping httpd:" `echo_success` else echo "stopping httpd:" `echo_failure` fi ;; restart) $0 stop $0 start ;; configtest) #httpd.conf test /usr/local/apache2/bin/apachectl configtest ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 exit 64 ;; esac exit 0