u0u0's Offical Site - php
type: channel
link: http://www.tyrantek.com/tag/php/
items: apache work内存优化
items: 安装postfix解决php发送邮件
items: ubuntu下安装apache work模式+php+mysql

apache work内存优化
type: item
date: 2013-07-15T13:28:10+08:00
description: 云主机或vps，内存都比较宝贵，默认的设置，在高负荷下会吃光内存，这时候mysql再动态请求内存可能会失败而进程退出。 需要做一些限制。 下面涉及数值为64位系统下估算。我们需要关系三个内存值，mysqld，apache，php work模式下，php是独立进程，每个占用60～70m（wordpress＋discuz应用），内存消耗大户。 apache进程内存占用很少，1个大概2~7m不等。 mysql只有一个进程，60～80m内存占用。需要限制的是php进程数量和apache进程数量。1、修改apapche的work配置vim /etc/apache2/apache2.conf StartServers 2 #初始进程（apache进程） MinSpareThreads 25 #最小空闲线程数 MaxSpareThreads 75 #最大空闲线程数 ThreadLimit 50 #每个子进程可配置的线程数上限 ThreadsPerChild 25 #每个子进程建立的常驻的执行线程数 ServerLimit 10 #apache最大进程数 MaxClients 200 #允许同时伺服的最大接入请求数量(最大线程数量) MaxRequestsPerChild 500 #设置每个子进程在其生存期内允许伺服的最大请求数量（不设置位0，可避免应用的内存泄漏引发内存问题） 公式： ThreadLimit >= ThreadsPerChild MaxClients = MinSpareThreads+ThreadsPerChild 2、修改fcgi配置vim /etc/apache2/mods-available/fcgid.conf AddHandler fcgid-script .fcgi AddHandler fcgid-script .php FCGIWrapper /usr/lib/cgi-bin/php5 .php FcgidConnectTimeout 20 FcgidMaxProcesses 5 # 最大进程数量 FcgidMaxRequestsPerProcess 1000 # 每个进程最大请求数，达到后进程销毁，再创建 FcgidMaxRequestLen 10485760 # 限制了上传文件大小，同时要结合php.ini里面的设置

安装postfix解决php发送邮件
type: item
date: 2013-06-28T16:39:25+08:00
description: 最开始是发现apache错误日志，提示找不到sendmail。 随安装sendmail。 而后轮到mail.err报发送邮件失败。 搜索得知，sendmail年老失修，建议用postfix替代之。 安装很简单$sudo apt-get install postfixphp代码测试 检查日志，还是发送失败，提示找不到gmail邮件服务器。 修改vim /etc/postfix/main.cf inet_interfaces = all 改为 inet_interfaces = localhost 重启postfix$sudo service postfix restart再次用上面的php脚本测试，发送成功。gmail邮箱收到邮件，不过在垃圾邮箱里面：（

ubuntu下安装apache work模式+php+mysql
type: item
date: 2013-06-28T15:59:00+08:00
description: ubuntu默认安装apache是prefork模式，prefork内存消耗比较高。选者work模式好能提高并发的情况下，降低内存占用。event模式暂无经验，以后再研究。 1、安装apache2-work，php$sudo apt-get install apache2-mpm-worker libapache2-mod-fcgid php5-cgi php5-cli php5-gd php5-mcryptphp5-cgi是将要被apache2的mod-fcgid调用的。 php5-cli是php的命令行 php5-gd php的图形处理支持。 php5-mcrypt phpmyadmin需要2、安装mysql$sudo apt-get install mysql-server php5-mysql3、配置apache2 fcig.conf,加入php映射。$sudo vi /etc/apache2/mods-available/fcgid.conf检查是否有以下两项,没有就添加。一般都有，ubuntu安装还是比较省事的。AddHandler fcgid-script .php FCGIWrapper /usr/lib/cgi-bin/php5 .php4、修改站点配置/etc/apache2/sites-available/下的所有站点配置文件。 中的Options选项后，添加+ExecCGI5、www下文件权限和所有者修正。 $chown -R www-data:www-data /var/www $chmod -R 755 /var/www 6、启用apache的rewirite apapche2安装后是没有开启rewirte的。$sudo a2enmod rewrite并修改站点配置的directory以下两项 Options FollowSymLinks //必须 AllowOverride All //必须 $sudo service apache2 restart