XenForo自定义jquery第三方源

Xenforo的后台可以选择几个CDN的jqery源,如google,jquery官司方等,但如果自定义使用国内的,一般要修改一下源码或者模板
通过自定义模板,也可以非常方便的自定义cdn源,且不受XF源文件升级的影响,方便且实用
后台找到模板:

page_container_js_head

最上方添加:

<xen:if is="{$xenOptions.jQuerySource} == 'jquery'">
      <xen:set var="$jQuerySource">//cdn.bootcss.com/jquery/1.11.0/jquery.min.js</xen:set>
</xen:if>

对应的就进入后台控制面板–设置–选项–性能优化,选择使用jquery官方源时,实际调用的是BOOTCSS的源

shuxin

使用RSYNC同步国内/国外的VPS站点内容及数据库

Linux的RSYNC非常好用,简单方便,配合linux的cron来定时同步两台VPS内容。
目前VPS的价格非常便宜,一年30美元左右非常常见。我购买的vultr的新泽西VPS外加50G免费存储空间,使用rysnc,配合linux的crob和数据库的mysqldump,来同步国外的阿里云VPS与国外的VPS,备份数据。
国外的VPS满足了科学上网、建站、备份三个功能。

注意:这个办法不是实时备份,我是以一天为单位,因为mysqldump会占用资源,如果时间间隔太短,会影响VPS的性能。对于实时备份需求,那站点肯定是比较大,也不在乎这点成本了。

1、Mysql数据库备份
对于使用innodb引擎,mysqldump命令如下:

mysqldump -u数据库用户名 -p数据库密码 --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob --single-transaction 数据库名 | gzip > 备份目录/数据库名_$(date +%Y%m%d_%H%M%S).sql.gz

对于使用MYISAM引擎,mysqldump命令如下:

mysqldump -u数据库用户名 -p数据库密码 --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob 数据库名 | gzip > 备份目录/数据库名_$(date +%Y%m%d_%H%M%S).sql.gz

2、RSYNC命令测试
此RSYNC命令运行在目录主机中

rsync -avzhe 'ssh -p SSH端口' 用户名@IP地址:源数据文件目录 目录主机目录

需要注意:
此操作的前提是同步用户名开启了SSH密钥登录,密钥没有密码保护,否则只能用用户名和密码,但是用户名和密码没有办法使用LINUX的计划任务,没有意义

关于SSH密钥登录的设置,可以查看

阿里云服务器ubuntu安全设置

3、设置linux的计划任务
linux当前用户的计划任务编辑命令是crontab -e
需要源VPS中设置mysqldump数据导出的计划任务

30 3 * * * mysqldump -u数据库用户名 -p数据库密码 --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob 数据库名 | gzip > 备份目录/数据库名_$(date +%Y%m%d_%H%M%S).sql.gz

以上命令中是每一天的3点30分,时区是VPS设置的时区的,可以设置不同的时间点

同样的格式,需要在目标主机VPS中运行crontab -e来设置RSYNC的计划任务
每天4点半同步网站源文件

30 4 * * * rsync -avzhe 'ssh -p SSH端口' 用户名@IP地址:源数据文件目录 目录主机目录

每天5点同步网站数据库备份文件,同步完成后删除源文件

0 5 * * * rsync --remove-source-files -avzhe 'ssh -p SSH端口' 用户名@IP地址:源数据文件目录 目录主机目录
Tags: ,
shuxin

WPS for Linux(ubuntu)字体配置(字体缺失解决办法)

启动WPS for Linux后,出现提示”系统缺失字体” 。

出现提示的原因是因为WPS for Linux没有自带windows的字体,只要在Linux系统中加载字体即可。

具体操作步骤如下:

1. 下载缺失的字体文件,然后复制到Linux系统中的/usr/share/fonts文件夹中。

本站下载:symbol fonts for wps (28)

国外下载地址:https://www.dropbox.com/s/lfy4hvq95ilwyw5/wps_symbol_fonts.zip

(上述数据来源网络,侵删)

下载完成后,解压并进入目录中,继续执行:

sudo cp * /usr/share/fonts

2. 执行以下命令,生成字体的索引信息:

sudo mkfontscale

sudo mkfontdir

3. 运行fc-cache命令更新字体缓存。

sudo fc-cache

