Monthly Archives: 七月 2015

七月 27th, 2015

使用cPanel安装过WordPress的不少朋友应该都有过类似经历,访问WordPress出现如下错误提示:Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate xxx bytes)。有的是访问网站出现,有的是访问后台时出现,还有的是登录后台后在dashboard里面看到的。这个提示是说,我们正在进行的操作需要这 么多的内存,但现在服务器分配的内存不足。正常情况下,修改下虚拟主机的默认配置就可以了,下面和大家分享下解决的方法:
1.修改虚拟主机的内存大小限制
到你的网站根目录下,建立一个php.ini文件,写入下面这句:memory_limit = 64M,之后可以通过phpinfo函数来查看memory_limit是否已经变成64M。方法为新建一个php文件,可以命名成info.php, 在其中写入phpinfo()函数,保存后访问此文件查看服务器的php配置。如果发现修改之后没有生效,可以试下在网站根目录的.htaccess文件 中写入:suPHP_ConfigPath /home/cpusername/public_html(这是针对suphp环境的Linux服务器,目录可以具体到网站所在的具体目录,默认情况 下,网站程序一般是放在public_html下的),这个设置是为了告诉mod_suphp向哪些路径传递php解释器(有时候可能还需要 在.htaccess中设置PHPRC环境变量,如SetEnv PHPRC /home/cpusername/public_html)。

2.修改WP配置文件。
这个比较简单,编辑wp-config.php这个配置文件,加上一句:define(‘WP_MEMORY_LIMIT’, ’64M’);其中64M可以写得更大,比如128M。一般64M肯定够用了。

如此,一般就可以解决这种错误提示了。解决之后还有部分朋友访问网站可能会出现:Warning: Cannot modify header information – headers already sent by (output started at /home/cpusername/public_html/wp-settings.php:327) in /home/cpusername/public_html/wp-admin/install.php on line 54类似的错误,不要紧,在php.ini中写上output_buffering=4096即可解决。

七月 27th, 2015

cPanel高级DNS区域编辑器提示You do not have permission to read the zone:

dont have permission

这个错误提示很奇怪,检查了下WHM的DNS Functions>>Edit DNS Zone中域名的解析记录均正常存在。服务器上/var/named下也能找到域名对应的.db文件。
执行/scripts/whoowns 域名的时候提示是空白,正常情况下会显示cPanel的用户名。于是判断应该是域名没有被识别导致的。最后经过比对发现了原来是cPanel账户的配置文件中丢失了域名的DNS记录。解决方法如下
#cd /var/cpanel/users (该目录下是服务器上的每个cPanel用户的账户配置文件)
# vi test(假设用户的cPanel用户名是test)
再最后将不能查看DNS解析的域名按照如下格式添加:
DNS1=test2.com
DNS2=test2.com
….
添加完成之后保存退出,再执行:
/scripts/updateuserdomains

然后等几十秒再尝试在DNS高级编辑器中查看域名的解析,会发现虽然还存在这个错误,但是解析记录都能显示了。如果显示出来的A记录IP和主机IP不一致,可以重置下DNS区域文件

 

重置之后同样等待几十秒,解析就正常了。

七月 27th, 2015

某些时候,可能会用到记录命令的执行时间的问题,所以在这里来给大家介绍一下

编辑/etc/bashrc,添加以下配置信息:

# 让系统记录每条历史命令的执行时间。注意最后的”号前面要放个空格,否则时间就与命令在一起,不方便也不美观

export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "

# 以下是关于记录文件大小与命令条数的设置,根据需要来设置

# 设置保存历史命令的文件大小

export HISTFILESIZE=1000000

# 保存历史命令条数

export HISTSIZE=2000

 

执行下面的命令使配置立即生效:

source /etc/bashrc

 

再次查看历史命令记录:

history
就可以看到了。

 

TAGS: ,
七月 27th, 2015

最近发现登录Wordpress后台异常缓慢,经常卡在fonts.googleapis.com,这是由于Wordpress后台外链加载了谷歌字体 (代码位置在wordpress\wp-includes\script-loader.php第580行),而谷歌服务器大家都知道的原因国内访问困 难,严重影响页面加载速度。

google

解决办法:
将下面代码添加到主题functions.php文件中:

