目前互联网络上到处都是扫描器,探测蜘蛛的情况之下,一个新安装Windows XP还没有进行打补丁动作的个人电脑的平均存活时间仅仅只有3。在3之后,电脑就会被网络上的恶意程序所感染。而连上网通过 WindowsUpdate更新补丁这段时间当然也算在内。不过还好,如果用户不是直接连接互联网,而是通过路由器或者防火墙来上网的话,存活时间将会大大加长。看到这个新闻确实有同感,同时也加强了安全意识,服务器一定要安全,客户才能满意!
在VPS上安装完MySQL之后,缺省的用户只有root@localhost,新添加MySQL用户最简单的方法是: 在phpmyadmin里面执行如下语句(语句最后要加分;号):
grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD'
当然在SSH里面运行
mysql -uroot -p
之后也能够输入上面的sql语句,效果一样。 解释如下: 这将添加新用户,用户名称是USERNAME,密码是PASSWORD,这个用户在DBNAME这个数据库里面有修改,读取等权限。
或者:
大家觉得这个,可能不方便,就用第一个grant了,直接修改得了!
grant all privileges on DBNAME.* to USERNAME@localhost identified by 'PASSWORD'
flush privileges
当然在SSH里面运行
mysql -uroot -p
之后也能够输入上面的sql语句,效果一样。 解释如下: 这将添加新用户,用户名称是USERNAME,密码是PASSWORD,这个用户在DBNAME这个数据库里面有修改,读取等权限。
GRANT USAGE ON *.* TO wiki@localhost IDENTIFIED BY 'wiki';
flush privileges
//一定要注意需要flush,那个用户才能登陆的喔。或者:
mysqladmin -u root password YOUR_PASSWORD
mysqladmin -u用户名 -p旧密码 password 新密码 修改密码
大家觉得这个,可能不方便,就用第一个grant了,直接修改得了!
CentOS 下的socks5 安装配置
socks5代理的功能和作用这里我就不罗嗦了,下面是在CentOS5 VPS下的安装配置的一些笔记 --------------------------------------- 1.配置编译环境
yum -y install gcc automake make
2.安装socks5必要的包
yum -y install pam-devel openldap-devel cyrus-sasl-devel
3.下载,编译安装ss5(socks5)
wget http://jaist.dl.sourceforge.net/sourceforge/ss5/ss5-3.6.1-1.tar.gz
tar zxvf ss5-3.6.1-1.tar.gz
cd ss5-3.6.1
./configure
make
make install
#启动ss5服务
/etc/init.d/ss5 start
ss5 默认使用1080端口,并允许任何人使用。 我们可以修改 /etc/opt/ss5/ss5.conf 中的
# SHost SPort Authentication
#
auth 0.0.0.0/0 - -
为
# SHost SPort Authentication
#
auth 0.0.0.0/0 - u
在 /etc/opt/ss5/ss5.passwd 中添加 用户名和密码 如:
test test
使用用户验证,重启ss5服务
/etc/init.d/ss5 restart
socks5代理的功能和作用这里我就不罗嗦了,下面是在CentOS5 VPS下的安装配置的一些笔记 --------------------------------------- 1.配置编译环境
yum -y install gcc automake make
2.安装socks5必要的包
yum -y install pam-devel openldap-devel cyrus-sasl-devel
3.下载,编译安装ss5(socks5)
wget http://jaist.dl.sourceforge.net/sourceforge/ss5/ss5-3.6.1-1.tar.gz
tar zxvf ss5-3.6.1-1.tar.gz
cd ss5-3.6.1
./configure
make
make install
#启动ss5服务
/etc/init.d/ss5 start
ss5 默认使用1080端口,并允许任何人使用。 我们可以修改 /etc/opt/ss5/ss5.conf 中的
# SHost SPort Authentication
#
auth 0.0.0.0/0 - -
为
# SHost SPort Authentication
#
auth 0.0.0.0/0 - u
在 /etc/opt/ss5/ss5.passwd 中添加 用户名和密码 如:
test test
使用用户验证,重启ss5服务
/etc/init.d/ss5 restart
修改mysql的编码为utf8
MySQL的中文编码问题最简单的解决方案是:修改mysql的配置文件/etc/mysql/my.cnf (在CentOS下是/etc/my.cnf),在[mysqld] 和 [client]段都加入如下指令:
default-character-set=utf8
注意:如果没有[client]段,就手工加入[client]段。然后重新启动MySQL即可。验证一下是否生效:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql>
这样新建立的数据库缺省就是UTF8编码了。
MySQL的中文编码问题最简单的解决方案是:修改mysql的配置文件/etc/mysql/my.cnf (在CentOS下是/etc/my.cnf),在[mysqld] 和 [client]段都加入如下指令:
default-character-set=utf8
注意:如果没有[client]段,就手工加入[client]段。然后重新启动MySQL即可。验证一下是否生效:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql>
这样新建立的数据库缺省就是UTF8编码了。
安装Windows Server 2003操作系统的VPS在console登录默认要先按下Ctrl+Alt+Delete组合键然后才弹出登录对话框,要取消这个限制的方法是:点击 “开始-->运行” 在弹出的DOS窗口中输入gpedit.msc,在新窗口中选择:计算机配置-->Windows设置-->安全设置-->本地策略,这时在本地策略下面可见到有“安全选项”,点击“安全选项”在右侧的框内找到“交互式登录:不要按CTRL+ALT+DEL”,启用这个选项即可。
通过IP反查域名
在下面这个地方可以通过IP反查域名,结果还是比较准确的 http://www.domaintools.com/reverse-ip/
在下面这个地方可以通过IP反查域名,结果还是比较准确的 http://www.domaintools.com/reverse-ip/
http://rashost.com/blog/spawn-fcgi-release-from-lighttpd
spawn-fcgi是一个小程序,这个程序的作用是管理fast-cgi进程,功能和php-fpm类似。
最初spawn-fcgi是lighttpd的一部分,2009年2月份,lighttpd的开发人员把spawn-fcgi单独拿出来成立了一个项目,详见 http://blog.lighttpd.net/articles/2009/02/18/prerelease-of-spawn-fcgi-1-... 。spawn-fcgi的项目地址是 http://redmine.lighttpd.net/projects/spawn-fcgi/wiki ,目前的最新版本是1.6.2
spawn-fcgi是个新项目,很多Linux发行版都没有收录,我们瑞豪开源针对VPS常用的Linux发行版编译了spawn-fcgi,放在http://rashost.com/download 供客户下载安装
MySQL的Replication功能可以自动同步主MySQL服务器的更新到若干个辅MySQL服务器上,这个功能能把MySQL的数据实时分布到多台机器上,提交了MySQL的数据安全性。
配置MySQL Replication并不是个简单的工作,如果配置的不好,回导致MySQL的同步性能不好,或者不能同步,甚至导致主辅服务器的数据不一致。
下面主服务器为master,辅助服务器为slave
master的配置
第一步保证master能单机正常工作,略。
在master上创建一个MySQL用户,这个用户专门用于Replication:
grant replication slave on *.* to 'repluser'@'%' identified by 'mypassword';
编辑MySQL的配置文件,允许log-bin,并且给master分配一个ID:
[mysqld]
skip-name-resolve
server-id=10
log-bin=mysql-bin
sync_binlog=1
innodb_flush_logs_at_trx_commit=1
innodb_support_xa=1
slave的配置
配置ID等
[mysqld]
server-id=20
log_bin = mysql-bin
relay_log = mysql-relay-bin
skip_slave_start
log_slave_updates = 1
read_only
skip-name-resolve
同步数据
在master上把数据导出,并记录当前数据位置。用一个用户连接mysql并运行:
flush tables with read lock;
show master status;
然后该连接不要退出,否则read lock就失效了,记录下当前日志的文件名和位置。在另外一个窗口运行如下命令导出数据:
mysqldump -uroot -p --all-databases |gzip -c > db.sql.gz
然后把数据文件拷贝到slave上,解压缩:
gunzip db.sql.gz
进MySQL导入:
source db.sql;
这时候slave上的数据已经同步到master的导出时刻的数据了,下面就启动自动同步的线程就可以了:
change master to master_host='1.1.1.1', master_user='repluser', aster_password='mypassword',master_log_file='mysql-bin.000006',master_log_pos=502185;
show slave status;
start slave;
show slave status;
从上面的show slave status命令的输出可以看到,IO线程和SQL线程都开始工作了。过几分钟后比较一下slave和master上的日志文件及其位置,应该就是一样的了。
注意事项
* 应用程序不要使用数据库的root用户,一定要创建普通用户供应用程序使用,因为root用户可以在slave上进行写操作,容易导致数据不一致。
http://rashost.com/blog/centos5-vps-compile-php-fpm
本文记录了在CentOS 5 VPS上编译打了php-fpm补丁的php 5.2.10的过程。
安装库文件
安装编译php需要的一些库文件
yum install libxml2-devel libmcrypt-devel openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel openldap-devel libmhash-devel mysql-devel libtool-ltdl-devel
如果是64位的系统,然后需要调整一下mysql的库文件,否则在64位系统下老去找32位的mysql库:
cd /usr/lib
mv mysql mysql.i386
ln -sf /usr/lib64/mysql mysql
编译php-fpm
给php打php-fpm补丁:
cd php-5.2.10
patch -p1 < ../php-5.2.10-fpm-0.5.13.diff
开始编译php,注意:如果是64位的系统,建议去掉 --with-ldap-sasl,否则有可能编译不过
./configure --prefix=/opt/php --with-iconv --with-zlib --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear --with-mysql --with-mysqli --enable-sqlite-utf8 --with-pdo-mysql --enable-ftp --with-jpeg-dir --with-png-dir
make
当编译到php-5.2.10/ext/date/lib/parse_date.c的时候,挂了,好像不往下走了,这时候ctrl-c中断编译过程,把当前正在执行的语句复制粘贴到命令行单独执行,发现还是好像死循环一样不结束,再次ctrl-c中断,删除掉这个命令中的-O2参数,继续执行,这样这个命令很快就结束了,然后继续运行:
make
make install
cp php.ini-dist /opt/php/lib/php.ini
然后运行 /opt/php/sbin/php-fpm start 就可以启动php的fastcgi进程了,这些php fastcgi进程应该可以正常工作了。
优化php-fpm
编辑php-fpm的配置文件/opt/php/etc/php-fpm.conf,
* 去掉display_errors参数的注释,修改参数值为1
* 去掉sendmail_path参数的注释
* 去掉user,group参数的注释,并设定值为nobody
* 修改max_children参数的值为10
安装php加速器eAccelerator
tar jxf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
yum install -y autoconf
/opt/php/bin/phpize
./configure --enable-eaccelerator --with-php-config=/opt/php/bin/php-config
make
make install
mkdir /opt/php/eaccelerator_cache
然后vim /opt/php/lib/php.ini,在文件末尾加入:
[eaccelerator]
zend_extension="/opt/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/opt/php/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
然后重启php-fpm,在phpinfo()页面中应该能看到eaccelerator的信息了。
打包
我们把/opt/php目录打包放到 http://rashost.com/download 下面,供客户下载使用。
最后,安装好之后,记着在/etc/rc.local文件中加入自动启动php-fpm的语句:
/opt/php/sbin/php-fpm start
phpmyadmin是个很方便的mysql数据库管理工具,可以用来管理mysql数据库,导入,导出等。
phpmyadmin在导入mysql的时候有个问题,如果要导入的数据库文件比较大,那么导入就会失败。下面介绍一个方法,可以导入任意大小的mysql数据库,步骤如下:
1. 通过FTP把数据库的SQL文件上传到网站的根目录下
2. 在网站的根目录下,创建文件import.php,该文件的内容见文章末尾
3. 在浏览器里面访问这个import.php,假设你的网站域名是www.a.com,那么就在浏览器里面访问 http://www.a.com/import.php , 只要浏览器一开始访问这个import.php文件,数据就开始导入了
4. 数据导入结束后,屏幕上会出现"import ok"的字样
import.php文件的内容如下:
<?
system("mysql -uroot -pmypassword database < a.sql");
print "import ok";
?>
其中root表示数据库用户名,mypassword表示root的密码,database表示要导入的数据库的名字,a.sql表示数据库文件的文件名,该文件是解压缩后的文件。这几个变量可以根据实际情况修改。
rsync是Linux下最好的同步软件,本文记录了在centos 5 VPS下配置rsync服务端的过程。
安装:
yum install -y rsync xinetd
然后rpm -ql rsync就可以看到rsync安装了哪些文件。编辑/etc/xinetd.d/rsync文件,修改disable=no,然后重启xinetd:
/etc/init.d/xinetd restart
创建文件 /etc/rsyncd.conf 内容如下:
pid file = /var/run/rsyncd.pid
port = 873
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow=68.68.99.184/255.255.255.0 216.18.195.23/255.255.255.0
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
log file = /var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[www]
path = /home/pics/www
list=yes
ignore errors
auth users = pics
secrets file = /etc/rsyncd.secrets
comment = pics www
创建文件 /etc/rsyncd.motd 内容随便写即可
创建文件 /etc/rsyncd.secrets 内容是用户名和密码,比如:
syncuser: mypassword
然后执行如下命令:
chmod 700 /etc/rsyncd.secrets
这样就配置好了,在客户端就可以用rsync命令了,比如:
rsync rsync://syncuser@216.18.195.23/
rsync --password-file=/etc/rsync.password rsync://syncuser@216.18.195.23/www /home/pics/www --recursive --times --links --hard-links --delete -av
CentOS的时区配置文件是:/etc/sysconfig/clock 。 这个配置文件里面支持UTC,ARC,SRM,ZONE这几个配置选项,关于这几个配置选项详解如下:
* UTC - 指定BIOS中保存的时间是否是GMT/UTC时间,true表示BIOS里面保存的时间是UTC时间,false表示BIOS里面保存的时间是本地时间。
* ZONE - 指定时区,ZONE的值是一个文件的相对路径名,这个文件是相对 /usr/share/zoneinfo 目录下的一个时区文件。比如ZONE的值可以是:“Asia/Shanghai", "US/Pacific", "UTC" 等
* ARC - 这个选项一般配置false,在一些特殊硬件(Alpha)下才配置该选项为true。
* SRM - 同ARC,该选项一般配置false,在一下特殊硬件下才配置该选项为false。
这个配置文件里面的参数和 hwclock 命令关系很大,系统在启动的时候读取 /etc/sysconfig/clock 文件的内容,根据这些内容调用 hwclock 命令。
来源:http://rashost.com/blog/centos5-vps-nginx-solution2
本文介绍在CentOS 5 VPS下的nginx+php+mysql的解决方案之二,本方案使用php-fpm作为fastcgi的进程管理器。
使用php-fpm就必须重新编译php,不能使用系统自带的php。我们的观点是尽量使用系统自带的,除非功能满足不了。本方案中MySQL是使用CentOS 5自带的,Nginx是我们自己编译的。
安装Nginx
centos系统不带nginx,我们用的Nginx是自己编译的,Nginx版本是最新稳定版本0.7.61,到 http://rashost.com/download 下载nginx,然后开始安装:
rpm -ivh nginx-0.7*.rpm
chkconfig --list nginx
chkconfig nginx on
/etc/init.d/nginx start
rpm -ql nginx
上面的rpm -ql nginx命令是看看nginx的文件都安装在哪些目录下面了,可以看到nginx的缺省网页目录应该是/usr/share/nginx/html/
通过浏览器访问,应该能看到nginx的缺省网页了,说明nginx正常工作了!
安装MySQL
我们使用CentOS自带的MySQL,安装命令:
yum install -y mysql-server
chkconfig --list mysqld
chkconfig mysqld on
/etc/init.d/mysqld start
运行mysql -uroot命令,应该可以正常连接到MySQL
安装php & php-fpm
先安装php & php-fpm所依赖的一些库文件:
yum install libmhash libmcrypt libtool-ltdl libpng libjpeg curl
然后到 http://rashost.com/download 下载我们自己编译的php-fpm,并安装:
cd /opt
tar zxf php-fpm-5.2.10*.tar.gz
/opt/php/sbin/php-fpm start
然后编辑/etc/rc.local,在其中加入/opt/sbin/php-fpm start
整合
首先在/usr/share/nginx/html目录下创建文件test.php,其内容很简单,只要下面一行:
<?phpinfo();?>
假设所在VPS的地址是centos5.rashost.com,这时通过浏览器访问http://centos5.rashost.com/test.php是得不到正确的显示结果的。
修改nginx的配置文件/etc/nginx/nginx.conf,在文件内搜索fastcgi_pass,修改该部分内容为:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
然后重启nginx:
/etc/init.d/nginx/restart
然后在浏览器中访问test.php页面,就应该能正确显示了,reboot VPS测试一下,各个模块应该都能自带启动。大功告成
本文介绍在CentOS 5 VPS下的nginx+php+mysql的解决方案之二,本方案使用php-fpm作为fastcgi的进程管理器。
使用php-fpm就必须重新编译php,不能使用系统自带的php。我们的观点是尽量使用系统自带的,除非功能满足不了。本方案中MySQL是使用CentOS 5自带的,Nginx是我们自己编译的。
安装Nginx
centos系统不带nginx,我们用的Nginx是自己编译的,Nginx版本是最新稳定版本0.7.61,到 http://rashost.com/download 下载nginx,然后开始安装:
rpm -ivh nginx-0.7*.rpm
chkconfig --list nginx
chkconfig nginx on
/etc/init.d/nginx start
rpm -ql nginx
上面的rpm -ql nginx命令是看看nginx的文件都安装在哪些目录下面了,可以看到nginx的缺省网页目录应该是/usr/share/nginx/html/
通过浏览器访问,应该能看到nginx的缺省网页了,说明nginx正常工作了!
安装MySQL
我们使用CentOS自带的MySQL,安装命令:
yum install -y mysql-server
chkconfig --list mysqld
chkconfig mysqld on
/etc/init.d/mysqld start
运行mysql -uroot命令,应该可以正常连接到MySQL
安装php & php-fpm
先安装php & php-fpm所依赖的一些库文件:
yum install libmhash libmcrypt libtool-ltdl libpng libjpeg curl
然后到 http://rashost.com/download 下载我们自己编译的php-fpm,并安装:
cd /opt
tar zxf php-fpm-5.2.10*.tar.gz
/opt/php/sbin/php-fpm start
然后编辑/etc/rc.local,在其中加入/opt/sbin/php-fpm start
整合
首先在/usr/share/nginx/html目录下创建文件test.php,其内容很简单,只要下面一行:
<?phpinfo();?>
假设所在VPS的地址是centos5.rashost.com,这时通过浏览器访问http://centos5.rashost.com/test.php是得不到正确的显示结果的。
修改nginx的配置文件/etc/nginx/nginx.conf,在文件内搜索fastcgi_pass,修改该部分内容为:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
然后重启nginx:
/etc/init.d/nginx/restart
然后在浏览器中访问test.php页面,就应该能正确显示了,reboot VPS测试一下,各个模块应该都能自带启动。大功告成
Nginx是个Web服务器新秀,CentOS5官方没有Nginx的RPM包,本文记录了在64位的CentOS55.4下怎样编译Nginx 0.7.61版本的RPM包。
要编译RPM包,首先要有SRPM包,也就是RPM包的源代码包。可以从Nginx官网下载Nginx的源代码然后自己制作Nginx的SRPM包,这比较麻烦。本文下载了fedora 10中自带的Nginx的SRPM包,稍做修改即可。
安装SRPM包:
rpm -ivh nginx-0.7.61-1.fc10.src.rpm
上面命令把源代码安装在了/usr/src/redhat目录下,要编译RPM,需要rpmbuild命令:
yum install -y rpm-build.x86_64
然后就可以开始build了:
cd /usr/src/redhat/SPECS
rpmbuild -bb nginx.spec
build报错了,少了几个必须的库文件,我们来安装:
yum install -y pcre-devel.x86_64 zlib-devel.x86_64 openssl-devel.x86_64 mod_perl-devel.x64_64
然后修改nginx.spec文件,将其中的perl-devel修改成mod_perl-devel。继续build:
rpmbuild -bb nginx.spec
大功告成!build出来的RPM包就是/usr/src/redhat/RPMS/x86_64/nginx-0.7.61-1.x86_64.rpm 。同样的方法,我们在32位的CentOS5.4下也编译了一份,然后把他们都放到 http://rashost.com/download 下供大家下载。
什么情况下封你网站的的80端口
有下面任意情况,我们会封80端口:
1. 你网站的上有任何一个域名没有备案
2. 你网站的上有任何一个网站首页下面没有写上备案号
怎样解封
如果您没有备案的域名都没有指向您的你网站的,指向你网站的的所有域名都满足:
1. 去 http://www.miibeian.gov.cn/CX/main.jsp 查询到域名已经备案
2. 网站首页下面写上备案号码
那么您可以提交服务单给我们,写清楚哪些未备案的域名已经不再指向你网站的了,哪些域名已经备案了,备案号码是多少,我们收到服务单并验证后,会尽快解封80端口
怎样验证备案
到 http://www.miibeian.gov.cn/CX/main.jsp 输入自己的域名查询是否备案成功。如果备案成功,请一定把备案号码放到网站首页的下方,以免被误认为没有备案。
怎样去备案
点击这里查看我们的备案步骤,这是常规的备案方法,备案下来可能需要几十天的时间。
最快的备案方法
网络上有很多人声称能做在24小时以内做好备案,到 http://google.cn/ 搜索"备案",就会发现好多网站可以花钱购买到备案号码。
需要注意的是,我们不对这些网络上的快速备案做任何担保和推荐,请您自己鉴别真伪,自己来选择。
有下面任意情况,我们会封80端口:
1. 你网站的上有任何一个域名没有备案
2. 你网站的上有任何一个网站首页下面没有写上备案号
怎样解封
如果您没有备案的域名都没有指向您的你网站的,指向你网站的的所有域名都满足:
1. 去 http://www.miibeian.gov.cn/CX/main.jsp 查询到域名已经备案
2. 网站首页下面写上备案号码
那么您可以提交服务单给我们,写清楚哪些未备案的域名已经不再指向你网站的了,哪些域名已经备案了,备案号码是多少,我们收到服务单并验证后,会尽快解封80端口
怎样验证备案
到 http://www.miibeian.gov.cn/CX/main.jsp 输入自己的域名查询是否备案成功。如果备案成功,请一定把备案号码放到网站首页的下方,以免被误认为没有备案。
怎样去备案
点击这里查看我们的备案步骤,这是常规的备案方法,备案下来可能需要几十天的时间。
最快的备案方法
网络上有很多人声称能做在24小时以内做好备案,到 http://google.cn/ 搜索"备案",就会发现好多网站可以花钱购买到备案号码。
需要注意的是,我们不对这些网络上的快速备案做任何担保和推荐,请您自己鉴别真伪,自己来选择。
搜索安装扩展The Addon Bar (restored) 即可:
https://jackxiang.com/post/7227/
在网站开发中,通常为了方便开发,本地开发时会使用跟生产环境会相同的域名,然后通过切换 hosts 进行访问。
比如在开发时,指定 hosts :
127.0.0.1 www.jackxiang.com
需要对生产环境进行访问时,就修改 hosts,或者直接删除相应记录:
12.23.34.45 www.jackxiang.com
这样子做,除了方便开发外,还避免发布时引发不必要的路径问题。
正常情况下,修改 hosts 之后是需要重启 Firefox 才能生效的,如果是切换环境比较频繁的话,还是很烦人的,特别是当打开其他窗口的时候,重启一下 Firefox 代价还是很高的。
DNS Flusher 可以很简单地解决这个问题,装上后会在 Firefox 的状态栏右下角显示当前网站的 IP 地址,修改 hosts 后,回来点击一下,马上就刷新了,非常方便。
地址:https://addons.mozilla.org/en-US/firefox/addon/7408
HostAdmin插件
轻松切换当前域名绑定的IP (hosts文件中配置的)
https://jackxiang.com/post/7227/
在网站开发中,通常为了方便开发,本地开发时会使用跟生产环境会相同的域名,然后通过切换 hosts 进行访问。
比如在开发时,指定 hosts :
127.0.0.1 www.jackxiang.com
需要对生产环境进行访问时,就修改 hosts,或者直接删除相应记录:
12.23.34.45 www.jackxiang.com
这样子做,除了方便开发外,还避免发布时引发不必要的路径问题。
正常情况下,修改 hosts 之后是需要重启 Firefox 才能生效的,如果是切换环境比较频繁的话,还是很烦人的,特别是当打开其他窗口的时候,重启一下 Firefox 代价还是很高的。
DNS Flusher 可以很简单地解决这个问题,装上后会在 Firefox 的状态栏右下角显示当前网站的 IP 地址,修改 hosts 后,回来点击一下,马上就刷新了,非常方便。
地址:https://addons.mozilla.org/en-US/firefox/addon/7408
HostAdmin插件
轻松切换当前域名绑定的IP (hosts文件中配置的)
Linux 下单片机和Linux系统下的串口通讯程序:
http://wenku.baidu.com/view/b3eb1e11866fb84ae45c8da0.html
http://hi.baidu.com/zizio/item/358100ccea7d7a3a459416af
来源:http://www.dss.cn/Article/embed_system/200512/815.html
摘 要:介绍了一种采用Linux操作系统的PC机通过串口和MCS-51系列单片机进行通信的设计方法,给出了基本的硬件原理和通信程序设计的2种方法。实验证明,这种方案简单可靠、价格低廉,为Linux在工业控制等领域中的应用提供了一种解决方法。
关键词:Linux;单片机;串行通信;工业控制
单片机性能稳定、价格低廉、功能强大,在智能仪器、工业装备以及日用电子消费品中得到了越来越广泛的应用。在单片机的输入输出控制中,除直接接上小键盘和LCD显示屏等方法外,一般都通过串口和上位机PC进行通信,而后一种方法由于能实现远程控制,并且能够利用PC机强大的数据处理功能以及友好的控制界面,显得尤为重要。在一般的利用PC机对单片机进行控制的场合,都是采用Windows作为上位机的平台,其优点是界面友好,编程和操作都比较容易,缺点是稳定性太差,这对于需要连续数天或数月运行的装置来说,尤其不合适。在要求比较苛刻的场合,一般都采用UNIX工作站作为主控平台,如合肥同步辐射加速器的主控平台采用的是SUN的Solaris工作站系统,然而UNIX工作站昂贵的价格又大大限制了其使用的范围。近年来,随着Linux的迅猛发展,使其逐渐从少数人的玩具变成了主流的操作系统。Linux是遵循GPL协议的免费源代码开放软件,任何人都可以自由的从Internet上取得其源程序,也可在GPL的协议下修改其源代码以适应特定的应用,其运行在普通的PC上,性能稳定,特别适于做工业控制,因此实现Linux和单片机的串行通信非常有意义,他可以是昂贵的UNIX工作站的一种可选的替代方法。
1 硬件原理
目前国内使用较多的为MCS-51系列的单片机,因此选用的单片机实验对象为一片AT89C51,图1是硬件原理图,由于要实现符合RS232C的串行通信,还应该用一片ICL232CPE(MAX232)作为串行通信的电平转换电路。在实验过程中,为了查看通信是否成功,除了让单片机对上位机回送数据外,还在单片机外围扩展了几片锁存器,几个LED发光二极管和几个小键盘。串行通信是采用最简单的TxD,RxD,GND三线制连接,注意TxD和RxD两边应该交叉连线。