4. 重启wps即可,字体缺失的提示不再出现。

转自 http://www.cnblogs.com/liangml/p/5969404.html

Tags: ,
shuxin

ubutnu 16.04 lts 启用IBUS以及五笔字型

ubuntu 16.04安装后启用了fcitx,这个输入法比较老也比较知名,但是反应比较慢,有点老态的感觉,所以切换为ibus,然后添加五笔输入法,感谢效果很好

首先进入选项-语言支持,在下面“键盘输入法系统”中,切换选择为IBUS,然后关闭,重新启动系统

不重启系统,就需所杀死fctix,重启ibus-daemon

im-switch -s ibus

系统启动进入后,发现ibus只是默认英文输入,没有中文输入法,还需要再次添加英文输入法

打开终端,使用 apt-get安装

sudo apt-get install ibus-pinyin ibus-table-wubi

安装后再次重启系统,进入选项-文本输入,在使用的输入源下面,点击+号,输入 ibus,就会显示拼音、极点五笔、海峰五笔,添加即可

Tags: ,
shuxin

ubuntu 14.04 安装Nginx 1.10.2,编译安装php5.2.17过程

以前在发表过一个编译PHP5.2.17的流程,写得比较乱,这次下单了vultr的VPS,特别编译了PHP5.2.17,使用Zend Optimizer v3.3.9,过程命令如下

安装最新版的NGINX

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
sudo nano /etc/apt/sources.list

最后面添加NGINX源

	deb http://nginx.org/packages/ubuntu/ trusty nginx
	deb-src http://nginx.org/packages/ubuntu/ trusty nginx

安装nginx

sudo apt-get update
sudo apt-get install nginx

安装相关的库文件

sudo apt-get install -y git autoconf lynx wget build-essential libxml2-dev libssl-dev libbz2-dev libcurl4-openssl-dev  libpng12-dev libfreetype6-dev libxpm-dev libmcrypt-dev libmhash-dev libmysqlclient-dev libjpeg62-dev freetds-dev libjson-c-dev re2c

配置编译环境

sudo nano /etc/environment

添加

	LANG=en_US.UTF-8
	LC_ALL=en_US.UTF-8

重启

sudo reboot

下载php5.2.17

sudo mkdir /opt/source
cd /opt/source
sudo wget -c http://museum.php.net/php5/php-5.2.17.tar.bz2
sudo tar xvjf php-5.2.17.tar.bz2
cd /opt/source/php-5.2.17

添加补丁

SimpleXML patch for PHP 5.2.17

sudo curl -o php-5.2.17.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt
sudo patch -p0 -b < php-5.2.17.patch

PHP-FPM patch for PHP 5.2.17

sudo wget -c http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
sudo gunzip php-5.2.17-fpm-0.5.14.diff.gz
sudo patch -p1 < php-5.2.17-fpm-0.5.14.diff

OpenSSL Patch for PHP 5.2.17

sudo wget -c -t 3 -O ./debian_patches_disable_SSLv2_for_openssl_1_0_0.patch https://bugs.php.net/patch-display.php\?bug_id\=54736\&patch\=debian_patches_disable_SSLv2_for_openssl_1_0_0.patch\&revision=1305414559\&download\=1
sudo patch -p1 -b < debian_patches_disable_SSLv2_for_openssl_1_0_0.patch

Freetype support for PHP 5.2.17(仅适用于64位,32位系统不需要)

sudo mkdir -pv /usr/include/freetype2/freetype
sudo ln -sf /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h

编译安装PHP5.2.17

sudo ./configure -enable-cli -prefix=/opt/source/php-5.2.17 -with-pear -with-iconv -with-curl -with-mysqli -with-mysql -with-libdir=/lib/x86_64-linux-gnu -enable-mbstring -enable-exif -with-gd -with-jpeg-dir -with-freetype-dir -with-zlib -with-zlib-dir -with-gettext -with-mhash -enable-ftp -enable-bcmath -with-mime-magic -with-pdo-mysql -with-openssl -with-mcrypt -enable-sockets -enable-soap -enable-calendar -enable-fastcgi -enable-force-cgi-redirect -enable-fpm
sudo make
sudo make install
sudo cp /opt/source/php-5.2.17/php.ini-dist /opt/source/php-5.2.17/lib/php.ini 