function coolwp_remove_open_sans_from_wp_core() {    wp_deregister_style( ‘open-sans’ );    wp_register_style( ‘open-sans’, false );    wp_enqueue_style(‘open-sans’,”);}add_action( ‘init’, ‘coolwp_remove_open_sans_from_wp_core’ );

之后,再次登录后台速度明显提升。

原因:

因Google字库中只有英文,对国人无任何用处,换用国内某字体服务的方法同样意义不大,禁掉最实用。

上述方法对前台主题加载Google字体无效,国外主题也多采用外链Google字体,自行手动修改模板删除相关代码。

注:这已是目前国内使用Wordpress所必须做的,建议国内主题设计者直接集成在主题中,不然刚接触WP的新手,会因此放弃,瓷瓶国又一悲剧!

七月 11th, 2015

1.使用安全密码
编辑/etc/login.defs配置密码选项。一般来说,建议密码至少设置8位或者8位以上,包含大小字母和数字,有特殊符号更好。如果你想知道你设置的密码是否安全,可以用 JTR cracker之类工具来破解下,如果几个小时被破解了,说明密码不够安全。也可以使用pam_passwdqc工具来检测密码强度。

2.加固SSH安全
启用SSH的公共密钥并禁用密码验证。
编辑/etc/ssh/sshd_config文件修改SSH的默认22端口为其它端口比如1653。
使用SSHv2而不是SSHv1,方法为修改/etc/ssh/sshd_config中##Protocol 2,1为#Protocol 2。
编辑/etc/security/limits.conf限制用户Shell资源的使用。

3.安全Apache
使用mod_security。通过EasyApache即可编译mod_security。
编译Apache的时候,将suexec编辑进去确保CGI程序和脚本以拥有者的身份被拥有和执行。这样出问题的时候容易判断是哪个用户引起的。
通过PHPsuexec编辑Apache和PHP。PHPsuexec强制所有的PHP脚本以拥有者的身份执行。
启用PHP open_basedir保护,这样用户就不能通过PHP打开他们主目录之外的文件。
为PHP 5启用safe_mode,保证PHP脚本的拥有者与所操作到的任何文件的拥有者是一直的。编辑php.ini文件,设置safe_mode = On即可。

4.加固/tmp目录安全
为/tmp目录使用单独的nosetuid分区,这样会强制让进程仅以执行者拥有的权限运行。cPanel安装之后以noexec方式载入/tmp。
执行/scripts/securetmp将/tmp分区载入到一个临时文件。

5.升级邮件到邮件maildir格式
Maildir格式更安全并且能够加速邮件系统。目前最新的cPanel版本均会自动使用Maildir。如果你的cPanel版本比较老的话,可以通过 /scripts/convert2maildir来升级到Maildir。如果执行的时候提示Maildir已经启用,就不需要再执行了。

6.关闭系统的编译器
大多数用户都不需要使用C和C++编译器。使用Security Center中的Complier Access功能关闭未授权使用编译器的用户使用它们,或者仅仅关闭特定用户使用编译器的权限。

7.关闭不使用的服务和进程
检查/etc/xinetd.conf看下哪些服务你不在使用。比如cupsd和nfs/statd这些一般都不会用到。
你可以到Service Configuration中的Service Manager里关闭不用的服务。

8.监控你的系统
要实时监控你的系统,确保你能知道有哪些账户被创建了,哪些软件被安全了,或者哪些软件需要更新等。

定期检查你的系统比如检查下面这些:
netstat -anp:查找你没有安装或者授权的端口在运行的程序。
find / ( -perm -a+w ) ! -type l >> world_writable.txt:查找world_wirtable.txt文件来查看所有的可写文件和目录。这样有助于发现攻击者藏在你系统上的文件。
find / -nouser -o -nogroup>> no_owner.txt:查找那些不属于任何用户或者组的文件。所有的文件都必须属于某个特定用户或者组。
ls /var/log/:系统日志所在目录。这里可以检查系统日志,apache日志,邮件日志等等。

有一些简单易用的工具能够扫描出系统的rootkits,backdoors等:

10.保持cPanel更新
确保你使用的cPanel版本能够不断更新,始终保持使用最新的稳定版本。同时确保内核、用户应用程序(如用户的CMS等)、系统软件。
cPanel的自动升级更新以及系统软件的更新可以在WHM中的Server Configuration中的Update Preferences里设置。

七月 11th, 2015