上位机是一台普通的PC机,共有2个串行口COM1,COM2,其运行RedHat8.0,实际上,如果不要求运行Gnome或KDE等图形界面,Linux对系统硬件的要求相当低。
实验证明,此电路简单可靠,非常适用于测试串行通信。
2 串行通信程序设计
串行通信程序包括下位机单片机和上位机PC机的程序。单片机接收上位机传来的数据,放到片内RAM里面,再将RAM内数据同时发送到外部扩展锁存器和上位机,由此可以判断通信是否成功。此程序由汇编语言写成,初始化时波特率设置为4 800 b/s,通信方式为8-N-1。
上位机程序的编写是关键部分,因为要对串口硬件设备进行操作,有2种方法,一是利用Linux内核自带的串口驱动程序,另外一种方法就是直接读写串口硬件端口,下面分别介绍。
2.1 利用串口驱动程序的编程方法
利用Linux自身的串口驱动程序进行编程,实际上就是调用驱动程序的一系列函数,完成串口通信参数的设置,数据的发送和接收。在这种方法中,Linux给每个串口都分配一个文件索引号,有相应的文件名称,实际上是将硬件设备看成一种特殊的文件,如COM1,COM2对应的文件分别为/dev/ttyS0,/dev/ttyS1,操作这2个串口实际上就是操作这2个文件,而对硬件设备文件的操作与对普通文件的操作并没有什么不同,都可以使用相同的文件I/O调用函数(open,write,read,close),不同之处在于用系统调用open()打开串口得到相应设备的文件描述符以后,先要对其进行初始化,设置一些特定的参数,如波特率、数据位、输入输出方式等,这些参数存放在structtermios中,函数tcsetattr()可以设置串口的structtermios,tcgetattr()可以得到串口的struct termios。设置完通信参数后就可用read和write对串口文件进行读写了。运行程序时要注意用户是否有对要操作的串口文件进行读写的权力,可以用chmod命令进行文件权限修改。
初始化函数如下:

初始化以后就开始发送和接收数据,先将一个字符串发送给单片机,单片机接收到数据后,将数据返回给上位机。但需要注意的是,由于上位机速度比单片机快得多,一次不能发送过多的数据,否则极有可能使发送缓冲区溢出而丢失数据,发送过后,还需等待一段时间,使单片机将数据完全发送到上位机后,再进行读取。

2.2 直接读写串口硬件端口的方法
在使用这个方法的时候,必须对串口通信的硬件原理有一些了解。PC机的串口是由通用异步收发器8250UART(或16550)为核心构成的,寄存器基地址分别是0x3f8(COM1)和0x2f8(COM2),还有其他的一些用于控制的寄存器。有很多寄存器是与Modem相关的,而在使用三线制进行通信时用不到,只用关心与通信相关的寄存器,比起使用为通用功能编写的串口设备驱动程序来,直接读写相关寄存器效率更高。

初始化后,就可以进行数据的收发了,接受数据之前必须保证接收数据就绪,这可以通过0x2fd的D0来判断,发送数据之前必须保证发送寄存器为空,这可以通过0x2fd的D5来判断,代码如下:

3 结语
实验表明,此系统采用的2种方法都完全实现了LinuxPC机与单片机之间点对点的通信,方法简单可靠,基本上在需要用到PC机与单片机串行通信的场合均可采用此种方法。随着近年来Linux在国内应用范围的日益壮大,在工业控制、数据采集等领域也必将越来越多的采用Linux,本文可以算作是一个有益的尝试。当然在实际应用中还需要考虑一些问题,比如进行出错处理的问题,可以在一个要发送的字符串后再发送一个校验和,当收到返回的校验和与发送的校验和不一致时再进行重发,再比如所采用的RS232C传输距离很短,并且抗干扰能力很差,这时需要将总线转换成差分传输的RS485/RS422。另外,稍加改进,就可实现PC机与多片51单片机的串行通信,这时由于共用一条总线,必须给每个单片机分配一个地址,然后由PC机对总线进行仲裁,只有获得总线使用权的单片机才能与上位机进行通信,这里不再赘述。
总之,本文只是为Linux PC和单片机串行通信提供了一个典型的范例,要应用到实际的项目中去,还需要根据实际的情况具体考虑,灵活应用,最终才能形成一个可靠的基于Linux平台的系统。
参考文献
[1] PhiCornes.Linux从入门到精通[M].童寿彬译.北京:电子工业出版社,1998.
[2]Peter Baumann H . Linux Serial - programming - HOWTO中文版[M].曾元佑译.
[3]万福君,潘松峰.单片微机原理系统设计与应用[M].合肥:中国科学技术大学出版社,2001.
[4][美]安格斯生.串行端口大全[M].精英科技译.北京:中国电力出版社,2001.
http://wenku.baidu.com/view/b3eb1e11866fb84ae45c8da0.html
http://hi.baidu.com/zizio/item/358100ccea7d7a3a459416af
来源:http://www.dss.cn/Article/embed_system/200512/815.html
摘 要:介绍了一种采用Linux操作系统的PC机通过串口和MCS-51系列单片机进行通信的设计方法,给出了基本的硬件原理和通信程序设计的2种方法。实验证明,这种方案简单可靠、价格低廉,为Linux在工业控制等领域中的应用提供了一种解决方法。
关键词:Linux;单片机;串行通信;工业控制
单片机性能稳定、价格低廉、功能强大,在智能仪器、工业装备以及日用电子消费品中得到了越来越广泛的应用。在单片机的输入输出控制中,除直接接上小键盘和LCD显示屏等方法外,一般都通过串口和上位机PC进行通信,而后一种方法由于能实现远程控制,并且能够利用PC机强大的数据处理功能以及友好的控制界面,显得尤为重要。在一般的利用PC机对单片机进行控制的场合,都是采用Windows作为上位机的平台,其优点是界面友好,编程和操作都比较容易,缺点是稳定性太差,这对于需要连续数天或数月运行的装置来说,尤其不合适。在要求比较苛刻的场合,一般都采用UNIX工作站作为主控平台,如合肥同步辐射加速器的主控平台采用的是SUN的Solaris工作站系统,然而UNIX工作站昂贵的价格又大大限制了其使用的范围。近年来,随着Linux的迅猛发展,使其逐渐从少数人的玩具变成了主流的操作系统。Linux是遵循GPL协议的免费源代码开放软件,任何人都可以自由的从Internet上取得其源程序,也可在GPL的协议下修改其源代码以适应特定的应用,其运行在普通的PC上,性能稳定,特别适于做工业控制,因此实现Linux和单片机的串行通信非常有意义,他可以是昂贵的UNIX工作站的一种可选的替代方法。
1 硬件原理
目前国内使用较多的为MCS-51系列的单片机,因此选用的单片机实验对象为一片AT89C51,图1是硬件原理图,由于要实现符合RS232C的串行通信,还应该用一片ICL232CPE(MAX232)作为串行通信的电平转换电路。在实验过程中,为了查看通信是否成功,除了让单片机对上位机回送数据外,还在单片机外围扩展了几片锁存器,几个LED发光二极管和几个小键盘。串行通信是采用最简单的TxD,RxD,GND三线制连接,注意TxD和RxD两边应该交叉连线。
上位机是一台普通的PC机,共有2个串行口COM1,COM2,其运行RedHat8.0,实际上,如果不要求运行Gnome或KDE等图形界面,Linux对系统硬件的要求相当低。
实验证明,此电路简单可靠,非常适用于测试串行通信。
2 串行通信程序设计
串行通信程序包括下位机单片机和上位机PC机的程序。单片机接收上位机传来的数据,放到片内RAM里面,再将RAM内数据同时发送到外部扩展锁存器和上位机,由此可以判断通信是否成功。此程序由汇编语言写成,初始化时波特率设置为4 800 b/s,通信方式为8-N-1。
上位机程序的编写是关键部分,因为要对串口硬件设备进行操作,有2种方法,一是利用Linux内核自带的串口驱动程序,另外一种方法就是直接读写串口硬件端口,下面分别介绍。
2.1 利用串口驱动程序的编程方法
利用Linux自身的串口驱动程序进行编程,实际上就是调用驱动程序的一系列函数,完成串口通信参数的设置,数据的发送和接收。在这种方法中,Linux给每个串口都分配一个文件索引号,有相应的文件名称,实际上是将硬件设备看成一种特殊的文件,如COM1,COM2对应的文件分别为/dev/ttyS0,/dev/ttyS1,操作这2个串口实际上就是操作这2个文件,而对硬件设备文件的操作与对普通文件的操作并没有什么不同,都可以使用相同的文件I/O调用函数(open,write,read,close),不同之处在于用系统调用open()打开串口得到相应设备的文件描述符以后,先要对其进行初始化,设置一些特定的参数,如波特率、数据位、输入输出方式等,这些参数存放在structtermios中,函数tcsetattr()可以设置串口的structtermios,tcgetattr()可以得到串口的struct termios。设置完通信参数后就可用read和write对串口文件进行读写了。运行程序时要注意用户是否有对要操作的串口文件进行读写的权力,可以用chmod命令进行文件权限修改。
初始化函数如下:
初始化以后就开始发送和接收数据,先将一个字符串发送给单片机,单片机接收到数据后,将数据返回给上位机。但需要注意的是,由于上位机速度比单片机快得多,一次不能发送过多的数据,否则极有可能使发送缓冲区溢出而丢失数据,发送过后,还需等待一段时间,使单片机将数据完全发送到上位机后,再进行读取。
2.2 直接读写串口硬件端口的方法
在使用这个方法的时候,必须对串口通信的硬件原理有一些了解。PC机的串口是由通用异步收发器8250UART(或16550)为核心构成的,寄存器基地址分别是0x3f8(COM1)和0x2f8(COM2),还有其他的一些用于控制的寄存器。有很多寄存器是与Modem相关的,而在使用三线制进行通信时用不到,只用关心与通信相关的寄存器,比起使用为通用功能编写的串口设备驱动程序来,直接读写相关寄存器效率更高。
初始化后,就可以进行数据的收发了,接受数据之前必须保证接收数据就绪,这可以通过0x2fd的D0来判断,发送数据之前必须保证发送寄存器为空,这可以通过0x2fd的D5来判断,代码如下:
3 结语
实验表明,此系统采用的2种方法都完全实现了LinuxPC机与单片机之间点对点的通信,方法简单可靠,基本上在需要用到PC机与单片机串行通信的场合均可采用此种方法。随着近年来Linux在国内应用范围的日益壮大,在工业控制、数据采集等领域也必将越来越多的采用Linux,本文可以算作是一个有益的尝试。当然在实际应用中还需要考虑一些问题,比如进行出错处理的问题,可以在一个要发送的字符串后再发送一个校验和,当收到返回的校验和与发送的校验和不一致时再进行重发,再比如所采用的RS232C传输距离很短,并且抗干扰能力很差,这时需要将总线转换成差分传输的RS485/RS422。另外,稍加改进,就可实现PC机与多片51单片机的串行通信,这时由于共用一条总线,必须给每个单片机分配一个地址,然后由PC机对总线进行仲裁,只有获得总线使用权的单片机才能与上位机进行通信,这里不再赘述。
总之,本文只是为Linux PC和单片机串行通信提供了一个典型的范例,要应用到实际的项目中去,还需要根据实际的情况具体考虑,灵活应用,最终才能形成一个可靠的基于Linux平台的系统。
参考文献
[1] PhiCornes.Linux从入门到精通[M].童寿彬译.北京:电子工业出版社,1998.
[2]Peter Baumann H . Linux Serial - programming - HOWTO中文版[M].曾元佑译.
[3]万福君,潘松峰.单片微机原理系统设计与应用[M].合肥:中国科学技术大学出版社,2001.
[4][美]安格斯生.串行端口大全[M].精英科技译.北京:中国电力出版社,2001.