加PHP.INI,运行查看PHP版本

bin/php-cgi -v 

返回即表示安装成功

PHP 5.2.17 (cgi-fcgi) (built: Jun 15 2017 07:54:11)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
    with Zend Optimizer v3.3.9, Copyright (c) 1998-2009, by Zend Technologies

配置FPM

sudo cp /opt/source/php-5.2.17/sapi/cgi/fpm/init.d/php-fpm.in /etc/init.d/php-fpm5217
sudo chmod +x /etc/init.d/php-fpm5217
sudo nano /etc/init.d/php-fpm5217 
	php_fpm_BIN=/opt/source/php-5.2.17/bin/php-cgi
	php_fpm_CONF=/opt/source/php-5.2.17/etc/php-fpm.conf
	php_fpm_PID=/opt/source/php-5.2.17/logs/php-fpm.pid 
sudo nano /opt/source/php-5.2.17/etc/php-fpm.conf 
		127.0.0.1:9001
		www-data
		www-data
		Unix user of processes
		www-data
		Unix group of processes
		www-data

启动php-fpm进程

sudo service php-fpm5217 start

添加php-fpm自启动

sudo update-rc.d php-fpm5217 defaults

php5.2.17安装完成

请注意上面没有安装xcache,可以编译添加即可

shuxin

php5.2.17编译安装后添加XCACHE和OPENSSL支持

头一次编译安装php5.2.17,结果XCACHE和openssL没有添加,折腾了好久,终于成功,补上过程,方便查询:
系统是ubuntu 14.04,php5.2.17

请注意,我安装的php目录是/opt/source/php-5.2.17
Xcache编请注意,我安装的php目录是/opt/source/php-5.2.17译安装:
下载xcache

wget https://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
tar zxvf xcache-3.2.0.tar.gz
cd xcache-3.2.0.tar.gzsudo /opt/source/php-5.2.17/bin/phpize
sudo ./configure --prefix=/opt/source/php-5.2.17/lib/php/extensions --with-php-config=/opt/source/php-5.2.17/bin/php-config --enable-xcache  
sudo make  
sudo make install

会生成xcache.so动态扩展文件,此文件的位置是
/opt/source/php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613
编辑PHP.INI,载入这个动态扩展就可以了,需要将下载的源码包中的xcache.ini文件的内容添加到php.ini文件:
重新启动PHP-FPM即可:
sudo service php-fpm5217 restart
在源码包中还有htdocs目录,这个是WEB管理界面,可以将其拷贝到WEB目录中

安装OPENSSL

php5.2.17源目录ext目录中有OPENSLL的源码,只是在编译时忘记添加了,所以也是使用phpize来编译添加即可
请注意,我安装的php目录是/opt/source/php-5.2.17

cd /opt/source/php-5.2.17/ext/openssl
sudo /opt/source/php-5.2.17/bin/phpize

结果提示没有找到config.m4文件,源目录中的文件名不一致:

sudo cp config0.m4 config.m4

编译openssl

sudo /opt/source/php-5.2.17/bin/phpize
sudo ./configure --prefix=/opt/source/php-5.2.17/lib/php/extensions --with-php-config=/opt/source/php-5.2.17/bin/php-config --with-openssl
sudo make
sudo make install 

生成的openssl.so动态扩展文件还是位于/opt/source/php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613
在php.ini文件中添加 openssl扩展,重启php-fpm,就可以看到php-info中已经添加SSL支持:


OpenSSL support enabled
OpenSSL Version OpenSSL 1.0.1f 6 Jan 2014

shuxin

ubuntu 14.04安装PHP7.0的简单办法

PHP7.0的效率非常高,兼容性也很好,wordpress等一些比较常见的系统都可以完美的支持PHP7,我论坛使用php5.5时,页面的生成时间是0.15秒左右,更新使用php7.0以后,页面的生成时间只在0.05~0.07秒,效率提高好多,内存占用也低了不少
因为我以前是用的PPA来安装的PHP,在UBUNTU14.04中,也要使用PPA来安装,当然有时间可以自己编译,我闲编译太烦,apt-get安装方便,安装模块也是随手就安装,非常方便,2分钟就可以升级完:
如果以前安装过PPA的PHP,就可以省掉下面的过程,否则需要安装才可以找得到PHP7的源:
sudo add-apt-repository ppa:ondrej/php
更新源:
sudo apt-get update
停用PHP5-FPM:
sudo service php5-fpm stop
移除原来的PHP5:(我的站点使用的是NGINX-FPM)
sudo apt-get remove --purge php5-fpm php5-cgi php5-mysql php5-curl php5-mcrypt php-pear php5-gd php5-xcache
sudo apt-get autoremove

