如何安装最新的webmin

作者:阿川 发布时间:February 16, 2017 分类:网站应用

一共两步:
1)安装webmin

(echo "[Webmin]
name=Webmin Distribution Neutral
baseurl=http://download.webmin.com/download/yum
enabled=1
gpgcheck=1
gpgkey=http://www.webmin.com/jcameron-key.asc" >/etc/yum.repos.d/webmin.repo; yum -y install webmin)

2)安装virtualmin
wget http://software.virtualmin.com/gpl/scripts/install.sh
sudo /bin/sh install.sh

之后用https://IP:10000登陆进去初始化配置即可

magento性能优化

作者:阿川 发布时间:January 28, 2016 分类:网站应用

调整 .htaccess
默认的 .htaccess是包含有关于处理性能的部分的,但是是被注释掉的,可以选择合适的部分取消注释;
启用输出压缩
这一部分会打开 apache 的mod_deflate模块,将text、 css 和 javascript 先进行压缩再发送到浏览器。这样就会减少网络下载量,缩短等待时间,示例如下:

# Insert filter on all content
    SetOutputFilter DEFLATE
    # Insert filter on selected content types only
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript 
 
    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html
 
    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
 
    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 
    # Don't compress images
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
 
    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
 
    # enable resulting html compression
    php_flag zlib.output_compression on

启用Expires Headers
注意:这一配置在Litespeed servers无效
浏览器使用 Expires Headers来确定页面组件可以被缓存多长时间。静态的部件,如图像,可以设置为永不过期,但还是建议设置一个Expires Headers。要打开这个特性,可以取消注释对应的行并添加"ExpiresActive On" 如下所示:
ExpiresActive On
    ExpiresDefault "access plus 1 year"

禁用 ETags
ETags(Entity tags)是服务器和浏览器的一个功能,它用来判断浏览器缓存里的元素是否和原来服务器上的一致。ETags比last-modified date更具有弹性,它用一个独一无二的字符串来标识一个元素的版本。 要关闭它很简单,做法如下:

FileETag none

日志太大,执行如下sql:

truncate dataflow_batch_export;
truncate dataflow_batch_import;
truncate log_customer;
truncate log_quote;
truncate log_summary;
truncate log_summary_type;
 
truncate log_url;
truncate log_url_info;
truncate log_visitor;
truncate log_visitor_info;
truncate log_visitor_online;
 
truncate report_viewed_product_index;
truncate report_compared_product_index;
truncate report_event;
 
set foreign_key_checks = 0;
truncate index_process_event;
truncate index_event;
set foreign_key_checks = 1;

zencart在后台发测试邮件提示:Could not instantiate mail function.

作者:阿川 发布时间:November 4, 2014 分类:网站应用

哎..命苦...这么晚还在处理售后.折腾完上一台服务器无法下载文件之后,现在接着在给客户折腾他的zencart为毛不能发送邮件.
一客户在他的美国服务器上(就是我最近托管的那个机房,速度很不错)使用系统工具-send mail测试邮件功能是否正常,但是提示:
Could not instantiate mail function.
不管你怎么折腾都会提示这货,查了半天的apache日志无果,以为是sendmail没安装,先安装

yum install sendmail
service sendmail restart

再兴致勃勃的跑到后台再测试,依然报错,接着去翻var/log下面的maillog,发现了问题所在,错误信息如下
Nov  3 09:47:48 localhost sendmail[4872]: NOQUEUE: SYSERR(www):
 can not chdir(/var/spool/clientmqueue/): Permission denied

没有权限嘛,直接
chmod -R 777 /var/spool/clientmqueue/

接着再去测试,不报错,提示
Notice: Email sent to: All Customers (2)
问题解决

当你使用帝国CMS下载创建网站提示349错误时

作者:阿川 发布时间:November 4, 2014 分类:网站应用

客户在我这拿了一台美国服务器.centos下搭建的apache环境.使用帝国CMS做站,所有的下载在IE和firefox测试无误,使用chorme或者基于chorme内核的浏览器(如360那个坑爹的双内核)就出错,提示:
“收到了来自服务器的重复标头来自服务器的响应包含重复标头。此问题通常是由于网站或代理配置不正确导致的。
只有网站或代理管理员才能解决此问题。
错误 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION):我们收到了多个截然不同的“Content-Disposition”标头。
我们不允许此行为,以防遭到 HTTP 响应拆分攻击。”
网上搜索一大堆错误提示,最后找到个靠谱的.
首先.打开你e/DownSys/class/下面的DownSysFun.php.大约192行,
将内容

Header("Content-Disposition: attachment; filename=".$filename);

更改为:
Header("Content-Disposition: attachment; filename=\"".$filename."\"");

问题即可解决

当你发现一群王八蛋在C你的站时

作者:阿川 发布时间:October 19, 2014 分类:网站应用