为了提高WordPress网站文章的排版和美观性,我们经常会把每段文章的首行缩进两个字符,每次手动修改又比较麻烦,其实只需在css文件里添加一段代码即可实现。

此方法对大部分主题都有效,当然某些强大的老外企业、CMS主题除外…

方法:进入WP后台 – 主题 – 编辑,找到 style.css 文件,在最下方插入如下代码:

.content p{text-indent:2em;}

或者

#content p{text-indent:2em;}

 

第一行代码如果不行就试试第二行,其实它们的原理都一样,代码中的“2em”可以随意修改。

 

七月 11th, 2015

WordPress默认的管理员用户名就是admin,而且修改都需要通过数据表,但是其实WordPress也很早就已经可以让用户在注册的时候选择自己的用户名,而不是默认的 admin,但是在给一些收费用户提供技术支持的时候发现,他们提供的用户基本都是admin,原来大家都习惯了把网站的管理员用户名设置成 admin,这样的方式是非常的流行和被大家习惯的去使用。

为了防止安全隐患,子凡建议不论是做什么网站,管理员的用户名最好都不要使用admin这个用户名,或者只是在网站后台添加一个这样的一个用户名而 已,但是不给予管理员权限,这样可以防止网络上一些扫描和尝试网站的登录,所以我们可以禁止使用admin用户名尝试登录WordPress,当机器使用 admin扫描博客的时候,直接把登陆界面屏蔽了,不让其扫描。

具体可以当前主题的 functions.php 文件中加入如下代码:

//WordPress禁止使用admin用户名尝试登录

add_filter( ‘wp_authenticate’, ‘fanly_no_admin_user’ );function

fanly_no_admin_user($user){

if($user == ‘admin’){

exit;    }

}

add_filter(‘sanitize_user’, ‘fanly_sanitize_user_no_admin’,10,3);function fanly_sanitize_user_no_admin($username, $raw_username, $strict){

if($raw_username == ‘admin’ || $username == ‘admin’){

exit;    }

return $username;}

 

 

 

如果你的WordPress还在使用admin这样的用户名,建议你通过后台新建一个管理员账户,然后删除admin这个用户。

 

七月 11th, 2015

从国外的论坛上找到的一份cPanel服务器系统目录及文件的说明,很详细,供使用cPanel服务器的童鞋参考:

 

Apache

/usr/local/apache

+ bin- apache binaries are stored here – httpd, apachectl, apxs

+ conf – configuration files – httpd.conf

+ cgi-bin

+ domlogs – domain log files are stored here

+ htdocs

+ include – header files

+ libexec – shared object (.so) files are stored here – libphp4.so,mod_rewrite.so

+ logs – apache logs – access_log, error_log, suexec_log

+ man – apache manual pages

+ proxy –

+ icons –

 

CPanel

/usr/local/cpanel

+ 3rdparty/ – tools like fantastico, mailman files are located here

+ addons/ – AdvancedGuestBook, phpBB etc

+ base/ – phpmyadmin, squirrelmail, skins, webmail etc

+ bin/ – cpanel binaries

+ cgi-sys/ – cgi files like cgiemail, formmail.cgi, formmail.pl etc

+ logs/ – cpanel access log and error log

+ whostmgr/ – whm related files

 

WHM

/var/cpanel – whm files

+ bandwidth/ – rrd files of domains

+ username.accts – reseller accounts are listed in this files

+ packages – hosting packages are listed here

+ root.accts – root owned domains are listed here

+ suspended – suspended accounts are listed here

+ users/ – cpanel user file – theme, bwlimit, addon, parked, sub-domains all are listed in this files

+ zonetemplates/ – dns zone template files are taken from here

 

Important CPanel/WHM files

/etc/domainips    独立ip                如果共享ip被当成了独立ip删除这里的就可以了

/etc/httpd/conf/httpd.conf – apache configuration file

/etc/exim.conf – mail server configuration file

/etc/named.conf – name server (named) configuration file

/etc/proftpd.conf – proftpd server configuration file

/etc/pure-ftpd.conf – pure-ftpd server configuration file

/etc/valiases/domainname – catchall and forwarders are set here

/etc/vfilters/domainname – email filters are set here

/etc/userdomains – all domains are listed here – addons, parked,subdomains along with their usernames

/etc/localdomains – exim related file – all domains should be listed here to be able to send mails