安装PHP7
sudo apt-get install php7.0 php7.0-cli php7.0-fpm php7.0-gd php7.0-json php7.0-mysql php7.0-readline php7.0-xml php7.0-mbstring php7.0-curl
安装后自动启动
修改NGINX的配置文件,PHP解析部分更改为:
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

配置文件目录也由/etc/php5更改为/etc/php/7.0

shuxin

关于wordpress中使用模板的更新防止丢失修改

一些自定义的模板如果更新后会导致已有的修改丢失,而wordpress的定新功能,有时就会有意无意的一次性自动更新模板,所以为了防止出现问题,就需要改自定义的模板修改一些,主要是修改style.css文件,将模板的名称和版本等改一下,特别是版本号,我原有的版本是1.20,新的版本是1.41,于我是将版本号改成了2.00,更新提示即消失:
/*
Theme Name: Your Theme Name
Author: Name
Author URI: Your URL
Description: This theme is...
Version: 2.00
*/

Tags:
shuxin

nginx总是产生”Primary script unknown”错误的解决办法

刚刚把NGINX升级到1.10,由于以前用的是PPA的源,这次换成了NGINX的官方源,升级后配置文件也重新配置,结果总是有错误记录产生,主要的内容是:
primary script unknown while reading response header from upstream
参考网站的一些意见,更改:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
发现解决不了问题
这个问题主要是由于NGINX将所有PHP文件交由PHP-FPM来处理,如果PHP文件不存在,只是网址访问有带PHP结尾,都会交给PHP-FPM,PHP-FPM收到不存在的文件处理指令,就抛出了错误,结合PPA原来安装的配置文件,修改如下:
location ~ \.php$ {
# regex to split $uri to $fastcgi_script_name and $fastcgi_path
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# Check that the PHP script exists before passing it
try_files $fastcgi_script_name =404;
# Bypass the fact that try_files resets $fastcgi_path_info
# see: http://trac.nginx.org/nginx/ticket/321
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}

问题解决

之所以没有上传PPA原来的配置文件是由于PPA安装的与NGINX官方安装的文件位置和目录有点区别,官方的比较简单,这样也便于以后升级

其实在升级时,直接使用原有PPA安装的配置文件即可

Tags:
shuxin

ubuntu环境下更改mysql的默认数据库目录

目前的站点使用了阿里云,数据盘和系统盘分开,为了方便以后管理,参考国外的教程将数据库目录由系统盘迁移到了数据盘,过程非常简单,不过与国内一些网站上面的内容不一样:

第一步 移动MySQL数据库目录

查看当前的目录

$mysql -u root -p

以ROOT目录登录Mysql,查看当前数据库目录:

mysql> select @@datadir;

输出

+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)

关闭mysql进程
$sudo service mysql stop
复制mysql数据库文件目录及权限(使用rsync)
$sudo rsync -av /var/lib/mysql /mnt
更改默认的mysql目录名
$sudo mv /var/lib/mysql /var/lib/mysql.bak

第二步 修改MySQL配置文件

$sudo vi /etc/mysql/my.cnf
修改“datadir=”这行的内容
保存退出

第三步 修改AppArmor控制规则

$sudo vi /etc/apparmor.d/tunables/alias

在文件下方,添加或者修改一行:
alias /var/lib/mysql/ -> /mnt/mysql/,
保存退出

重启aparmor
$sudo service apparmor restart

第四步 重启mysql
重启前,需要重建一个默认的空目录,否则mysql会输入错误到记录文件中
sudo mkdir /var/lib/mysql/mysql -p
重启mysql
sudo service mysql start

重新进入mysql,使用select @@datadir;查看生效的配置,输出

+-----------------+
| @@datadir       |
+-----------------+
| /mnt/mysql/ |
+-----------------+
1 row in set (0.00 sec)

配置完成
如果没有问题,就可以删除原来的数据目录了

Tags: ,
shuxin