今儿个一客户发了他一台机器过来.告知在不停的被人CC.
于是二话不说.上去帮他干了4000个恶意IP.正常了不到20分钟.负载持续飙升.
于是.只好挨个排查日志.发现这帮孙子.只要是在C的时候他们的User-Agent都是一样的
比如:

190-207-149-57.dyn.dsl.cantv.net - - [19/Oct/2014:23:36:36 +0800] 
"GET /otras-ligas-c-6.html HTTP/1.0" 302 - 
"http://site/otras-ligas-c-6.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
201-248-102-175.dyn.dsl.cantv.net - - [19/Oct/2014:23:36:36 +0800] 
"GET /otras-ligas-c-6.html HTTP/1.0" 403
 308 "http://site/otras-ligas-c-6.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
190-206-82-223.dyn.dsl.cantv.net - - [19/Oct/2014:23:36:36 +0800] 
"GET /otras-ligas-c-6.html HTTP/1.0" 302 - 
"http://site/otras-ligas-c-6.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

不难发现他们的User-Agent都是Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
知道这点就好办了
在.htaccess里面屏蔽掉他们就能解决了
下面内容直接添加到.htaccess之中.问题解决
SetEnvIfNoCase User-Agent "Mozilla/4.0" shit_user
    Order Allow,Deny
    Allow from all
    Deny from env=shit_user
 
    RewriteCond %{HTTP_USER_AGENT} Mozilla\/4\.0 [NC]
    RewriteRule .* - [R=503,L]

当webmin把php从5.16升级到5.2.7后...

作者:阿川 发布时间:October 10, 2014 分类:网站应用

当webmin把php从5.16升级到5.2.7后,肯定是出现了一堆问题的..不然也不会有这篇文章出来鸟.
首先.升级php
vi /etc/yum.repos.d/utterrambling.repo
如果你的vps或主机是32bit的Centos请输入以下内容:

[utterramblings]
    name=Jason,s Utter Ramblings Repo
    baseurl=http://www.jasonlitka.com/media/EL5/i386/
    enabled=1
    gpgcheck=1
    gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

如果你的主机或者vps是64bit的Centos系统请输入下面的内容:

[utterramblings]
    name=Jason,s Utter Ramblings Repo
    baseurl=http://www.jasonlitka.com/media/EL5/x86_64/
    enabled=1
    gpgcheck=1
    gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

之后关闭fastestmirror,
vim /etc/yum/pluginconf.d/fastestmirror.conf

把enable 改为0
安装之前最好卸载掉php,之后执行升级
yum remove php*
yum -y upgrade php

很显然.这样升级.肯定是不成功的.因为有个依赖和mysql冲突了.于是只好卸载掉把php和mysql一起日掉,
yum remove php* mysql*

之后呢...再安装
yum -y install php php-* mysql mysql-server

好了..现在php版本是5.2.mysql的版本是5.1,然后发现mysql没启动.不管怎么折腾都没用,执行mysql_upgrade.提示
[root@AI18 mysql]# mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
mysqlcheck: Got error: 2002: Can't connect to local MySQL server 
through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
FATAL ERROR: Upgrade failed

好吧.升级也不成.检查日志,发现如下提示
141010 12:38:44 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141010 12:38:44 [ERROR] Error message file '/usr/share/mysql/english/errmsg.sys' 
had only 481 error messages,
but it should contain at least 641 error messages.
Check that the above file is the right version for this program!

只好去找个mysql的tar包来替换
wget http://mysql.llarian.net/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz
tar -zxf mysql
tar -zxf mysql-5.1.73.tar.gz 
ls
cd mysql-5.1.73
mv /usr/share/mysql/english/errmsg.sys /usr/share/mysql/english/errmsg.sys.old
cp sql/share/english/errmsg.sys /usr/share/mysql/english/errmsg.sys
service mysqld restart

好了.mysql启动.去webmin获得管理员密码
执行
mysql_upgrade -uroot -p

将mysql表升级即可.

帝国替换掉内容存放位置

作者:阿川 发布时间:September 5, 2014 分类:网站应用

我要将内容存放在/item下面以为这种形式
item/id.html
使用如下语句

update phome_ecms_news set newspath='';
update phome_ecms_news set titleurl=CONCAT('/item/',id,'.html') where id>0

为zencart创建静态的首页

作者:阿川 发布时间:November 13, 2013 分类:网站应用

今天在测试客户的美国VPS,客户使用zencart程序.发现首页打开速度奇慢无比.而内页又十分正常.测试半天未果.只好将首页为其生成静态.每天使用crontab自动为他更新一次首页.下面文档仅供参考:
1:在网站根目录下创建makeindex.sh,内容如下:

wget  "你的域名/index.php" -O  index.html  >> /dev/null 2>&1

2:给其写入权限
chmod 777 makeindex.sh

3:添加crontab任务:
15 05  * * * /home/admin/makeindex.sh  >> /dev/null 2>&1

搞完收工