发件人是localhost.localdomain的解决方案

大家都说修改主机名就可以了,但是如果不注意每一个细节,而单单修改hostname,肯定不行。
其实,正确的步骤应该是:

  1. 设置好主机名,域名:
    hostname可以设置临时主机名。保险的做法是修改配置文件,让系统重启后不会失效。
    以centos为例,修改/etc/sysconfig/network,加上或者修改两行:HOSTNAME, DOMAINNAME。
  2. 执行hostname newhost, 退出登陆一次,让主机名生效。
  3. 重启sendmail。/etc/init.d/sendmail restart

这样就好了,在控制台发封信试试看吧!
我的身份是root,主机名是demo,域名是zhpanel.com,所以,我的默认发件人就是root@demo.zhpanel.com。
这样讲,应该明白了吧……

MyBlog 1.2 Build 236 For Joomla1.0.x, Joomla1.5.x

又一个经典的Joomla商业插件,价值几十美金。

一直以来,我们希望有一个Joomla的博客组件可以建成“时髦”的博客站,但无论如何都没有——桥接或是整合的东西,我个人感觉都不长久,我个人 偏向于用组件的方式——可怜的Joomla.cn居然还在用远古时代的Mamblog 1.0。今日看到My Blog组件,并详细查看了一下它的功能,着实让人欣慰,该有的功能都有了,并且界面的web2.0的“风韵”:

  1. MyBlog首页——显示所有博客文章(带分页,如Joomla之Frontpage)
  2. 整合Jom Comment评论组件
  3. 可以通过用户名、Tags标签和其它关键词过滤博客文章
  4. 支持RSS
  5. 博客文章控制面板
  6. 个人图片管理
  7. 支持个人头像(SMF、Gravatar、Community Builder的头像)
  8. 整合Community Builder!——实在太酷了
  9. 支持Joomla Plugins
  10. 强大的后台管理:用户权限、博客文章管理、分类管理
  11. 模板系统

        最后补充一句话,你不喜欢听也别怪我——MyBlog是商业组件,45USD![本站不提供下载链接,有需要请访问官方(官方网站)全文为官方英文说明供参考]

A brand new blogging component for Joomla. It is designed to be super easy to use, with tons of cool features. Completely customizable with themes and plug-in support.

– MyBlog frontpage that displays all blog entries with pagination
– Jom Comment integration
– Filter blog posts by user, tags, or keywords
– RSS feeds
– Trackback support
– Technorati pings and tags. Get picked up by Technorati!
– Simple and intuitive Dashboard for users to manage their blog posts, write or edit a new entry
– Option to open Dashboard in a Thickbox/Lightbox
– Upload images and browse existing images using MyBlog’s own image browser
– Avatar support (SMF, gravatar, Community Builder)
– Community Builder integration
– Joomla Content Mambot integration (Google Adsense bot, All Videos bot, etc)
– MyBlog has it’s own custom bot system!
– Powerful admin backend, ie set user permissions, manage all blog posts, customize which sections to manage using MyBlog, which section to save new blog entries into, etc
– Fast templating system, like Jom Comment’s

 [attach=129]

用YSlow优化网站性能

知识点:

  1. 怎么样加快网页的加载速度?
  2. 什么是YAHOO优化十三条规则
  3. 什么是firebug? 什么是YSlow?
  4. 我想优化我的网站加载速度,应该从哪里开始?

最终效果:

  1. 网页加载速度有了明显的提升。
  2. YSlow的分数明显增长。
  3. 用户浏览时,停顿感明显减少。

 

结果数据:

分项结果:
[attach=124]

统计数据:
[attach=125]

Performance Grade: A (99)    Expand All Collapse All
A    1. Make fewer HTTP requests
A    2. Use a CDN
Using these CDN hostnames from your preferences: cdn.eaxi.com
A    3. Add an Expires header
A    4. Gzip components
A    5. Put CSS at the top
A    6. Put JS at the bottom
A    7. Avoid CSS expressions
n/a    8. Make JS and CSS external
Only consider this if your property is a common user home page.
A    9. Reduce DNS lookups
A    10. Minify JS
A    11. Avoid redirects
A    12. Remove duplicate scripts
A    13. Configure ETags