/var/cpanel/users/username – cpanel user file

/var/cpanel/cpanel.config – cpanel configuration file ( Tweak Settings )

/etc/cpbackup-userskip.conf –

/etc/sysconfig/network – Networking Setup

/etc/hosts –

/var/spool/exim –

/var/spool/cron –

/etc/resolv.conf – Networking Setup Resolver Configuration

/etc/nameserverips – Networking Setup Nameserver IPs ( For resellers to give their nameservers )

/var/cpanel/resellers – For addpkg, etc permissions for resellers.

/etc/chkserv.d – Main >> Service Configuration >> Service Manager

/var/run/chkservd – Main >> Server Status >> Service Status

/var/log/dcpumon – top log process

/root/cpanel3-skel – skel directory. Eg: public_ftp, public_html.

/etc/wwwacct.conf – account creation defaults file in WHM (Basic cPanel/WHMSetup)

/etc/cpupdate.conf – Update Config

/etc/cpbackup.conf – Configure Backup

/etc/clamav.conf – clamav (antivirus configuration file )

/etc/my.cnf – mysql configuration file

/usr/local/Zend/etc/php.ini OR /usr/local/lib/php.ini – php configuration file

/etc/ips – ip addresses on the server (except the shared ip)

/etc/ipaddrpool – ip addresses which are free

/etc/ips.dnsmaster – name server ips

/var/cpanel/Counters – To get the counter of each users.

/var/cpanel/bandwidth – To get bandwith usage of domains

 

PHP

Program :/usr/local/bin/php, /usr/bin/php

ini file: /usr/local/lib/php.ini – apache must be restarted after any change to this file

 

Exim

Conf : /etc/exim.conf – exim main configuration file

/etc/localdomains – list of domains allowed to relay mail

Log : /var/log/exim_mainlog – incoming/outgoing mails are logged here

/var/log/exim_rejectlog – exim rejected mails are reported here

/var/log/exim_paniclog – exim errors are logged here

Mail queue: /var/spool/exim/input

Cpanel script to restart exim – /scripts/restartsrv_exim

Email forwarders and catchall address file – /etc/valiases/domainname.com

Email filters file – /etc/vfilters/domainname.com

POP user authentication file – /home/username/etc/domainname/passwd

catchall inbox – /home/username/mail/inbox

POP user inbox – /home/username/mail/domainname/popusername/inbox

POP user spambox – /home/username/mail/domainname/popusername/spam

Program : /usr/sbin/exim (suid – -rwsr-xr-x 1 root root )

Init Script: /etc/rc.d/init.d/exim

 

MySQL

Program : /usr/bin/mysql

Init Script : /etc/rc.d/init.d/mysql

Conf : /etc/my.cnf, /root/.my.cnf

Data directory – /var/lib/mysql – Where all databases are stored.

Database naming convention – username_dbname (eg: john_sales)

Permissions on databases – drwx 2 mysql mysql

Socket file – /var/lib/mysql/mysql.sock, /tmp/ mysql.sock

 

七月 7th, 2015

很多站长都会选择自己搭建网站,而网站搭建的前期工作就是要把域名备案,和找到一款适合自己网站服务器,那我们怎么可以选择到一款适合自己的网站服务器呢?

 

        新手应该怎么网站服务器?

1.关注硬件、软件等

        1)机房条件:推荐您选择多线路机房,中国电信、联通、教育网等多线接入,这样可以确保您的网站能够在全国范围内能被所有客户快速访问。另外还需要了解的是服务商是单点机房还是多点的云计算机房,通俗些讲就是当服务器租用的整个机房出现问题的时候,是否有替代方案,从确保客户的网站持续能够被访问。

        2)底层架构:当前整个互联网已经步入云计算时代,因此在您选择网站服务器的时候建议侧重选择 云计算架构的服务器。如何甄别哪?首先要查看这家服务上是否具有IDC资格服务证,其次在其官方网站上寻找是否具有:分布式存储、关系型数据库、云引擎等 类似的云计算产品或者服务。因为只有具备了云计算架构才能够提供以上类似的服务。

        3)访问速度、稳定性:这一点还是要围绕在云计算方面,云计算能够有效解决传统物理主机无法解决的大面积宕机、DDOS攻击(一种高发性攻击,最显著的特点就是让您服务器托管的网站无法访问或者访问速度非常慢)。

