Home » Archives for 六月 2016
2016年6月27日星期一
ShadowsocksR 多用户版服务端安装教程(SS-Panel后端)
06:52 寡人的吐槽胜地
注:多用户版需配合ss-panel等前端使用,查看SS-Panel教程。
此教程为多用户版,适合站长。如果你是个人使用,请查看单用户版教程:单用户版教程
以下命令均以root用户执行,或sudo方式执行。
以下部分内容可能需要VIM操作,不懂的可以看一下这个VIM小白教程。
首先下载Putty,然后输入IP和端口(默认22)后点击Open连接VPS。
然后登陆VPS,第一次登陆会提示你一个信息框,点是(Yes)就行了。
账号都是root(小写),密码一般在控制台有生成或更改的地方。输入密码的时候不会显示出来,但是实际是在输入的。
然后就可以输入下面的代码,一步一步来!一行一行来!
Centos系统执行这个:
Ubuntu/Debian系统执行这个(推荐这两个系统,对新手友好):
如果要使用 salsa20 和 chacha20 算法,请安装 libsodium(这个模块在不断更新可能本文章里的不是最新版,在这里看最新版本,并替换下面代码的版本号) :
如果曾经安装过旧版本,亦可重复用以上步骤更新到最新版,仅1.0.4或以上版本支持chacha20-ietf
执行完毕后此目录会新建一个shadowsocks目录,其中根目录的是多用户版(即数据库版),子目录中的是单用户版。
根目录即 /shadowsocks 文件夹
子目录即 /shadowsocks/shadowsocks 文件夹
进入根目录:
shadowsocks目录内,打开文件
文件config.json复制一份到user-config.json,然后编辑:
"method":"aes-256-cfb", //修改成您要的加密方式的名称
"protocol": "auth_sha1_compatible", //修改成您要的协议插件名称
"obfs": "tls1.0_session_auth_compatible", //修改成您要的混淆插件名称
如果需要修改协议插件和混淆插件,请根据单用户版服务端页面的选项对照说明修改参数。
默认是兼容模式,原版也可以用,SSR开启插件也可以用!
ShadowsocksR多用户板服务端默认开启UDP的
进入根目录:
运行:
这句运行代码主要用于调试,关闭ssh后ss后端自动关闭,所以正式使用请使用下面的脚本运行!如果需要停止请按
这时可查看有运行情况,检查有没有错误。如果服务端没有错误,而连接不上,需要检查iptables或firewall(centos7)的防火墙配置
脚本位于./shadowsocks目录。
增加脚本可执行权限(执行一次就好)
后台运行 但不记录日志(ssh窗口关闭后也继续运行)
后台运行 且 记录日志(ssh窗口关闭后也继续运行)
查看 SS日志(用 logrun.sh 脚本启动才会打开日志)
停止运行
注:通过脚本运行默认日志会保存在根目录的ssserver.log,可手动查看。
如果日志文件太大,需要清理,可以用下面这个命令 清空 日志文件。
如果代码有更新可用本命令更新代码
进入shadowsocks目录
执行
成功后重启ss服务
网站建好了,但是没有人气怎么办?去我的Shadowsocks网站页面提交你的网站信息吧!
一些人可能需要开机启动,我就一起写上吧。
首先设置开机启动文件的权限,并打开该文件。
Centos系统:
Ubuntu/Debian系统:
然后在
然后按
如果Shadowsocks服务端没有提示错误,或者提示IP被占用,并且使用./stop.sh和./run.sh脚本重启后,依旧无法连接Shadowsocks,请重启当前VPS(这个问题我猜测可能是./stop脚本并不能完全关闭Shadowsocks所有连接,导致无法解决问题。正好Shadowsocks服务端默认随机启动,所以重启VPS可以解决这个问题。如果你知道原因或者其他更好的解决办法请在下面留言)。
经过我多次实验,发现这个问题都是出现在Shadowsocks后端和数据库不在一个VPS上,这就说明了是数据库所在VPS的错误,先开放数据库的远程连接“%”,这个上面服务端配置里说的有方法。然后再打开你iptables防火墙配置文件(多半问题都是出现在这里,3306数据库端口没有对外开放)。
首先打开防火墙规则文件.
删掉原来的3306规则(ACCEPT和DROP),然后加上这个规则。
然后重载iptables配置文件
首先打开防火墙规则文件。
删掉原来的3306规则(ACCEPT和DROP),然后加上这个规则。
然后重启iptables
服务端运行提示/日志正常,客户端填写也正确,但是依然无法连接!
这种情况一般都是防火墙搞的鬼(Debian/Ubuntu基本排除,多出现在Centos系统)。
看一下有没有什么东西阻止了ss端口,或者说是没有允许/开放ss的端口。
如果你看不明白,你可以先关闭防火墙,试一试是不是防火墙的问题导致的无法连接。
如果关闭后SS链接正常,那就是防火墙的问题,你可以随后慢慢排除防火墙规则。也可以直接 iptables -F 清空防火墙,但是我不建议这么做,一不小心就需要重装服务器了。
如果你的服务端python版本在2.6以下,那么必须更新python到2.6.x或2.7.x版本
如果运行一段时间后,你发现服务器无法连接,同时ssh连上去后,执行
显示的数值很大(超过50是严重不正常),那么请修改服务器的最大连接数,如果是ubuntu/centos均可修改
/etc/security/limits.conf
添加两行:
然后重启机器生效(详细的看这个Linux上的shadowsocks服务端优化方法)
如果还是出现大量的too many open files错误,可以通过执行以下命令确定占用大量文件数的进程:
转载自ShadowsocksR官方Github文档:https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup(manyuser)
这篇文章主要说明ShadowsocksR后端的安装教程,这属于后端教程,前端教程请看这里,新手扩展篇请看这里!(教程都是配套的,建议放在一起看!)
如果你看不太懂,那么你需要看这个:SS-Panel 前后端详细演示安装 视频教程
SS-Panel教程特别声明!!!!!!!!!!!!!!!!!!!
此教程为多用户版,适合站长。如果你是个人使用,请查看单用户版教程:单用户版教程
以下命令均以root用户执行,或sudo方式执行。
以下部分内容可能需要VIM操作,不懂的可以看一下这个VIM小白教程。
说明一下新手步骤,安装依赖 → 下载源码 → 修改数据库配置 → 设置脚本权限并运行脚本!
没了,就这么简单,不要想的那么复杂。
首先下载Putty,然后输入IP和端口(默认22)后点击Open连接VPS。
然后登陆VPS,第一次登陆会提示你一个信息框,点是(Yes)就行了。
账号都是root(小写),密码一般在控制台有生成或更改的地方。输入密码的时候不会显示出来,但是实际是在输入的。
然后就可以输入下面的代码,一步一步来!一行一行来!
基本库安装
Centos系统执行这个:
yum install python-setuptools
easy_install pip
yum install git
Ubuntu/Debian系统执行这个(推荐这两个系统,对新手友好):
apt-get update
apt-get install python-pip
apt-get install git
如果要使用 salsa20 和 chacha20 算法,请安装 libsodium(这个模块在不断更新可能本文章里的不是最新版,在这里看最新版本,并替换下面代码的版本号) :
apt-get install build-essential
wget https://github.com/jedisct1/libsodium/releases/download/1.0.10/libsodium-1.0.10.tar.gz
tar xf libsodium-1.0.10.tar.gz && cd libsodium-1.0.10
./configure && make -j2 && make install
ldconfig
如果曾经安装过旧版本,亦可重复用以上步骤更新到最新版,仅1.0.4或以上版本支持chacha20-ietf
安装cymysql
pip install cymysql
获取源代码
git clone -b manyuser https://github.com/breakwa11/shadowsocks.git
执行完毕后此目录会新建一个shadowsocks目录,其中根目录的是多用户版(即数据库版),子目录中的是单用户版。
根目录即 /shadowsocks 文件夹
子目录即 /shadowsocks/shadowsocks 文件夹
服务端配置
进入根目录:
cd shadowsocks
cp mysql.json usermysql.json
shadowsocks目录内,打开文件
vi usermysql.json
:"host": "127.0.0.1", //前端mysql域名/IP
"port": 3306, //mysql端口
"user": "ss", //mysql用户名
"password": "pass", //mysql密码
"db": "shadowsocks", //数据库名
注意:这里的数据库信息除了 host ,其他的必须和SS-Panel完全一致,服务端启动的时候会读取数据库信息!至于 host ,如果你的服务端和前端(SS-Panel)在一个VPS上,那就写localhost或者127.0.0.1,如果不在一起,请写前端(SS-Panel)所在VPS的ip或者域名!
还有一条要注意的,如果服务端和前端(SS-Panel)不在一个VPS上,那么数据库链接就属于远程链接了,这时候需要开启数据库用户的远程链接功能!
开启方法:在数据库——用户——编辑权限——登录信息中修改Host为任意主机“%”
配置文件config.json:
文件config.json复制一份到user-config.json,然后编辑:
cp config.json user-config.json
vi user-config.json
"method":"aes-256-cfb", //修改成您要的加密方式的名称
"protocol": "auth_sha1_compatible", //修改成您要的协议插件名称
"obfs": "tls1.0_session_auth_compatible", //修改成您要的混淆插件名称
如果需要修改协议插件和混淆插件,请根据单用户版服务端页面的选项对照说明修改参数。
默认是兼容模式,原版也可以用,SSR开启插件也可以用!
id //用户id数据库字段说明:
email //用户邮箱
pass //用户密码
passwd //ss密码
t //最后使用的时间
u //已上传流量
d //已下载流量
transfer_enable //可用流量(总量)
port //ss端口
switch //保留字段
enable //启用或禁用ss帐号(1启用,0禁用)
type //保留字段
last_get_gift_time //保留字段
last_rest_pass_time //保留字段
ShadowsocksR多用户板服务端默认开启UDP的
服务端运行与停止
进入根目录:
cd shadowsocks
运行:
python server.py
这句运行代码主要用于调试,关闭ssh后ss后端自动关闭,所以正式使用请使用下面的脚本运行!如果需要停止请按
Ctrl+C
键终止程序。这时可查看有运行情况,检查有没有错误。如果服务端没有错误,而连接不上,需要检查iptables或firewall(centos7)的防火墙配置
通过脚本运行
脚本位于./shadowsocks目录。
cd ./shadowsocks
增加脚本可执行权限(执行一次就好)
chmod +x *.sh
后台运行 但不记录日志(ssh窗口关闭后也继续运行)
./run.sh
后台运行 且 记录日志(ssh窗口关闭后也继续运行)
./logrun.sh
查看 SS日志(用 logrun.sh 脚本启动才会打开日志)
./tail.sh
停止运行
./stop.sh
注:通过脚本运行默认日志会保存在根目录的ssserver.log,可手动查看。
如果日志文件太大,需要清理,可以用下面这个命令 清空 日志文件。
cat /dev/null > ssserver.log
更新源代码
如果代码有更新可用本命令更新代码
进入shadowsocks目录
cd shadowsocks
执行
git pull
成功后重启ss服务
网站建好了,但是没有人气怎么办?去我的Shadowsocks网站页面提交你的网站信息吧!
开机启动
一些人可能需要开机启动,我就一起写上吧。
首先设置开机启动文件的权限,并打开该文件。
Centos系统:
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
Ubuntu/Debian系统:
chmod +x /etc/rc.local
vi /etc/rc.local
然后在
exit 0
这一句代码(只有ubuntu/debian有这个 exit 0)的前面加上 下面这句代码(如果你的Shadowsocks文件夹不在root目录下,请自行修改路径)。sudo bash /root/shadowsocks/run.sh
然后按
ESC键
退出vi编辑模式,然后输入 :wq
保存并退出该文件,就完成了。其它异常
无法连接Shadowsocks服务端,并且没提示错误或者提示IP被占用
如果Shadowsocks服务端没有提示错误,或者提示IP被占用,并且使用./stop.sh和./run.sh脚本重启后,依旧无法连接Shadowsocks,请重启当前VPS(这个问题我猜测可能是./stop脚本并不能完全关闭Shadowsocks所有连接,导致无法解决问题。正好Shadowsocks服务端默认随机启动,所以重启VPS可以解决这个问题。如果你知道原因或者其他更好的解决办法请在下面留言)。
Shadowsocks无法连接到数据库!MYSQL:2003
经过我多次实验,发现这个问题都是出现在Shadowsocks后端和数据库不在一个VPS上,这就说明了是数据库所在VPS的错误,先开放数据库的远程连接“%”,这个上面服务端配置里说的有方法。然后再打开你iptables防火墙配置文件(多半问题都是出现在这里,3306数据库端口没有对外开放)。
Debian7的方法(其他的系统请谷歌iptables防火墙规则文件位置)
首先打开防火墙规则文件.
vi /etc/iptables.rules
删掉原来的3306规则(ACCEPT和DROP),然后加上这个规则。
-A INPUT -P tcp -m tcp --dprot 3306 -j ACCEPT
然后重载iptables配置文件
iptables-restore < /etc/iptables.rules
Centos6
首先打开防火墙规则文件。
vi /etc/sysconfig/iptables
删掉原来的3306规则(ACCEPT和DROP),然后加上这个规则。
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
然后重启iptables
/etc/init.d/iptables restart
服务端运行提示/日志正常,客户端填写也正确,但是依然无法连接!
这种情况一般都是防火墙搞的鬼(Debian/Ubuntu基本排除,多出现在Centos系统)。
iptables -L
看一下有没有什么东西阻止了ss端口,或者说是没有允许/开放ss的端口。
如果你看不明白,你可以先关闭防火墙,试一试是不是防火墙的问题导致的无法连接。
/etc/init.d/iptables stop
如果关闭后SS链接正常,那就是防火墙的问题,你可以随后慢慢排除防火墙规则。也可以直接 iptables -F 清空防火墙,但是我不建议这么做,一不小心就需要重装服务器了。
如果你的服务端python版本在2.6以下,那么必须更新python到2.6.x或2.7.x版本
如果运行一段时间后,你发现服务器无法连接,同时ssh连上去后,执行
netstat -ltnap | grep -c CLOSE_WAIT
显示的数值很大(超过50是严重不正常),那么请修改服务器的最大连接数,如果是ubuntu/centos均可修改
/etc/security/limits.conf
添加两行:
soft nofile 32768
hard nofile 131072
然后重启机器生效(详细的看这个Linux上的shadowsocks服务端优化方法)
如果还是出现大量的too many open files错误,可以通过执行以下命令确定占用大量文件数的进程:
lsof -n >|awk '{print $2}'|sort|uniq -c |sort -nr|more
转载自ShadowsocksR官方Github文档:https://github.com/breakwa11/shadowsocks-rss/wiki/Server-Setup(manyuser)
2016年6月23日星期四
windows环境下安装ioncube
10:03 寡人的吐槽胜地
ionCube是一款PHP加密的工具。由于PHP代码属于开源WEB代码,不同用户很容易看到使用PHP语言所篇写的源程序,对源程序进行分析,很容易的得到数据连 接,处理流程,甚至服务器名等。因此为了我们的Web数据等信息的安全。我们就必须对PHP进行加密。
ionCube是一款PHP加密的工具。由于PHP代码属于开源WEB代码,不同用户很容易看到使用PHP语言所篇写的源程序,对源程序进行分析,很容易的得到数据连 接,处理流程,甚至服务器名等。因此为了我们的Web数据等信息的安全。我们就必须对PHP进行加密。本文讲解的是在windows平台下如何安装ioncube php加密工具及配置方法.感兴趣的同学参考下.
ioncube与xcache类似的,ioncube是为数不多能够在windows+apache环境使用的php优化工具之一。其作用与大名鼎鼎的Zend Optimizer大抵相似,但是如之前WAMP安装后对php提速优化一文中介绍到的,Zend Optimizer只支持到php5.2.x,而新的Zend Guard Loader虽然支持php5.3.x,但是只能在windows+IIS中使用。
安装方法如下:
1. 下载ioncube_loaders_win_vc9_x86.zip 官网:http://www.ioncube.com/
2. 将压缩包内的ioncube_loader_win_5.3.dll拷贝至wamp\bin\php\php5.3.8\zend_ext目录下
3. 在wamp\bin\apache\Apache2.2.21\bin\php.ini中添加
zend_extension = “d:/dev/wamp/bin/php/php5.3.8/zend_ext/ioncube_loader_win_5.3.dll”
注意: 如果使用xdebug的话,ioncube_loader.dll的zend_extension声明要放在xdebug的zend_extension之前
4. web server
5. 将压缩包内的loader-wizard.php拷贝至wamp\www目录下
在浏览器中键入http://yourdomain/loader-wizard.php,cache会自动安装,安装完成后给出成功信息
ionCube是一款PHP加密的工具。由于PHP代码属于开源WEB代码,不同用户很容易看到使用PHP语言所篇写的源程序,对源程序进行分析,很容易的得到数据连 接,处理流程,甚至服务器名等。因此为了我们的Web数据等信息的安全。我们就必须对PHP进行加密。本文讲解的是在windows平台下如何安装ioncube php加密工具及配置方法.感兴趣的同学参考下.
ioncube与xcache类似的,ioncube是为数不多能够在windows+apache环境使用的php优化工具之一。其作用与大名鼎鼎的Zend Optimizer大抵相似,但是如之前WAMP安装后对php提速优化一文中介绍到的,Zend Optimizer只支持到php5.2.x,而新的Zend Guard Loader虽然支持php5.3.x,但是只能在windows+IIS中使用。
安装方法如下:
1. 下载ioncube_loaders_win_vc9_x86.zip 官网:http://www.ioncube.com/
2. 将压缩包内的ioncube_loader_win_5.3.dll拷贝至wamp\bin\php\php5.3.8\zend_ext目录下
3. 在wamp\bin\apache\Apache2.2.21\bin\php.ini中添加
zend_extension = “d:/dev/wamp/bin/php/php5.3.8/zend_ext/ioncube_loader_win_5.3.dll”
注意: 如果使用xdebug的话,ioncube_loader.dll的zend_extension声明要放在xdebug的zend_extension之前
4. web server
5. 将压缩包内的loader-wizard.php拷贝至wamp\www目录下
在浏览器中键入http://yourdomain/loader-wizard.php,cache会自动安装,安装完成后给出成功信息
如何知道手机屏幕的CSS像素宽度?
08:45 寡人的吐槽胜地
随着移动设备浏览量的迅速增长,自适应网页设计变得越来越重要。Web程序员在开发移动端页面时时常会遇到这样的问题,手机设备商声明的屏幕像素宽度尺寸和网页开发时使用的CSS像素宽度不一致,为什么会出现这种情况呢?
设备像素设是物理概念,指的是设备中使用的物理像素。
比如iPhone 5的分辨率640 x 1136px。
CSS像素是Web编程的概念,指的是CSS样式代码中使用的逻辑像素。
在CSS规范中,长度单位可以分为两类,绝对(absolute)单位以及相对(relative)单位。px是一个相对单位,设备像素(device pixel)是绝对单位。
比如iPhone 5使用的是Retina视网膜屏幕,使用2px x 2px的 device pixel 代表 1px x 1px 的 css pixel,所以设备像素数为640 x 1136px,而CSS逻辑像素数为320 x 568px。
这就需要要谈到每英寸像素(pixel per inch)和设备像素比(device pixel ratio)。
ppi,表示每英寸所拥有的像素(pixel)数目,数值越高,代表显示屏能够以越高的密度显示图像。ppi的计算方式可以参考维基百科每英寸像素
以上计算出ppi是为了得到密度分界,获得默认缩放比例,即设备像素比。
由上图可知,ppi在120-160之间的手机被归为低密度手机,160-240被归为中密度,240-320被归为高密度,320以上被归为超高密度(Apple给了它一个高大上的名字——Retina)。
获得设备像素比后,便可得知设备像素与CSS像素之间的比例。当这个比率为1:1时,使用1个设备像素显示1个CSS像素。当这个比率为2:1时,使用4个设备像素显示1个CSS像素,当这个比率为3:1时,使用9(3*3)个设备像素显示1个CSS像素。
一般美工按照设备像素(device pixel)为单位制作设计稿。前端工程序员,参照相关的设备像素比(device pixel ratio),进行换算以及编码。
此像素非彼像素
设备像素(device pixel):
设备像素设是物理概念,指的是设备中使用的物理像素。
比如iPhone 5的分辨率640 x 1136px。
CSS像素(css pixel):
CSS像素是Web编程的概念,指的是CSS样式代码中使用的逻辑像素。
在CSS规范中,长度单位可以分为两类,绝对(absolute)单位以及相对(relative)单位。px是一个相对单位,设备像素(device pixel)是绝对单位。
比如iPhone 5使用的是Retina视网膜屏幕,使用2px x 2px的 device pixel 代表 1px x 1px 的 css pixel,所以设备像素数为640 x 1136px,而CSS逻辑像素数为320 x 568px。
设备像素与CSS像素之间的换算是如何产生的呢?
这就需要要谈到每英寸像素(pixel per inch)和设备像素比(device pixel ratio)。
每英寸像素(pixel per inch):
ppi,表示每英寸所拥有的像素(pixel)数目,数值越高,代表显示屏能够以越高的密度显示图像。ppi的计算方式可以参考维基百科每英寸像素
设备像素比(device pixel ratio):
以上计算出ppi是为了得到密度分界,获得默认缩放比例,即设备像素比。
由上图可知,ppi在120-160之间的手机被归为低密度手机,160-240被归为中密度,240-320被归为高密度,320以上被归为超高密度(Apple给了它一个高大上的名字——Retina)。
获得设备像素比后,便可得知设备像素与CSS像素之间的比例。当这个比率为1:1时,使用1个设备像素显示1个CSS像素。当这个比率为2:1时,使用4个设备像素显示1个CSS像素,当这个比率为3:1时,使用9(3*3)个设备像素显示1个CSS像素。
美工和WEB前端开发人员之间如何协同:
一般美工按照设备像素(device pixel)为单位制作设计稿。前端工程序员,参照相关的设备像素比(device pixel ratio),进行换算以及编码。
2016年6月6日星期一
win10专业版激活秘籍
09:06 寡人的吐槽胜地
免费升级win10的时间还剩下多少天???
下面给大家带来一道方法吧。
如何激活win10专业版
首先,你要确认你的版本信息是高于10586.36
怎样查询?
win+r 输入 winver
然后去设置界面输入密钥 KNXB4-F82M9-TB3X9-P9PQ6-RRG6Y,错误代码060
继续输入win7/8/8.1的mak密钥在线激活(必须有在线次数的密钥)
激活后
最后更改产品密钥 VK7JG-NPHTM-C97JM-9MPGT-3V66T,取得数字权利。
当然你也可以用我们提供的KMS激活
下面给大家带来一道方法吧。
如何激活win10专业版
首先,你要确认你的版本信息是高于10586.36
怎样查询?
win+r 输入 winver
然后去设置界面输入密钥 KNXB4-F82M9-TB3X9-P9PQ6-RRG6Y,错误代码060
继续输入win7/8/8.1的mak密钥在线激活(必须有在线次数的密钥)
激活后
最后更改产品密钥 VK7JG-NPHTM-C97JM-9MPGT-3V66T,取得数字权利。
当然你也可以用我们提供的KMS激活
HTML页面跳转的5种方法
08:35 寡人的吐槽胜地
下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同目录下的hello.html(根据自己需要自行修改)文件。
1) html的实现
优点:灵活,可以结合更多的其他功能
缺点:受到不同浏览器的影响
3) 结合了倒数的javascript实现(IE
1) html的实现
<head>
<!-- 以下方式只是刷新不跳转到其他页面 -->
<meta http-equiv="refresh" content="10">
<!-- 以下方式定时转到其他页面 -->
<meta http-equiv="refresh" content="5;url=hello.html">
</head>
优点:简单
缺点:Struts Tiles中无法使用
缺点:Struts Tiles中无法使用
2) javascript的实现
<script language="javascript" type="text/javascript">
// 以下方式直接跳转
window.location.href='hello.html';
// 以下方式定时跳转
setTimeout("javascript:location.href='hello.html'", 5000);
</script>
优点:灵活,可以结合更多的其他功能
缺点:受到不同浏览器的影响
3) 结合了倒数的javascript实现(IE
<span id="totalSecond">5</span>
<script language="javascript" type="text/javascript">
var second = totalSecond.innerText;
setInterval("redirect()", 1000);
function redirect(){
totalSecond.innerText=--second;
if(second<0) location.href='hello.html';
}
</script>
优点:更人性化
缺点:firefox不支持(firefox不支持span、div等的innerText属性)
3') 结合了倒数的javascript实现(firefox)
缺点:firefox不支持(firefox不支持span、div等的innerText属性)
3') 结合了倒数的javascript实现(firefox)
<script language="javascript" type="text/javascript">
var second = document.getElementById('totalSecond').textContent;
setInterval("redirect()", 1000);
function redirect()
{
document.getElementById('totalSecond').textContent = --second;
if (second < 0) location.href = 'hello.html';
}
</script>
4) 解决Firefox不支持innerText的问题
<span id="totalSecond">5</span>
<script language="javascript" type="text/javascript">
if(navigator.appName.indexOf("Explorer") > -1){
document.getElementById('totalSecond').innerText = "my text innerText";
} else{
document.getElementById('totalSecond').textContent = "my text textContent";
}
</script>
5) 整合3)和3')
<span id="totalSecond">5</span>
<script language="javascript" type="text/javascript">
var second = document.getElementById('totalSecond').textContent;
if (navigator.appName.indexOf("Explorer") > -1) {
second = document.getElementById('totalSecond').innerText;
} else {
second = document.getElementById('totalSecond').textContent;
}
setInterval("redirect()", 1000);
function redirect() {
if (second < 0) {
location.href = 'hello.html';
} else {
if (navigator.appName.indexOf("Explorer") > -1) {
document.getElementById('totalSecond').innerText = second--;
} else {
document.getElementById('totalSecond').textContent = second--;
}
}
}
</script>
如何知道手机屏幕的CSS像素宽度?
07:33 寡人的吐槽胜地
随着移动设备浏览量的迅速增长,自适应网页设计变得越来越重要。Web程序员在开发移动端页面时时常会遇到这样的问题,手机设备商声明的屏幕像素宽度尺寸和网页开发时使用的CSS像素宽度不一致,为什么会出现这种情况呢?
设备像素设是物理概念,指的是设备中使用的物理像素。
比如iPhone 5的分辨率640 x 1136px。
CSS像素是Web编程的概念,指的是CSS样式代码中使用的逻辑像素。
在CSS规范中,长度单位可以分为两类,绝对(absolute)单位以及相对(relative)单位。px是一个相对单位,设备像素(device pixel)是绝对单位。
比如iPhone 5使用的是Retina视网膜屏幕,使用2px x 2px的 device pixel 代表 1px x 1px 的 css pixel,所以设备像素数为640 x 1136px,而CSS逻辑像素数为320 x 568px。
这就需要要谈到每英寸像素(pixel per inch)和设备像素比(device pixel ratio)。
ppi,表示每英寸所拥有的像素(pixel)数目,数值越高,代表显示屏能够以越高的密度显示图像。ppi的计算方式可以参考维基百科每英寸像素
以上计算出ppi是为了得到密度分界,获得默认缩放比例,即设备像素比。
由上图可知,ppi在120-160之间的手机被归为低密度手机,160-240被归为中密度,240-320被归为高密度,320以上被归为超高密度(Apple给了它一个高大上的名字——Retina)。
获得设备像素比后,便可得知设备像素与CSS像素之间的比例。当这个比率为1:1时,使用1个设备像素显示1个CSS像素。当这个比率为2:1时,使用4个设备像素显示1个CSS像素,当这个比率为3:1时,使用9(3*3)个设备像素显示1个CSS像素。
一般美工按照设备像素(device pixel)为单位制作设计稿。前端工程序员,参照相关的设备像素比(device pixel ratio),进行换算以及编码。
此像素非彼像素
设备像素(device pixel):
设备像素设是物理概念,指的是设备中使用的物理像素。
比如iPhone 5的分辨率640 x 1136px。
CSS像素(css pixel):
CSS像素是Web编程的概念,指的是CSS样式代码中使用的逻辑像素。
在CSS规范中,长度单位可以分为两类,绝对(absolute)单位以及相对(relative)单位。px是一个相对单位,设备像素(device pixel)是绝对单位。
比如iPhone 5使用的是Retina视网膜屏幕,使用2px x 2px的 device pixel 代表 1px x 1px 的 css pixel,所以设备像素数为640 x 1136px,而CSS逻辑像素数为320 x 568px。
设备像素与CSS像素之间的换算是如何产生的呢?
这就需要要谈到每英寸像素(pixel per inch)和设备像素比(device pixel ratio)。
每英寸像素(pixel per inch):
ppi,表示每英寸所拥有的像素(pixel)数目,数值越高,代表显示屏能够以越高的密度显示图像。ppi的计算方式可以参考维基百科每英寸像素
设备像素比(device pixel ratio):
以上计算出ppi是为了得到密度分界,获得默认缩放比例,即设备像素比。
由上图可知,ppi在120-160之间的手机被归为低密度手机,160-240被归为中密度,240-320被归为高密度,320以上被归为超高密度(Apple给了它一个高大上的名字——Retina)。
获得设备像素比后,便可得知设备像素与CSS像素之间的比例。当这个比率为1:1时,使用1个设备像素显示1个CSS像素。当这个比率为2:1时,使用4个设备像素显示1个CSS像素,当这个比率为3:1时,使用9(3*3)个设备像素显示1个CSS像素。
美工和WEB前端开发人员之间如何协同:
一般美工按照设备像素(device pixel)为单位制作设计稿。前端工程序员,参照相关的设备像素比(device pixel ratio),进行换算以及编码。
2016年6月5日星期日
LNMP状态管理命令
09:56 寡人的吐槽胜地
LNMP状态管理命令:
LNMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.1状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
如重启LNMP,输入命令:/root/lnmp restart 即可,单独重启mysql:/etc/init.d/mysql restart
LNMPA状态管理命令:
LNMPA 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMPA 1.2各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}
LNMPA1.1状态管理: /root/lnmpa {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache状态管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}
LAMP状态管理命令:
LAMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LAMP 1.2各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 1.2各个程序状态管理: lnmp {nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP 1.1状态管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
如重启LNMP,输入命令:/root/lnmp restart 即可,单独重启mysql:/etc/init.d/mysql restart
LNMPA状态管理命令:
LNMPA 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LNMPA 1.2各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}
LNMPA1.1状态管理: /root/lnmpa {start|stop|reload|restart|kill|status}
Nginx状态管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL状态管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached状态管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd状态管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd状态管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache状态管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}
LAMP状态管理命令:
LAMP 1.2状态管理: lnmp {start|stop|reload|restart|kill|status}
LAMP 1.2各个程序状态管理: lnmp {httpd|mysql|mariadb|pureftpd} {start|stop|reload|restart|kill|status}
LNMP安装了哪些软件?安装目录在哪?
09:55 寡人的吐槽胜地
LNMP一键安装包除去安装所必须的依赖包,还会默认安装以下软件: Nginx、MySQL/MariaDB、PHP、phpMyAdmin、Zend Optimizer/Zend GuardLoader。用户可以根据自己的需要安装其他组件,如FTP服务器、缓存组件,也可以使用升级脚本对Nginx、MySQL、PHP进行升级。
安装这些组件或升级都需要在lnmp下载解压缩后的目录,比如下载到/root目录,就进入/root/lnmp1.2-full目录,执行以下命令。
虚拟主机管理:
http://lnmp.org/faq/lnmp-vhost-add-howto.htmlFTP服务器:
缓存加速:
http://lnmp.org/faq/addons.html
LNMP1.2及更高版本:
统一使用./upgrade.sh 进行升级工作。
使用方法:./upgrade.sh {nginx|mysql|mariadb|m2m|php|phpa}
详细教程:http://lnmp.org/faq/lnmp1-2-upgrade.html
LNMP1.1下:
升级脚本:
图像处理:
解密:
其他:
LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/
LNMP相关配置文件位置
Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf
LNMPA相关目录文件位置
Apache目录:/usr/local/apache/
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虚拟主机配置文件目录:/usr/local/apache/conf/vhost/
Apache默认虚拟主机配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
虚拟主机配置文件名称:/usr/local/apache/conf/vhost/域名.conf
安装这些组件或升级都需要在lnmp下载解压缩后的目录,比如下载到/root目录,就进入/root/lnmp1.2-full目录,执行以下命令。
虚拟主机管理:
- 参见:
http://lnmp.org/faq/lnmp-vhost-add-howto.htmlFTP服务器:
- 可选1,PureFTPd,执行:./pureftpd.sh 安装,http://yourIP/ftp/ 进行管理。
- 可选2(LNMP1.2下已经移除该脚本),Proftpd,执行:./proftpd.sh 安装,执行命令:/root/proftpd_vhost.sh 添加FTP账号。
缓存加速:
- LNMP1.2及更高版本统一使用./addons.sh 进行安装和卸载。 使用方法:./addons.sh {install|uninstall} {eaccelerator|xcache|memcached|opcache|redis|imagemagick|ioncube} 详细教程:
http://lnmp.org/faq/addons.html
- 可选1,eAccelerator,执行:./eaccelerator.sh 安装。
- 可选2,memcached,执行:./memcached.sh安装。
- 可选3,xcache,安装时需选择版本和设置密码, http://yourIP/xcache/ 进行管理,用户名 admin,密码为安装xcache时设置的。执行:./xcache.sh安装。
- 可选4,redis,执行:./redis.sh安装。
- 可选5,opcache,执行:opcache.sh安装。http://yourIP/ocp.php 进行管理。Zend Opcache与eaccelerator相冲突,需卸载eaccelerator。
- LNMP1.1下:
LNMP1.2及更高版本:
统一使用./upgrade.sh 进行升级工作。
使用方法:./upgrade.sh {nginx|mysql|mariadb|m2m|php|phpa}
详细教程:http://lnmp.org/faq/lnmp1-2-upgrade.html
LNMP1.1下:
升级脚本:
- Nginx升脚本可,升级至任意Nginx版本。执行:./upgrade_nginx.sh 按提示进行升级。
- PHP升级脚本,可升级至大部分PHP版本。执行:./upgrade_php.sh 按提示进行升级。
- MySQL升级脚本,可升级至任意MySQL版本,MySQL升级风险较大,虽然会自动备份数据,建议自行再备份一下。执行:./upgrade_mysql.sh 按提示进行升级。
- MySQL升级至MariaDB,可从MySQL升级至Mariadb,虽然会自动备份数据,建议自行再备份一下。执行:./upgrade_mysql2mariadb.sh 按提示进行升级。
- MariaDB升级脚本,可升级已安装的Mariadb,虽然会自动备份数据,依然建议自行再备份一下。执行:./upgrade_mariadb.sh 按提示进行升级。
- LNMPA PHP升级脚本,可升级LNMPA的PHP至大部分版本。执行:./upgrade_lnmpa_php.sh 按提示进行升级。
图像处理:
- 可选1,imageMagick,执行:./imageMagick.sh 安装。
执行:./imageMagick.sh 安装,imageMagick路径:/usr/local/imagemagick/bin/。
解密:
- 可选1,ionCube,执行:./ionCube.sh 安装。
其他:
- 可选1,执行:./php5.2.17.sh 可安装一个不与LNMP冲突的PHP 5.2.17单独存在,使用时需要将nginx虚拟主机配置文件里的 php-cgi.sock 修改为 php-cgi52.sock。
- 可选2,执行:./reset_mysql_root_password.sh 可重置MySQL/MariaDB的root密码。
- 可选3,执行:./check502.sh 可检测php-fpm是否挂掉,502报错时重启,配合crontab使用。
- 可选4,执行:./cut_nginx_logs.sh 日志切割脚本。
- 可选5,执行:./remove_disable_function.sh 运行此脚本可删掉禁用函数。
LNMP相关软件安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
MariaDB 目录 : /usr/local/mariadb/
MariaDB数据库所在目录:/usr/local/mariadb/var/
PHP目录 : /usr/local/php/
PHPMyAdmin目录 : 0.9版本为/home/wwwroot/phpmyadmin/ 1.0及以后版本为 /home/wwwroot/default/phpmyadmin/ 强烈建议将此目录重命名为其不容易猜到的名字。phpmyadmin可自己从官网下载新版替换。
默认网站目录 : 0.9版本为 /home/wwwroot/ 1.0及以后版本为 /home/wwwroot/default/
Nginx日志目录:/home/wwwlogs/
/root/vhost.sh添加的虚拟主机配置文件所在目录:/usr/local/nginx/conf/vhost/
PureFtpd 目录:/usr/local/pureftpd/
PureFtpd web管理目录: 0.9版为/home/wwwroot/default/ftp/ 1.0版为 /home/wwwroot/default/ftp/
Proftpd 目录:/usr/local/proftpd/
Redis 目录:/usr/local/redis/
LNMP相关配置文件位置
Nginx主配置(默认虚拟主机)文件:/usr/local/nginx/conf/nginx.conf
添加的虚拟主机配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf 1.2及之前版本为/usr/local/proftpd/proftpd.conf
Proftpd 用户配置文件:/usr/local/proftpd/etc/vhost/用户名.conf
Redis 配置文件:/usr/local/redis/etc/redis.conf
LNMPA相关目录文件位置
Apache目录:/usr/local/apache/
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虚拟主机配置文件目录:/usr/local/apache/conf/vhost/
Apache默认虚拟主机配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
虚拟主机配置文件名称:/usr/local/apache/conf/vhost/域名.conf
LNMP 1.2缓存加速类扩展(xcache/Redis/memcached/eAccelerator)、 imageMagick、ionCube安装教程
09:54 寡人的吐槽胜地
本文仅适用于LNMP1.2及以后的版本安装eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache.这几个PHP缓存、加速类的扩展不一定对每个人都能用,自己按需要安装,不用装多个同类的扩展,可能会导致出错。下面会对各个程序的作用、安装方法及相关注意事项。(注意:以下操作均需要在lnmp压缩包解压后的目录里运行,如lnmp1.3-full)
这些扩展和组件均采用./addons.sh进行安装。
基本用法说明:./addons.sh {install|uninstall} {eaccelerator|xcache|memcached|opcache|redis|imagemagick|ioncube}
eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。
安装
进入lnmp解压后的目录,执行:./addons.sh install eaccelerator 运行后有如下提示:
eaccelerator 0.9.5.3 支持PHP 5.2,如需此版本,输入 1 回车。
eaccelerator 0.9.6.1 支持PHP 5.2、5.3,如需此版本,输入 2 回车。
eaccelerator 1.0-dev 支持PHP 5.2、5.3、5.4,如需此版本输入 3 回车。
提示“Press any key to install...or Press Ctrl+c to cancel” 后回车确认,脚本就会自动安装eaccelerator。
卸载
执行:./addons.sh uninstall eaccelerator
XCache 是一个国人开发的又快又稳定的PHP opcode缓存器。经过良好的测试并在大流量/高负载的生产机器上稳定运行,支持所有现行PHP分支的最新发布版本。
安装
进入lnmp解压后的目录,执行:./addons.sh install xcache 运行后有如下提示:
需要设置xcache管理页面admin用户的密码。
出现“Press any key to install...or Press Ctrl+c to cancel“,再次回车确认即可开始安装。
卸载
执行:./addons.sh uninstall xcache
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
安装
进入lnmp解压后的目录,执行:./addons.sh install memcached
可以根据自己的需求选择php-memcache或php-memcached扩展,目前discuz x使用的是前者,功能上php-memcached更强大一些。
输入对应的序号,回车,再次确认回车开始安装。
卸载
执行:./addons.sh uninstall memcached
ImageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装。它可以读取、编辑超过100种图象格式。可用来替换GD库。
安装
进入lnmp解压后的目录,执行:./addons.sh install imagemagick
回车确认后就会自动安装imageMagick。
设置:比如在DiscuzX里设置时路径需要填写:/usr/local/imagemagick/bin/ 并且禁用函数里的exec要去掉才可以正常使用。
卸载
执行:./addons.sh uninstall imagemagick
此脚本是用来安装ionCube loader的,ionCube loader是用来解密ionCube加密的PHP脚本,如whmcs就采用ionCube加密。
安装
进入lnmp解压后的目录,执行:./addons.sh install ionCube
回车确认后就会自动安装ionCube loader。
卸载
执行:./addons.sh uninstall ionCube
此脚本是用来安装Redis,Redis是一个开源、支持网络、基于内存、键值对存储数据库。
安装
进入lnmp解压后的目录,执行:./addons.sh install redis
运行后有如下提示:
,安装稳定版Redis 2.8.8 输入:s 回车;安装测试版Redis 3.0.0输入:b 回车;安装旧版Redis 2.6.17输入:o 回车。
此脚本是用来安装opcache的,是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。LNMP 1.2下安装的PHP 5.5或更高版本的PHP不需要额外安装OPcache,默认已经安装上。
安装
进入lnmp解压后的目录,执行:./addons.sh install opcache
Opcache和eAccelerator是冲突的,脚本会卸载eAccelerator后再安装Opcache,回车确认后就会自动安装opcache。
卸载
执行:./addons.sh uninstall opcache
这些扩展和组件均采用./addons.sh进行安装。
基本用法说明:./addons.sh {install|uninstall} {eaccelerator|xcache|memcached|opcache|redis|imagemagick|ioncube}
1、eAccelerator
eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。
安装
进入lnmp解压后的目录,执行:./addons.sh install eaccelerator 运行后有如下提示:
eaccelerator 0.9.5.3 支持PHP 5.2,如需此版本,输入 1 回车。
eaccelerator 0.9.6.1 支持PHP 5.2、5.3,如需此版本,输入 2 回车。
eaccelerator 1.0-dev 支持PHP 5.2、5.3、5.4,如需此版本输入 3 回车。
提示“Press any key to install...or Press Ctrl+c to cancel” 后回车确认,脚本就会自动安装eaccelerator。
卸载
执行:./addons.sh uninstall eaccelerator
2、xcache
XCache 是一个国人开发的又快又稳定的PHP opcode缓存器。经过良好的测试并在大流量/高负载的生产机器上稳定运行,支持所有现行PHP分支的最新发布版本。
安装
进入lnmp解压后的目录,执行:./addons.sh install xcache 运行后有如下提示:
需要设置xcache管理页面admin用户的密码。
出现“Press any key to install...or Press Ctrl+c to cancel“,再次回车确认即可开始安装。
卸载
执行:./addons.sh uninstall xcache
3、memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。
安装
进入lnmp解压后的目录,执行:./addons.sh install memcached
可以根据自己的需求选择php-memcache或php-memcached扩展,目前discuz x使用的是前者,功能上php-memcached更强大一些。
输入对应的序号,回车,再次确认回车开始安装。
卸载
执行:./addons.sh uninstall memcached
4、imageMagick
ImageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装。它可以读取、编辑超过100种图象格式。可用来替换GD库。
安装
进入lnmp解压后的目录,执行:./addons.sh install imagemagick
回车确认后就会自动安装imageMagick。
设置:比如在DiscuzX里设置时路径需要填写:/usr/local/imagemagick/bin/ 并且禁用函数里的exec要去掉才可以正常使用。
卸载
执行:./addons.sh uninstall imagemagick
5、ionCube
此脚本是用来安装ionCube loader的,ionCube loader是用来解密ionCube加密的PHP脚本,如whmcs就采用ionCube加密。
安装
进入lnmp解压后的目录,执行:./addons.sh install ionCube
回车确认后就会自动安装ionCube loader。
卸载
执行:./addons.sh uninstall ionCube
6、Redis
此脚本是用来安装Redis,Redis是一个开源、支持网络、基于内存、键值对存储数据库。
安装
进入lnmp解压后的目录,执行:./addons.sh install redis
运行后有如下提示:
,安装稳定版Redis 2.8.8 输入:s 回车;安装测试版Redis 3.0.0输入:b 回车;安装旧版Redis 2.6.17输入:o 回车。
7、opcache
此脚本是用来安装opcache的,是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件。LNMP 1.2下安装的PHP 5.5或更高版本的PHP不需要额外安装OPcache,默认已经安装上。
安装
进入lnmp解压后的目录,执行:./addons.sh install opcache
Opcache和eAccelerator是冲突的,脚本会卸载eAccelerator后再安装Opcache,回车确认后就会自动安装opcache。
卸载
执行:./addons.sh uninstall opcache
LNMP添加、删除虚拟主机及伪静态使用教程
09:53 寡人的吐槽胜地
一般情况下每个虚拟主机就是一个网站,网站一般通过域名进行访问。
LNMP 1.2的网站添加过程和LNMP 1.1的基本类似,但是增加了FTP和数据库的创建。LNMP1.2的防跨目录也由原来在php.ini中设置移至网站根目录下的.user.ini 进行控制。
LNMP 1.1及之前的版本采用/root/vhost.sh 进行添加虚拟主机。
LNMP 1.2开始使用lnmp命令进行管理,具体可以参看更新记录
虚拟主机管理基本命令介绍:lnmp vhost {add|list|del}
如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除。
执行:lnmp vhost add 出现如下界面:
这里要输入要添加网站的域名,我们已添加www.vpser.net域名为例,如上图提示后输入域名 www.vpser.net 回车后提示
这里询问是否添加更多域名,输入 y 回车后添加,如不添加输入 n 会有如下提示:
如果需要添加更多域名或加上 vpser.net ,输入后回车确认。
下面需要设置网站的目录,网站目录不存在的话会创建目录。也可以输入已经存在的目录或要设置的目录(注意如要输入必须是全路径即以/开头的完整路径!!!)。不输入直接回车的话,采用默认目录:/home/wwwroot/域名
伪静态可以使URL更加简洁也利于SEO,如程序支持并且需要设置伪静态的话,如启用输入 y ,不启用输入 n 回车。
默认已经有了discuz、discuzx、discuzx2(Discuz X二级目录)、wordpress、wp2(WordPress二级目录)、typecho、typecho2(Typecho二级目录)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等常用的Nginx伪静态配置文件,可以直接输入名称进行使用,如果是二级目录则需要对应配置文件里的二级目录的名称。
这一步是设置日志,如启用日志输入 y ,不启用输入 n 回车。
再输入要设置的日志的名称,默认目录为:/home/wwwlogs/ 默认文件名为:域名.log 回车确认后,会询问是否添加数据库和数据库用户。
如果需要启用输入 y ,不启用输入 n 回车。
需要验证MySQL的root密码
提示Enter database name: 后输入要创建的数据库名称,要创建的数据库用户名会和数据库同名,回车确认。
提示Please enter password for mysql user 数据库名: 后输入要设置的密码,回车确认。
如果安装了FTP服务器会询问是否添加FTP账号
如果需要添加输入 y ,不添加输入 n 回车。
提示Enter ftp account name: 后输入要创建的FTP账号名称,回车确认。
提示Enter password for ftp account FTP账号: 后输入要设置的密码,回车确认。
提示 Press any key to start create virtul host... 后,回车确认便会开始创建虚拟主机。
添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息,如下图:
LNMPA或LAMP可以直接使用网站根目录下放.htaccess 来设置伪静态规则(具体规则可以去程序官网网站找google百度),但是在LNMP下,需要使用Nginx伪静态规则。
伪静态可以随时添加或删除,如果添加完虚拟主机后忘记或没有添加伪静态,可以通过修改配置文件来添加伪静态。
虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf
伪静态规则文件需要放在/usr/local/nginx/conf/ 下面。
编辑虚拟主机配置文件,可以使用vi、nano或winscp,后2个工具对新手来说简单些。
例如前面我们添加的虚拟主机,打开后前半部分配置会显示如下:
在root /home/wwwroot/www.vpser.net;这一行下面添加:
include wordpress.conf;
上面的wordpress.conf为伪静态文件,如需要其他伪静态文件自己创建个并上传到/usr/local/nginx/conf/ 下面并include 伪静态.conf; 加完保存,执行:/etc/init.d/nginx restart 重启生效,如果报错可能是添加有误或伪静态规则有误。
如果已经安装FTP服务器可以直接使用ftp客户端通过你的FTP信息登录后上传网站或sftp等软件上传网站,设置好相关权限开始安装即可。
上传网站后建议执行:chown www:www -R /path/to/dir 对网站目录进行权限设置,/path/to/dir替换为你网站目录。
为了安全可以将一些不需要PHP运行的上传文件之类的目录去掉执行权限,参考:http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html
执行:lnmp vhost list
执行:lnmp vhost del
删除网站会先列出当前已有虚拟主机,按提示输入要删除的虚拟主机域名 回车确认。
这里只是删除虚拟主机配置文件,网站文件并不会删除需要自己删除。
LNMP 1.2下需要执行:chattr -i /网站目录/.user.ini 后才能删除网站目录。
当执行chown或chmod对网站目录属主属组或权限进行操作时可能会提示chown: changing ownership of `/home/wwwroot/default/.user.ini': Operation not permitted,不需要理会,如果有强迫症可以参考前面先进行chattr -i的操作。
LNMP默认网站配置文件:/usr/local/nginx/conf/nginx.conf
LNMPA默认网站配置文件:/usr/local/nginx/conf/nginx.conf 和 /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP默认网站配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
LNMP 1.1及之前的版本使用php.ini里面,open_basedir设置
LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改open_basedir的值来设置限制目录的访问。
.user.ini文件无法直接修改,而且是隐藏文件可能在winscp下可能无法看到,建议使用vim编辑器或nano编辑器进行修改。
如要修或删除需要先执行:chattr -i /网站目录/.user.ini
修改完成后再执行:chattr +i /网站目录/.user.ini
.user.ini不需要重启一般5分钟左右生效。
如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!
LNMPA或LAMP 1.2上的防跨目录的设置使用的对应apache虚拟主机配置文件里的php_admin_value open_basedir参数进行设置。如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。
重启apache生效。
LNMP上各个版本pathinfo各个版本的设置基本一样:
lnmp v1.1上,修改对应虚拟主机的配置文件
去掉#include pathinfo.conf前面的#,把try_files $uri =404; 前面加上# 注释掉。
1.2,1.3上,修改对应虚拟主机的配置文件
将include enable-php.conf;替换为include enable-php-pathinfo.conf;
修改pathinfo需要重启nginx生效。
LNMP 1.2的网站添加过程和LNMP 1.1的基本类似,但是增加了FTP和数据库的创建。LNMP1.2的防跨目录也由原来在php.ini中设置移至网站根目录下的.user.ini 进行控制。
LNMP 1.1及之前的版本采用/root/vhost.sh 进行添加虚拟主机。
LNMP 1.2开始使用lnmp命令进行管理,具体可以参看更新记录
虚拟主机管理基本命令介绍:lnmp vhost {add|list|del}
##添加网站(虚拟主机)##
如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除。
执行:lnmp vhost add 出现如下界面:
这里要输入要添加网站的域名,我们已添加www.vpser.net域名为例,如上图提示后输入域名 www.vpser.net 回车后提示
这里询问是否添加更多域名,输入 y 回车后添加,如不添加输入 n 会有如下提示:
如果需要添加更多域名或加上 vpser.net ,输入后回车确认。
(注:带www和不带www的是不同的域名,如需带www和不带的www的域名都访问同一个网站需要同时都绑定)。
下面需要设置网站的目录,网站目录不存在的话会创建目录。也可以输入已经存在的目录或要设置的目录(注意如要输入必须是全路径即以/开头的完整路径!!!)。不输入直接回车的话,采用默认目录:/home/wwwroot/域名
伪静态可以使URL更加简洁也利于SEO,如程序支持并且需要设置伪静态的话,如启用输入 y ,不启用输入 n 回车。
默认已经有了discuz、discuzx、discuzx2(Discuz X二级目录)、wordpress、wp2(WordPress二级目录)、typecho、typecho2(Typecho二级目录)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等常用的Nginx伪静态配置文件,可以直接输入名称进行使用,如果是二级目录则需要对应配置文件里的二级目录的名称。
这一步是设置日志,如启用日志输入 y ,不启用输入 n 回车。
再输入要设置的日志的名称,默认目录为:/home/wwwlogs/ 默认文件名为:域名.log 回车确认后,会询问是否添加数据库和数据库用户。
如果需要启用输入 y ,不启用输入 n 回车。
需要验证MySQL的root密码
提示Enter database name: 后输入要创建的数据库名称,要创建的数据库用户名会和数据库同名,回车确认。
提示Please enter password for mysql user 数据库名: 后输入要设置的密码,回车确认。
如果安装了FTP服务器会询问是否添加FTP账号
如果需要添加输入 y ,不添加输入 n 回车。
提示Enter ftp account name: 后输入要创建的FTP账号名称,回车确认。
提示Enter password for ftp account FTP账号: 后输入要设置的密码,回车确认。
提示 Press any key to start create virtul host... 后,回车确认便会开始创建虚拟主机。
添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息,如下图:
##伪静态管理##
LNMPA或LAMP可以直接使用网站根目录下放.htaccess 来设置伪静态规则(具体规则可以去程序官网网站找google百度),但是在LNMP下,需要使用Nginx伪静态规则。
伪静态可以随时添加或删除,如果添加完虚拟主机后忘记或没有添加伪静态,可以通过修改配置文件来添加伪静态。
虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf
伪静态规则文件需要放在/usr/local/nginx/conf/ 下面。
编辑虚拟主机配置文件,可以使用vi、nano或winscp,后2个工具对新手来说简单些。
例如前面我们添加的虚拟主机,打开后前半部分配置会显示如下:
在root /home/wwwroot/www.vpser.net;这一行下面添加:
include wordpress.conf;
上面的wordpress.conf为伪静态文件,如需要其他伪静态文件自己创建个并上传到/usr/local/nginx/conf/ 下面并include 伪静态.conf; 加完保存,执行:/etc/init.d/nginx restart 重启生效,如果报错可能是添加有误或伪静态规则有误。
##上传网站程序##
如果已经安装FTP服务器可以直接使用ftp客户端通过你的FTP信息登录后上传网站或sftp等软件上传网站,设置好相关权限开始安装即可。
上传网站后建议执行:chown www:www -R /path/to/dir 对网站目录进行权限设置,/path/to/dir替换为你网站目录。
为了安全可以将一些不需要PHP运行的上传文件之类的目录去掉执行权限,参考:http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html
##列出网站(虚拟主机)##
执行:lnmp vhost list
##删除网站(虚拟主机)##
执行:lnmp vhost del
删除网站会先列出当前已有虚拟主机,按提示输入要删除的虚拟主机域名 回车确认。
这里只是删除虚拟主机配置文件,网站文件并不会删除需要自己删除。
LNMP 1.2下需要执行:chattr -i /网站目录/.user.ini 后才能删除网站目录。
当执行chown或chmod对网站目录属主属组或权限进行操作时可能会提示chown: changing ownership of `/home/wwwroot/default/.user.ini': Operation not permitted,不需要理会,如果有强迫症可以参考前面先进行chattr -i的操作。
##默认网站(虚拟主机)##
LNMP默认网站配置文件:/usr/local/nginx/conf/nginx.conf
LNMPA默认网站配置文件:/usr/local/nginx/conf/nginx.conf 和 /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP默认网站配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
##其他事项##
LNMP 1.1及之前的版本使用php.ini里面,open_basedir设置
LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改open_basedir的值来设置限制目录的访问。
.user.ini文件无法直接修改,而且是隐藏文件可能在winscp下可能无法看到,建议使用vim编辑器或nano编辑器进行修改。
如要修或删除需要先执行:chattr -i /网站目录/.user.ini
修改完成后再执行:chattr +i /网站目录/.user.ini
.user.ini不需要重启一般5分钟左右生效。
如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!
LNMPA或LAMP 1.2上的防跨目录的设置使用的对应apache虚拟主机配置文件里的php_admin_value open_basedir参数进行设置。如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。
重启apache生效。
##pathinfo设置##
LNMP上各个版本pathinfo各个版本的设置基本一样:
lnmp v1.1上,修改对应虚拟主机的配置文件
去掉#include pathinfo.conf前面的#,把try_files $uri =404; 前面加上# 注释掉。
1.2,1.3上,修改对应虚拟主机的配置文件
将include enable-php.conf;替换为include enable-php-pathinfo.conf;
修改pathinfo需要重启nginx生效。
LNMP下FTP服务器的安装和使用(Pureftpd和Proftpd)
09:52 寡人的吐槽胜地
FTP是网站文件维护中使用比较多的,目前LNMP一键安装包中有Pureftpd和Proftpd服务器安装脚本,LNMP默认不安装任何FTP服务器,需要用户自行安装(1.2开始不再提供proftpd的安装脚本)。
LNMP一键安装包里1.3及更高版本不需要MySQL支持,无图像界面没有http://ip/ftp/管理界面,只能使用命令lnmp ftp {add|del|edit}进行管理。1.2及以下版本Pureftpd安装脚本是需要MySQL支持的,安装前需要已经安装好LNMP,这个自带一个PHP编写的用户管理界面。
进入lnmp解压后的目录,执行:./pureftpd.sh 会显示如下图(1.2和1.3及更高版本的安装过程有些差异,1.3及更高版本直接回车安装不需要填写其他信息,1.2版本安装如下:):
按提示输入当前MySQL的root密码,输入完成,回车确认,会提示如下信息:
这一步是设置FTP用户管理后台的登陆密码。输入完成回车确认
因为PHP管理后台需要连接数据库,所以会在MySQL上创建一个ftp用户,这里设置的就是这个用户的密码。输入完成,回车确认。
回车 显示 "Press any key to start install Pure-FTPd..." 再次回车确认即可开始安装。
1.3及更高版本没有图像界面!!!!!!!!没有http://ip/ftp/ 不能网页进行管理!!!!!!!!
只能使用lnmp ftp {add|del|edit}进行管理。
1.3及更高版本添加ftp账号执行:lnmp ftp add
按提示分别输入要创建的ftp账号、密码及ftp账号对应的目录(目录必须是以/开始的绝对目录)
1.2及以下版本添加用户如下:
安装完成后,在浏览器输入: http://你的ip/ftp/ 用刚才设置的FTP用户管理后台的登陆密码登陆。登陆后界面如下:
添加一个用户名到你要添加的目录。
uid,gid 都选www。
注意事项:
有用户可能找不到选择目录的地方,选目录是点击”主目录“ 最后面有个圆形套着三角形的图标,点一下就会出来。
如果提示无法读取目录、登陆超时或报502 Bad Gateway错误,修改/usr/local/php/etc/php.ini 查找open_basedir,将有/home/wwwroot/default的几行前面加;注释掉,重启php-fpm生效。
LNMP 1.2的话在/home/wwwroot/default/.user.ini里设置,将里面的内容删除,重启php-fpm生效后即可。
.user.ini文件无法直接修改,而且是隐藏文件可能在winscp下可能无法看到,建议使用vim编辑器或nano编辑器进行修改。
修改前需要执行:chattr -i /home/wwwroot/default/.user.ini
修改完成后再执行:chattr +i /home/wwwroot/default/.user.ini
如果是LNMPA或LAMP的话需要修改/usr/local/apache/conf/extra/httpd-vhosts.conf里面的php_admin_value open_basedir在该行前面加#直接注释。
LNMP 1.2开始可以使用命令:lnmp ftp {add|list|del} 进行FTP账号管理。
使用命令进行管理更方便。
修改管理面板登录密码:http://bbs.vpser.net/thread-2038-1-1.html
执行:./pureftpd.sh uninstall 即可对pureftpd进行卸载。
在LNMP 1.0中增加了Proftpd服务器安装脚本,proftpd可以通过配置文件对权限进行更多的设置。
Proftpd可以单独安装,不需要其他如MySQL的支持,完全使用配置文件进行设置。
进入lnmp1.0解压后的目录,执行:./proftpd.sh
提示“Press any key to start install ProFTPd... ”后回车确认就会自动安装Proftpd
执行:/root/proftpd_vhost.sh
提示“Please input a username:” 后输入要添加的FTP用户名,回车确认。
之后会提示“Please set password for 前面你设的用户名:” 输入你要设置的密码
回车确认后后会提示“Please input full path:”,这里需要输入FTP用户设置到哪个目录,需要是绝对路径,输入完回车确认,提示“Press any key to start create ProFTPd virtul host...”后再次回车确认FTP用户就会添加上。
一、Pureftpd
LNMP一键安装包里1.3及更高版本不需要MySQL支持,无图像界面没有http://ip/ftp/管理界面,只能使用命令lnmp ftp {add|del|edit}进行管理。1.2及以下版本Pureftpd安装脚本是需要MySQL支持的,安装前需要已经安装好LNMP,这个自带一个PHP编写的用户管理界面。
安装
进入lnmp解压后的目录,执行:./pureftpd.sh 会显示如下图(1.2和1.3及更高版本的安装过程有些差异,1.3及更高版本直接回车安装不需要填写其他信息,1.2版本安装如下:):
按提示输入当前MySQL的root密码,输入完成,回车确认,会提示如下信息:
这一步是设置FTP用户管理后台的登陆密码。输入完成回车确认
因为PHP管理后台需要连接数据库,所以会在MySQL上创建一个ftp用户,这里设置的就是这个用户的密码。输入完成,回车确认。
回车 显示 "Press any key to start install Pure-FTPd..." 再次回车确认即可开始安装。
1.3及更高版本没有图像界面!!!!!!!!没有http://ip/ftp/ 不能网页进行管理!!!!!!!!
只能使用lnmp ftp {add|del|edit}进行管理。
添加用户
1.3及更高版本添加ftp账号执行:lnmp ftp add
按提示分别输入要创建的ftp账号、密码及ftp账号对应的目录(目录必须是以/开始的绝对目录)
1.2及以下版本添加用户如下:
安装完成后,在浏览器输入: http://你的ip/ftp/ 用刚才设置的FTP用户管理后台的登陆密码登陆。登陆后界面如下:
添加一个用户名到你要添加的目录。
uid,gid 都选www。
注意事项:
有用户可能找不到选择目录的地方,选目录是点击”主目录“ 最后面有个圆形套着三角形的图标,点一下就会出来。
如果提示无法读取目录、登陆超时或报502 Bad Gateway错误,修改/usr/local/php/etc/php.ini 查找open_basedir,将有/home/wwwroot/default的几行前面加;注释掉,重启php-fpm生效。
LNMP 1.2的话在/home/wwwroot/default/.user.ini里设置,将里面的内容删除,重启php-fpm生效后即可。
.user.ini文件无法直接修改,而且是隐藏文件可能在winscp下可能无法看到,建议使用vim编辑器或nano编辑器进行修改。
修改前需要执行:chattr -i /home/wwwroot/default/.user.ini
修改完成后再执行:chattr +i /home/wwwroot/default/.user.ini
如果是LNMPA或LAMP的话需要修改/usr/local/apache/conf/extra/httpd-vhosts.conf里面的php_admin_value open_basedir在该行前面加#直接注释。
LNMP 1.2开始可以使用命令:lnmp ftp {add|list|del} 进行FTP账号管理。
使用命令进行管理更方便。
修改管理面板登录密码:http://bbs.vpser.net/thread-2038-1-1.html
卸载Pureftpd
执行:./pureftpd.sh uninstall 即可对pureftpd进行卸载。
二、Proftpd
在LNMP 1.0中增加了Proftpd服务器安装脚本,proftpd可以通过配置文件对权限进行更多的设置。
Proftpd可以单独安装,不需要其他如MySQL的支持,完全使用配置文件进行设置。
安装
进入lnmp1.0解压后的目录,执行:./proftpd.sh
提示“Press any key to start install ProFTPd... ”后回车确认就会自动安装Proftpd
添加FTP用户
执行:/root/proftpd_vhost.sh
提示“Please input a username:” 后输入要添加的FTP用户名,回车确认。
之后会提示“Please set password for 前面你设的用户名:” 输入你要设置的密码
回车确认后后会提示“Please input full path:”,这里需要输入FTP用户设置到哪个目录,需要是绝对路径,输入完回车确认,提示“Press any key to start create ProFTPd virtul host...”后再次回车确认FTP用户就会添加上。
lnmp的安装方法
09:51 寡人的吐槽胜地
系统需求:
安装步骤:
1、使用putty或类似的SSH工具登陆VPS或服务器;
登陆后运行:screen -S lnmp
如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细内容参考screen教程。
2、下载并安装LNMP一键安装包:
您可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。
安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp
默认安装lnmp可不写,如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。
如下载速度慢请更换其他下载节点,详情请看下载页面。LNMP下载节点具体替换方法。
按上述命令执行后,会出现如下提示:
需要设置MySQL的root密码(不输入直接回车将会设置为root)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除。输入后回车进入下一步,如下图所示:
询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,输入完成,回车进入下一步
选择MySQL版本,目前提供了较多版本的MySQL和MariaDB,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择:
输入对应MySQL或MariaDB版本前面的序号,回车进入下一步,选择PHP版本:
注意:选择PHP7等高版本时需要自行确认是否与自己的程序兼容。
输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:
可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。
如果是LNMPA或LAMP的话还会提示“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。
再选择Apache版本
按提示输入对应版本前面的数字序号,回车。
提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
3、安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示Install lnmp V1.3 completed! enjoy it.的话,说明已经安装成功。
接下来按添加虚拟主机教程,添加虚拟主机后上传网站代码,可以使用sftp或ftp服务器上传网站,将域名解析到VPS或服务器的IP上,解析生效即可使用。
4、安装失败
如果出现类似上图的提示,则表明安装失败,说明没有安装成功!!需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,到LNMP支持论坛发帖注明你的系统发行版名称及版本号、32位还是64位等信息,并将lnmp-install.log压缩以附件形式上传到论坛,我们会通过日志查找错误,并给予相应的解决方法。
- CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统
- 需要5GB以上硬盘剩余空间
- 需要128MB以上内存(如果为128MB的小内存VPS,Xen的需要有SWAP,OpenVZ的至少要有128MB以上的vSWAP或突发内存),注意小内存请勿使用64位系统!
- 安装MySQL 5.6或5.7及MariaDB 10必须1G以上内存!。
- VPS或服务器必须已经联网,且必须设置的是网络源不能是光盘源,同时VPS/服务器 DNS要正常!
- Linux下区分大小写,输入命令时请注意!
LNMP一键安装包 V1.3 已经在PhotonVPS、Vultr、遨游主机、OneAsiahost新加坡VPS、搬瓦工、BudgetVM、、DigitalOcean、LocVPS、Linode、DiaHosting、瑞豪开源、KVMLA、景文互联、RamNode、Hostigation、BuyVM、80VPS、XSVPS、HostUS、快易互联等众多VPS的CentOS 5-7、RHEL 6-7、Fedora 21-23、Debian 7-8、Ubuntu 10.04-16.04的32位和64位系统上测试通过。
安装步骤:
1、使用putty或类似的SSH工具登陆VPS或服务器;
登陆后运行:screen -S lnmp
如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细内容参考screen教程。
2、下载并安装LNMP一键安装包:
您可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。
安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp
默认安装lnmp可不写,如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。
如下载速度慢请更换其他下载节点,详情请看下载页面。LNMP下载节点具体替换方法。
按上述命令执行后,会出现如下提示:
需要设置MySQL的root密码(不输入直接回车将会设置为root)如果输入有错误需要删除时,可以按住Ctrl再按Backspace键进行删除。输入后回车进入下一步,如下图所示:
询问是否需要启用MySQL InnoDB,InnoDB引擎默认为开启,一般建议开启,直接回车或输入 y ,如果确定确实不需要该引擎可以输入 n,输入完成,回车进入下一步
选择MySQL版本,目前提供了较多版本的MySQL和MariaDB,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择:
输入对应MySQL或MariaDB版本前面的序号,回车进入下一步,选择PHP版本:
注意:选择PHP7等高版本时需要自行确认是否与自己的程序兼容。
输入要选择的PHP版本的序号,回车进入下一步,选择是否安装内存优化:
可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车,直接回车为默认为不安装。
如果是LNMPA或LAMP的话还会提示“Please enter Administrator Email Address:”,需要设置管理员邮箱,该邮箱会在报错时显示在错误页面上。
再选择Apache版本
按提示输入对应版本前面的数字序号,回车。
提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
3、安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示Install lnmp V1.3 completed! enjoy it.的话,说明已经安装成功。
接下来按添加虚拟主机教程,添加虚拟主机后上传网站代码,可以使用sftp或ftp服务器上传网站,将域名解析到VPS或服务器的IP上,解析生效即可使用。
4、安装失败
如果出现类似上图的提示,则表明安装失败,说明没有安装成功!!需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,到LNMP支持论坛发帖注明你的系统发行版名称及版本号、32位还是64位等信息,并将lnmp-install.log压缩以附件形式上传到论坛,我们会通过日志查找错误,并给予相应的解决方法。
2016年6月3日星期五
在Linux服务器上自建KMS服务器
09:57 寡人的吐槽胜地
在Linux服务器上自建KMS服务器
killall kms-server
wget --no-check-certificate https://blog.wxlost.com/code/Kms/Linux/intel/static/vlmcsd-x86-musl-static -O /usr/bin/kms-server
#wget --no-check-certificate https://blog.wxlost.com/code/Kms/Linux/intel/static/vlmcsd-x64-musl-static -O /usr/bin/kms-server
chmod +x /usr/bin/kms-server
/usr/bin/kms-server
echo '/usr/bin/kms-server' >> /etc/rc.local
#chmod +x /etc/rc.d/rc.local
这是来自菊花的脚本
killall kms-server
wget --no-check-certificate https://git.oschina.net/wxlost/kms/raw/master/kms-server-x86 -O /usr/bin/kms-server
#wget --no-check-certificate https://git.oschina.net/wxlost/kms/raw/master/kms-server-x64 -O /usr/bin/kms-server
chmod 755 /usr/bin/kms-server
/usr/bin/kms-server
echo '/usr/bin/kms-server' >> /etc/rc.local
vlmcsd-x64-musl-static
#记得防火墙开放TCP的1688端口和关闭SELinux
#下面是快速即时生效+永久关闭SELinux的命令
sed -i 's/^SELINUX=.*/#&/;s/^SELINUXTYPE=.*/#&/;/SELINUX=.*/a SELINUX=disabled' /etc/sysconfig/selinux && /usr/sbin/setenforce 0
测试kms服务器是否运行
slmgr.vbs -skms 你的服务器域名或ip
KMS激活Windows 7、8、10等系统
09:01 寡人的吐槽胜地
管理员权限运行CDM #
[v_notice]过程解析 (管理员模式运行 cmd→使用 CD 命令定位到软件目录下→卸载 KEY(也可以不管直接添加)→添加 KEY→更改激活服务器→激活→查看激活信息)[/v_notice]
下面为 Office 命令. 请大家灵活运用, 主要是定位软件安装目录. 其他命令不变
注 1: 仅能在企业版上使用. 也就是带 pro 后缀的
注 2: 新版本的 Office 企业版自带了一个 KEY. 所以直接更换激活服务器即可激活, 不过万事都有一个如果, 如果你 KEY 无法激活. 请参考上面的命令更换 KEY
KEY来源:https://technet.microsoft.com/en-us/library/jj612867.aspx
激活方案
激活系统
slmgr.vbs -upk
slmgr.vbs -ipk 这里改为你系统版本对应密钥
slmgr.vbs -skms kms.digac.cc #我们提供几台KMS激活服务器
slmgr.vbs -ato
slmgr.vbs -xpr
#kms.digac.cc换成自己对应的服务器IP或者域名
#这里是我们提供的几台KMS激活服务器
#kms.vnas.me
#kms.wooo.men
#kms.getssr.top
#kms.digac.cc
#以上服务器在使用前请使用tcping测试1688端口是否开启,至少有一台机器可用
激活Office
[v_notice]过程解析 (管理员模式运行 cmd→使用 CD 命令定位到软件目录下→卸载 KEY(也可以不管直接添加)→添加 KEY→更改激活服务器→激活→查看激活信息)[/v_notice]
下面为 Office 命令. 请大家灵活运用, 主要是定位软件安装目录. 其他命令不变
注 1: 仅能在企业版上使用. 也就是带 pro 后缀的
cd %ProgramFiles%\Office2013\Office15
cscript ospp.vbs /sethst:kms.digac.cc
cscript ospp.vbs /inpkey:这里改为你Office版本对应密钥
cscript ospp.vbs /act
cscript ospp.vbs /dstatus
注 2: 新版本的 Office 企业版自带了一个 KEY. 所以直接更换激活服务器即可激活, 不过万事都有一个如果, 如果你 KEY 无法激活. 请参考上面的命令更换 KEY
cd /d %ProgramFiles%\Microsoft Office\Office16
cscript ospp.vbs /sethst:kms.digac.cc
cscript ospp.vbs /act
cscript ospp.vbs /dstatus
三、下面提供各种版本的KMS KEY
KEY来源:https://technet.microsoft.com/en-us/library/jj612867.aspx
OPERATING SYSTEM EDITION KMS CLIENT SETUP KEY
OPERATING SYSTEM EDITION KMS CLIENT SETUP KEY
############################# Windows 2016 ########################################
Windows Server 2016 Datacenter CB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016 Standard WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 Essentials JCKRF-N37P4-C2D82-9YXRT-4M63B
############################# Windows 10 ########################################
Windows 10 Professional W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 Professional N MH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 Enterprise NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 Enterprise N DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4
Windows 10 Education NW6C2-QMPVW-D7KKK-3GKT6-VCFB2
Windows 10 Education N 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ
Windows 10 Enterprise 2015 LTSB WNMTR-4C88C-JK8YV-HQ7T2-76DF9
Windows 10 Enterprise 2015 LTSB N 2F77B-TNFGY-69QQF-B8YKP-D69TJ
############################# Windows 8.1 2012R2 #################################
Windows 8.1 Professional GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
Windows 8.1 Professional N HMCNV-VVBFX-7HMBH-CTY9B-B4FXY
Windows 8.1 Enterprise MHF9N-XY6XB-WVXMC-BTDCT-MKKG7
Windows 8.1 Enterprise N TT4HM-HN7YT-62K67-RGRQJ-JFFXW
Windows Server 2012 R2 Server Standard D2N9P-3P6X9-2R39C-7RTCD-MDVJX
Windows Server 2012 R2 Datacenter W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9
Windows Server 2012 R2 Essentials KNC87-3J2TX-XB4WP-VCPJV-M4FWM
############################# Windows 8 2012 ######################################
Windows 8 Professional NG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 Professional N XCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8 Enterprise 32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8 Enterprise N JMNMF-RHW7P-DMY6X-RF3DR-X2BQT
Windows Server 2012 BN3D2-R7TKB-3YPBD-8DRP2-27GG4
Windows Server 2012 N 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY
Windows Server 2012 Single Language 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ
Windows Server 2012 Country Specific 4K36P-JN4VD-GDC6V-KDT89-DYFKP
Windows Server 2012 Server Standard XC9B7-NBPP2-83J2H-RHMBY-92BT4
Windows Server 2012 MultiPoint Standard HM7DN-YVMH3-46JC3-XYTG7-CYQJJ
Windows Server 2012 MultiPoint Premium XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G
Windows Server 2012 Datacenter 48HP8-DN98B-MYWDG-T2DCC-8W83P
############################# Windows 7 2008R2 ####################################
Windows 7 Professional FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Professional N MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Professional E W82YF-2Q76Y-63HXB-FGJG9-GF7QX
Windows 7 Enterprise 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 Enterprise N YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 Enterprise E C29WB-22CC8-VJ326-GHFJW-H9DH4
Windows Server 2008 R2 Web 6TPJF-RBVHG-WBW2R-86QPH-6RTM4
Windows Server 2008 R2 HPC edition TT8MH-CG224-D3D7Q-498W2-9QCTX
Windows Server 2008 R2 Standard YC6KT-GKW9T-YTKYR-T4X34-R7VHC
Windows Server 2008 R2 Enterprise 489J6-VHDMP-X63PK-3K798-CPX3Y
Windows Server 2008 R2 Datacenter 74YFP-3QFB3-KQT8W-PMXWJ-7M648
Windows Server 2008 R2 for Itanium-based Systems GT63C-RJFQ3-4GMB6-BRFB9-CB83V
############################# Windows Vista 2008 ####################################
Windows Vista Business YFKBB-PQJJV-G996G-VWGXY-2V3X8
Windows Vista Business N HMBQG-8H2RH-C77VX-27R82-VMQBT
Windows Vista Enterprise VKK3X-68KWM-X2YGT-QR4M6-4BWMV
Windows Vista Enterprise N VTC42-BM838-43QHV-84HX6-XJXKV
Windows Web Server 2008 WYR28-R7TFJ-3X2YQ-YCY4H-M249D
Windows Server 2008 Standard TM24T-X9RMF-VWXK6-X8JC9-BFGM2
Windows Server 2008 Standard without Hyper-V W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ
Windows Server 2008 Enterprise YQGMW-MPWTJ-34KDK-48M3W-X4Q6V
Windows Server 2008 Enterprise without Hyper-V 39BXF-X8Q23-P2WWT-38T2F-G3FPG
Windows Server 2008 HPC RCTX3-KWVHP-BR6TB-RB6DM-6X7HP
Windows Server 2008 Datacenter 7M67G-PC374-GR742-YH8V4-TCBY3
Windows Server 2008 Datacenter without Hyper-V 22XQ2-VRXRG-P8D42-K34TD-G3QQC
Windows Server 2008 for Itanium-Based Systems 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK
Office 2013 Professional Plus YC7DK-G2NP3-2QQC3-J6H88-GVGXT
Office 2013 Standard KBKQT-2NMXY-JJWGP-M62JB-92CD4
Project 2013 Professional FN8TT-7WMH6-2D4X9-M337T-2342K
Project 2013 Standard 6NTH3-CW976-3G3Y2-JK3TX-8QHTT
Visio 2013 Professional C2FG9-N6J68-H8BTJ-BW3QX-RM3B3
Visio 2013 Standard J484Y-4NKBF-W2HMG-DBMJC-PGWR7
Access 2013 NG2JY-H4JBT-HQXYP-78QH9-4JM2D
Excel 2013 VGPNG-Y7HQW-9RHP7-TKPV3-BG7GB
InfoPath 2013 DKT8B-N7VXH-D963P-Q4PHY-F8894
Lync 2013 2MG3G-3BNTT-3MFW9-KDQW3-TCK7R
OneNote 2013 TGN6P-8MMBC-37P2F-XHXXK-P34VW
Outlook 2013 QPN8Q-BJBTJ-334K3-93TGY-2PMBT
PowerPoint 2013 4NT99-8RJFH-Q2VDH-KYG2C-4RD4F
Publisher 2013 PN2WF-29XG2-T9HJ7-JQPJR-FCXK4
Word 2013 6Q7VD-NX8JD-WJ2VH-88V73-4GBJ7
Office 2016 KEY:
Office Professional Plus 2016 XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99(专业版Plus)
Office Standard 2016 JNRGM-WHDWX-FJJG3-K47QV-DRTFM(标准版)
Project Professional 2016 YG9NW-3K39V-2T3HJ-93F3Q-G83KT
Project Standard 2016 GNFHQ-F6YQM-KQDGJ-327XX-KQBVC
Visio Professional 2016 PD3PC-RHNGV-FXJ29-8JK7D-RJRJK
Visio Standard 2016 7WHWN-4T7MP-G96JF-G33KR-W8GF4
Access 2016 GNH9Y-D2J4T-FJHGG-QRVH7-QPFDW
Excel 2016 9C2PK-NWTVB-JMPW8-BFT28-7FTBF
OneNote 2016 DR92N-9HTF2-97XKM-XW2WJ-XW3J6
Outlook 2016 R69KK-NTPKF-7M3Q4-QYBHW-6MT9B
PowerPoint 2016 J7MQP-HNJ4Y-WJ7YM-PFYGF-BY6C6
Publisher 2016 F47MM-N3XJP-TQXJ9-BP99D-8K837
Skype for Business 2016 869NQ-FJ69K-466HW-QYCP2-DDBV6
Word 2016 WXY84-JN2Q9-RBCCQ-3Q3J3-3PFJ6
2016年6月2日星期四
搬瓦工SS速度优化可行方案
06:51 寡人的吐槽胜地
Bandwagonhost搬瓦工vps属于OpenVZ架构,所以不能安装锐速来优化速度,安装netspeeder对流量的消耗是成倍的,所以要是一边做站一边ss不建议使用。
后期跟进:发现openvz优化并没有什么卵用速度还是那个样!唯一有效的方法是安装netspeeder和FinalSpeed,后者加速更明显
首先修复一下否则会报错,只要删除原来的sysctl并且新建一个软连接就行了。(注意,在删除前请备份/sbin/sysctl)
有些朋友还喜欢添加net bridge相关命令在sysctl中并且得到下面的错误,
可以运行如下命令解决,
如果继续得到如下错误,
还是用同样的方法新建软链接来解决。(注意,在删除前请备份/sbin/modprobe)
TCP优化
后期跟进:发现openvz优化并没有什么卵用速度还是那个样!唯一有效的方法是安装netspeeder和FinalSpeed,后者加速更明显
首先修复一下否则会报错,只要删除原来的sysctl并且新建一个软连接就行了。(注意,在删除前请备份/sbin/sysctl)
rm -f /sbin/sysctl
ln -s /bin/true /sbin/sysctl
有些朋友还喜欢添加net bridge相关命令在sysctl中并且得到下面的错误,
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
可以运行如下命令解决,
modprobe bridge
lsmod|grep bridge
如果继续得到如下错误,
FATAL: Module bridge not found.
还是用同样的方法新建软链接来解决。(注意,在删除前请备份/sbin/modprobe)
rm -f /sbin/modprobe
ln -s /bin/true /sbin/modprobe
TCP优化
vi /etc/sysctl.conf
fs.file-max = 51200net.core.rmem_max = 67108864net.core.wmem_max = 67108864net.core.netdev_max_backlog = 250000net.core.somaxconn = 4096net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 0net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 1200net.ipv4.ip_local_port_range = 10000 65000net.ipv4.tcp_max_syn_backlog = 8192net.ipv4.tcp_max_tw_buckets = 5000net.ipv4.tcp_fastopen = 3net.ipv4.tcp_mem = 25600 51200 102400net.ipv4.tcp_rmem = 4096 87380 67108864net.ipv4.tcp_wmem = 4096 65536 67108864net.ipv4.tcp_mtu_probing = 1net.ipv4.tcp_congestion_control = hybla
最后别忘了用如下命令重新加载下修改后的文件
sysctl -p
优化以后搬瓦工ss速度明显提升,白天油管720p不卡。
2016年6月1日星期三
极路由安装SS插件(暂时不可用)
06:49 寡人的吐槽胜地
为了解决同学因为安装了ss插件,而不能升级极路由固件的问题,GoGoVPN特地提供了远程刷机服务器,可以进行傻瓜化安装ss插件,只要配合我们的刷机服务器,就可以做到一键搞定!注意:固件不要升级
另外,还要关闭固件自动升级选项
具体步骤:
云插件安装开发模式,安装完,Windows用户,用putty登录极路由,putty是一个登录软件,自行百度下载。
运行putty,看到如下界面,输入极路由的ip,你如果没有改过极路由默认ip,应该是 192.168.199.1,端口1022,如图:
Mac用户,用终端替代putty就可以,终端里输入 ssh root@192.168.199.1 -p 1022
然后接下来操作都一样,继续往下看,
点击打开,看到如下画面,点击是
输入root,回车,接下来输入极路由后台密码(输入过程不显示的,莫惊慌,只管输入完,回车)
可以看到如下画面,表示登录成功。
接下来复制黏贴此命令到putty里,然后回车(感谢 じ☆ve↘彪哥提供)
选1,安装
一路完成安装后,重启极路由,就好了,登录极路由后台,高级设置里可以看到Shadowsocks,点击进行设置即可。
另外,还要关闭固件自动升级选项
具体步骤:
云插件安装开发模式,安装完,Windows用户,用putty登录极路由,putty是一个登录软件,自行百度下载。
运行putty,看到如下界面,输入极路由的ip,你如果没有改过极路由默认ip,应该是 192.168.199.1,端口1022,如图:
Mac用户,用终端替代putty就可以,终端里输入 ssh root@192.168.199.1 -p 1022
然后接下来操作都一样,继续往下看,
点击打开,看到如下画面,点击是
输入root,回车,接下来输入极路由后台密码(输入过程不显示的,莫惊慌,只管输入完,回车)
可以看到如下画面,表示登录成功。
接下来复制黏贴此命令到putty里,然后回车(感谢 じ☆ve↘彪哥提供)
cd /tmp && rm -rf *.sh && wget http://ss.bob-vpn.com/1.2/hiwifios1.0.sh && sh ./hiwifios1.0.sh && rm -rf *.sh
选1,安装
一路完成安装后,重启极路由,就好了,登录极路由后台,高级设置里可以看到Shadowsocks,点击进行设置即可。
订阅:
博文
(
Atom
)