下面一条条地说说,怎么实现。

  1. 尽可能减少HTTP请求,一般采取的办法是减少图片量,多图组合成一图。
  2. 使用CDN。使用专门的域名来存放图片、JS脚本、CSS样式文件、FLASH文件等静态的内容。用独立于主域名的域名来做CDN,主要的原 因是防止COOKIE的干扰,因为如果有COOKIE的情况下,浏览器在HTTP请求时会把COOKIE发送给服务器。这里使用了 cdn.eaxi.com。这里也可以使用智能解析,让网通、电信、教育网的的用户选择最快的CDN。
  3. 给静态文件加上过期标志。让浏览器或者CDN服务器缓存起来,加速图片和其他静态文件的加载。
  4. 启用gzip压缩。gzip对文本的压缩效果非常好,而且主流浏览器也都支持gzip,建议启用。
  5. 把CSS文件置顶。这个主要是为了让浏览器可以即时渲染。也就是说,加载了一部分HTML,浏览器马上就可以将其渲染到最终效果,不用等待加载完毕。
  6. 把JS放到底部,这主要是防止JS在HTML加载完成前运行,加长网页的加载时间。
  7. 不用CSS expressions。这个IE-only的垃圾,考都不考虑。
  8. 把JS, CSS放到外部,让浏览器缓存。
  9. 减少域名解析次数。这里只使用了两个域名:http://blog.eaxi.com/ (主站),http://cdn.eaxi.com/ (CDN),这样,只需要进行两次域名解析。域名解析也是个耗时的头儿,要注意。这CDN一多,域名查询也多,是冲突的。大家按自己情况合理取舍。当然,如果是大站,可以考虑多几个CDN服务器,比如css.eaxi.com, js.eaxi.com,方便管理。
  10. 压缩JS, CSS。
  11. 避免重定向,重定向是浪费时间。
  12. 删除重复的脚本。
  13. 不用ETag。ETag是用于服务器和浏览器间文档校验的一种手段,如果匹配就使用缓存版本,不匹配的话,重新下载。但是使用CDN的时候,不同镜像间的ETag是不一样的,这就导致了ETag的失灵。我们删除ETag。

这样处理后,网页速度已经得到极大的提升。

技巧

在处理过程中,有一些我发现的技巧可以参考:

CDN。很多朋友可能没有经济能力去架设CDN服务器,或者根本就没有必要。这时就可以考虑用别名的方式。比如,cdn.eaxi.com 只是blog.eaxi.com的一个别名,它们属于同一个虚拟主机。但是,blog.eaxi.com下的cookie不会干扰到 cdn.eaxi.com,这达到了CDN的一部分效果。

过期。对于Apache服务器,可以选择使用mod_expires或者mod_headers。我使用的是mod_headers。可以在.htaccess文件中加上:

 # YEAR
<FilesMatch "\.(flv|gif|ico|jpg|png|bmp)$">
Header set Cache-Control "max-age=2592000"
Header unset ETag
Header set X-Powered-By "blog.eaxi.com"
Header set Expires "Mon, 18 Jun 2018 05:30:47 GMT"
Header set Age "567"
Header set Connection "keep-alive"
Header set Server "nginx 0.7.1"
</FilesMatch>

# WEEK
<FilesMatch "\.(pdf|swf|js|css)$">
Header set Cache-Control "max-age=604800"
Header unset ETag
Header set X-Powered-By "blog.eaxi.com"
Header set Expires "Mon, 18 Jun 2018 05:30:47 GMT"
Header set Age "567"
Header set Connection "keep-alive"
Header set Server "nginx 0.7.1"
</FilesMatch>

如果你的服务器不支持mod_headers,可以选择mod_expires的方法:

ExpiresDefault "access plus 4 months"
ExpiresByType text/html "access plus 4 months"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"
ExpiresByType image/jpg "modification plus 5 hours 3 minutes"
ExpiresByType image/png "modification plus 5 hours 3 minutes"
ExpiresByType image/bmp "modification plus 5 hours 3 minutes"
ExpiresByType image/js "modification plus 5 hours 3 minutes"
ExpiresByType image/css "modification plus 5 hours 3 minutes"

其中的时间可以按需要自己定制。

删除ETag。这个可以使用Header unset ETag禁用服务器ETag的发送。

 

要完全关闭这个功能,可以使用YAHOO推荐的:

FileETag none

可以直接加在.htaccess文件中。

suexec

重新编译Apache

 

XML/HTML代码
  1. ./configure –prefix=/usr/local/httpd2 –sbindir=/usr/local/httpd2/sbin –enable-so –enable-rewrite=shared –enable-deflate –enable-nonportable-atomics –with-ssl=/usr/lib64/openssl –with-expat=builtin –enable-suexec –with-suexec-caller=www –with-suexec-userdir=public_html –with-suexec-docroot=/www/htdocs –with-suexec-uidmin=103 –with-suexec-gidmin=504  

 

在虚拟主机:

XML/HTML代码
  1. SuexecUserGroup seaprince vhostuser  
  2. ScriptAlias /cgi-bin/ /www/htdocs/public_users/blog.eaxi.com/public_html/cgi-bin/  
  3. <Location "/php-cgi/php">  
  4.         SetHandler fcgid-script  
  5.         Options ExecCGI  
  6.         Allow from all  
  7. </Location>  

家目录:

 

 

XML/HTML代码
  1. mkdir -p ~/public_html/cgi-bin  
  2. cp /usr/local/php5/bin/php-cgi ~/public_html/cgi-bin/php.cgi  
  3. chown seaprince.vhostuser -R /public_html/cgi-bin/  

重启Apache