2.售后服务是否健全

        1)7*24小时免费人工服务:是当前最基本的服务内容。如果光图便宜选择了一些小的虚拟主机服务商,如果出现问题找不到解决人员,将会对您公司网站和业务造成损失。

        2)免费的数据备份服务:当前备份服务器托管最健全的莫过于云计算的同步备份。也就是针对您的网站提供每日备份服务,而不是传统物理虚拟主机的一周或者几周备份一次。并且还可以提供按需的恢复服务。

        3)免费的网站备案服务:网站建设完毕、网站服务器购买完毕、域名解析完毕后,请您千万不要忘 记进行网站备案,而这一步手续是非常繁琐的。但是如果您选择了一家正规的服务商,这一切将变得非常简单,因为有专业的备案服务人员为您提供备案引导服务, 帮助您填写、提交备案文件确保网站备案成功。

         4)免费的网站备案时间:一般情况下,网站备案大都需要几天的审核时间,一些特殊性质的网站,例如:论坛、电商等需要的时间会更长。而正规的IDC服务商都会赠送客户正常购买时间以外的备案时间,也请您留意此服务,以免自己的正常利益受损。

七月 7th, 2015

        摘要:很多时候,我们看到两个除了域名不同,其他完全相同的网站,如果你是一个站长,忽然看到一个和自己网站完全一样的网站,一定会有点恐慌吧。这种情况,我们称之为镜像网站。

百科上这样介绍镜像网站的:镜像网站是指将一个完全相同的网站源程序放到几个服务器,分别有自己独立的URL,在这些服务器上互为镜像网站。它和主站并没有太大差别,或者可算是为主站作的后备措施。有了镜像网站的好处是:如果不能对主站作正常访问(如某个服务器死掉或出了意外),但仍能通过其它服务器正常浏览。相对来说主站在速度等各方面比镜像站点略胜一筹。最常见的当属镜象站点(Mirror Sites)。通过复制网站或网页的内容并分配以不同域名和服务器,以此欺骗搜索引擎对同一站点或同一页面进行多次索引。大多数搜索引擎都提供有能够检测镜象站点的适当的过滤系统,一旦发觉镜象站点,则源站点和镜象站点都会被从索引数据库中删除。

 

 

        发生恶意网站的危害对于新站来说,是比较大的。那我们应该怎么防止别人恶意镜像我们的网站呢?首先得了解一下镜像网站的原理:

镜像网站大概需要以下的几个条件,

       是你的网站使用了独立IP。当然,独立ip对一个网站来说,是好的,可以和 其他网站区分开来,成为镜像网站的条 件之一,只是独立ip的一个小缺点;

        是网站程序位于网站空间根目录。这个不是那么好避免的,如果你的空间支持绑定二级目录的话,还是可以解决的;

         三是你 的网站是新建的网站内容有价值网站。

         网站内容有价值是别人镜像你网站的初衷,当然,也许镜像你网站的是为了好玩或者恐吓你或者是吃饱了撑的。镜像网站选择新建站的原因,一方面是新建的网站搜索引擎没有权重,容易发生乌龙事件;另一方面新建站的站长技术、见识还不够,恶意镜像者认为有机可乘。

        了解了镜像网站的原理之后,我们来谈谈如何自己的网站被恶意镜像。一是更换ip或者空间,这个方法不是很可取,因为你换个ip,别人也很容易找到; 二是改变网站程序的位置,由根目录换到一级目录。这个方法只对那种支持二级目录绑定的空间有用;三是禁止直接ip访问,这个可以联系主机商解决;四是在网 页的head区域加入base标签,对网站的首选域名进行定义;五是网站程序使用绝对地址,这样即便别人镜像了你的网站,打开新页面还是会跳转到你的网站 的;五是向搜索引擎反映。谷歌站长工具中有自定义首选域名的选项,百度也可以提交人工投诉;六是禁止对方的ip访问你的网站,这个方法的作用有限。

        如果在这一切都做了之后,别人还是镜像了你的站点,你应该感到非常高兴,因为你的站别人是太喜欢了。既然别人那么喜欢,真金不怕火炼,坚持更新网站内容,向搜索引擎投诉,多发外部链接引导,让搜索引擎第一时间知道你的站点,这样镜像网站就是在给你做广告了。