Svn Hosting Service Server

9月 22nd, 2008

刚发现的一个免费的Svn Hosting Service Server的网站,对于我这些程序员来说SVN是很有必要的,所以先暂时把它记录在这。

Svn Hosting Service Server

http://www.svnhost.cn/

Posted in 随笔 | No Comments

鬼天气

7月 29th, 2008

什么鬼天气来的,这几天广州怎么会这么热啊,被这种鬼天气折磨得什么事都不想干~~~~~~

热啊,很热啊,实在太热啊~~~~~~~

Posted in 随笔 | No Comments

『转』Linux内核构架图

5月 28th, 2008

刚从网上看到这份资料觉得不错,就放上来收藏好(^_^)~~~~~

Linux内核构架图

Posted in Ubuntu | 3 Comments

深切哀悼地震遇难的同胞

5月 19th, 2008

null

Posted in 随笔 | No Comments

跑马灯的显示

5月 12th, 2008

最近一直在学习单片机,因此用汇编写了一个简单的跑马灯显示,也就当作一次练习。这代码已经在物理硬件测试过了,能够正常显示灯的闪烁。

代码如下:

  ORG 0000H
  SJMP START             ;跳转到START位置
  ORG 0030H
START:
  MOV A , #11111110B     ;赋值给累加器A
  MOV R5 , #10H          ;赋值给R5
LOOP_1:
  MOV P1 , A
  RL A                   ;向左移动一位
  ACALL DELAY            ;调用延时
  DJNZ R5 , LOOP_1       ;循环跳转回LOOP_1,直到R5为0为止
 

  MOV A , #01111111B     ;重新为累加器A赋值
  MOV R5 , #10H
LOOP_2:
  MOV P1 , A
  RR A                   ;向右移动一位
  ACALL DELAY
  DJNZ R5 , LOOP_2
  SJMP START             ;跳转回START,不断的循环

DELAY
  MOV R7 , #0EAH         ;开始延时
DELAY_LOOP:
  MOV R6 , #0FFH
  DJNZ R6 , $
  DJNZ R7, DELAY_LOOP
  RET                    ;延时结束返回

  END

Posted in 单片机 | No Comments

LAMP + Phpmyadmin + Proftpd安装与配置

4月 28th, 2008

这篇文章很久之前已经写下了,这次只是把它从另外一个Blog转过来而已。

注:

根据以下文章参考所得:

http://forum.ubuntu.org.cn/about34314.html

http://forum.ubuntu.org.cn/viewtopic.php?t=1320&postdays=0&pos×der=asc&start=0

http://blog.ssh.tw/?p=870

http://sysapp.51cto.com/art/200512/13178_1.htm

这次安装配置的环境是在ubuntu server 7.10下进行的,并且是通过远程方式来安装配置的,如在其它环境下安装配置此方面那请根据自身情况来作选择性参考。由于本人是第一次安装配置mysql5 + Apache2 + PHP5+Phpmyadmin + proftpd,如发现有错的地方,请各位原谅并请各位严正指出。

1、  由于是使用apt-get install来的方式安装其中部分软件,所以先对你的系统进行一次更新,以免稍后无法下载安装所需的软件:

sudo apt-get update

sudo apt-get dist-upgrade

2、  安装

sudo apt-get install mysql-server mysql-client             安装mysql5

sudo apt-get install apache2                               安装apache2

sudo apt-get install php5                                  安装php5

sudo apt-get install php5-mysql                           安装php的mysql模块

sudo apt-get install php5-gd                               安装GD库

在运行上面的命令的时候,可以留心看下libapache2-mod-auth-mysql(安装apache2时可能会安上)和libapache2-mod-php5,如果看到安上了就不用再单独安装了。若没安装就必须对其进行独立的安装:

sudo apt-get install libapache2-mod-auth-mysql

sudo apt-get install libapache2-mod-php5

3、  配置

在安装MYSQL时会有提示要输入你登录MYSQL时的密码,个人建议最好输入密码,以免以后再进行设置。

下面就根据各自需要对apache2、php5、mysql的配置文件进行设置(在查看网上资料时可以暂时不对这三个配置文件配置,但由于考虑到所配置的机是用来做服务器的,所以就对其进行设置,至于网上说是否可以暂时不用配置未曾测试过。)

a)      首先对/etc/php5/apache2/php.ini进行配置(在对这些配置文件进行配置时,建议都进行相关的备份,以防配置出错可以恢复:sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini_backup。下面的其他配置文件也做同样的备份,以下就不做说明了)

    memory_limit = 128M =>修改成你所需的内存大小

   

upload_max_filesize = 2M =>修改文件最大上传尺寸,这里我修改为1024M

open_basedir = > open_basedir = /var/www/         将前面的注释去掉

#禁止使用phpinfo和get_cfg_var函数,这样可以避免泄露服务信息,一般在在确认PHP能正常工作之后再使之关闭:

disable_functions = > disable_functions = phpinfo,get_cfg_var

#设置php程序错误日志
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_err.log
#如果php程序没有指明需要register_globals的话,最好把register_globals设置为Off,这样可以避免很多安全问题的。注意,如果你的程序是需要register_globals的话,可千万别关。Ubuntu默认是关闭的。
register_globals = Off#禁止打开远程地址,记得最近出的php include的那个漏洞吗?就是在一个php程序中include了变量,那么入侵者就可以利用这个控制服务器在本地执行远程的一个php程序,例如phpshell,所以我们关闭这个。
allow_url_fopen = Off
在文件最后添加:

extension=mysql.so

extension=gd.so

b)  接着下面对/etc/mysql/my.cnf进行配置

在Ubuntu下用apt装的mysql默认是禁止从网络连接MySQL的,我们可以从/etc/mysql/my.cnf文件中看到有skip-networking语句的,如果你做的是MySQL服务器的话,那么是要将其注释掉的,这样其他机器才能访问你这台机器,如果该服务仅供本机使用的话,那么就保持原状,这样别的机器不能访问你这台机器的MySQL。由于这里我是通过远程来安装的,需要通过远程来测试,所以就要将其注释去掉。

c)       配置/etc/apache2/sites-enabled/000-default(可以跳过,不设置)

由于不想在登录apache2时出现目录浏览,所以对此进行了设置,还有在网上的大多数资料说要去掉目录浏览是在httpd.conf这文件下设置的,但由于通过apt-get install 安装的apache2的默认的配置文件目录是在sites-enabled下的000-default,而不是httpd.conf,所以这里需要设置的是000-default。通过查找000-default文件,将

<Direc×y /var/www/>

           Options Indexes FollowSymlinks MultiViews

           AllowOverride None

           Order allow,deny

           allow from all

           #This directive allows us to have apache2’s default start page

           #in /apache2-default/, but still have / go to the right place

           #RedirectMatch ^/$ /apache2-default/

</ Direc×y >

中的Indexes去掉,这样在登录apache2就不会有目录浏览了。

d)      配置/etc/apache2/apache2.conf

在文件最后添加

AddType application/x-httpd-php .php .htm .html    #让apache支持.htm .html .php

AddDefaultCharset UTF-8                           #解决firefox显示乱码

重启apache后,如果出现:
* Restarting web server apache2
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

则继续添加ServerName 127.0.0.1(这里根据上面的提示来添加,此处我添加的是本机的IP地址)

4、  安装phpmyadmin

不知为什么我通过apt-get install安装的话不不是装在/var/www/目录下,曾试过将其目录复制到/var/www/下,但出现很多问题,最终我只好将其卸载,直接到phpmyadmin官方网上下载源码包(http://www.phpmyadmin.net/),根据自己情况下载不同的源码包,我所下载的是phpMyAdmin-2.11.2.2-all-languages.tar.gz,接下来就是将其解压到/var/www/下。在配置phpmyadmini前最好先阅读一下其里面的Documentation.html说明文件。按照其说明将里面的config.sample.inc.php复制成config.inc.php:

sudo cp config.sample.inc.php config.inc.php

接下来就是对config.inc.php进行配置

$cfg[ ‘blowfish_secret’ ] = >这里网上资料说可以输入任何数据,在我就输入mysql的密码

// $cfg[ ‘Servers’ ][ $i ][ ‘controluser’ ] = ‘pma’;

// $cfg[ ‘Servers’ ][ $i ][ ‘controlpass’ ] = ‘pmapass’;

将上面两行前的注释 // 去掉,然后改成自己的mysql的用户名和密码:

$cfg[ ‘Servers’ ][ $i ][ ‘controluser’ ] = ‘root’;

$cfg[ ‘Servers’ ][ $i ][ ‘controlpass’ ] = ‘mysql密码’;

5、  接下来就是重启一下apache2

sudo /etc/init.d/apache2 restart

之后就可以在浏览器输入http://你的ip地址/phpmyadmin,若你是在本地机安装在本地机浏览的则可以输入http://localhost/phpmyadmin,能出现phpmyadmin的欢迎界面则表示安装成功。接着用刚次设置的用户名与密码来登录,看是否能对mysql实行正常管理。

6、  安装proftpd

sudo apt-get install proftpd-mysql

7、  对proftpd与mysql进行连接配置

a)      用phpmyadmin创建数据库ftp,然后对其权限进行设置,提供SELECT, INSERT, UPDATE, DELETE的权限。

b)      在数据库ftp中创建表格,具体的mysql创建语句如下(可以根据下面的语句来用phpmyadmin创建):

CREATE TABLE ftpgroup (
groupname varchar(16) NOT NULL default ”,
gid smallint(6) NOT NULL default ‘5500′,
members varchar(16) NOT NULL default ”,
KEY groupname (groupname)
) TYPE=MyISAM COMMENT=’ProFTP group table’;

CREATE TABLE ftpuser (
id int(10) unsigned NOT NULL auto_increment,
userid varchar(32) NOT NULL default ”,
passwd varchar(32) NOT NULL default ”,
uid smallint(6) NOT NULL default ‘5500′,
gid smallint(6) NOT NULL default ‘5500′,
homedir varchar(255) NOT NULL default ”,
shell varchar(16) NOT NULL default ‘/sbin/nologin’,
count int(11) NOT NULL default ‘0′,
accessed datetime NOT NULL default ‘0000-00-00 00:00:00′,
modified datetime NOT NULL default ‘0000-00-00 00:00:00′,
PRIMARY KEY (id),
UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT=’ProFTP user table’

c)       配置/etc/proftpd/proftpd.conf

DeferWelcome    off  —>  DeferWelcome   on

#DefaultRoot     ~   —>  DefaultRoot     /home/ftp   将其前面的注释#号去掉,并根据自己所建立的ftp目录设置,不然默认目录为/home

User      proftpd  —>   User    nobody

UseReverseDNS     off

IdentLookups      off

以上两句要加入到文件中

#SQLBackend      mysql  —>  将其前面注释#号去掉

d)      在  <IfModule mod_ctrls_admin.c>

        AdminControlsEngine  on

        </IfModule>

    之后添加以下代码:

SQLAuthTypes Backend   Plaintext                #数据库认证的类型

SQLAuthenticate         user* groups*

SQLAuthenticate on                         #数据库的鉴别
SQLConnectInfo HostName@localhost:Port UserName password       #数据库联接的信息,DatabaseName是数据库名, HostName是主机名,#Port是端口号,UserName是连接数据库的用户名,Password是密码。

#下面为指定用来做用户认证的表的有关信息:
SQLUserInfo ftpuser userid passwd uid gid homedir shell     

SQLGroupInfo ftpgroup groupname gid members           
SQLLogFile /var/log/proftpd/sql.log                      # SQL Log 档
SQLHomedirOnDemand on          #如果home目录不存在,则系统会为根据它的home项新建一个目录
SQLLog PASS updatecount               # SQL Log 格式,当正确登入時,要执行的 SQL 语法

SQLNamedQuery updatecount UPDATE “count=count+1, accessed=now() where userid=’%u’” ftpuser
SQLLog STOR,DELE modified         # SQL Log 格式,当存储或刪除档案時,要执行的 SQL 语法
SQLNamedQuery modified UPDATE “modified=now() where userid=’%u’” ftpuser
RequireValidShell off

e)      建立使用者账号(同样可以用phpmyadmin来实现)

insert into ftp (userid, passwd , uid, gid , homedir ) values (’ubuntu_user’,password(’12345′), ‘5500′,’5500′,’/home/ftp’);

 f)  在/home/ftp目录下建立文件夹download、upload,并且对其进行权限设置

sudo mkdir download /home/ftp

sudo mkdir upload /home/ftp

sudo chown 777 download /home/ftp

sudo chown 777 download /fome/ftp

f)        设置匿名用户登录:

首先将

# </Anonymous ~ftp>

………….

………….

         # </Anonymous>

         前的注释号#去掉,然后将

         </Anonymous ~ftp> 改为 </Anonymous /home/ftp/download>   #这里我只允许匿名用户登录访问/home/ftp/download这一目录。

        

         MaxClients     10    # 最大匿名用户登录数,默认为10

         

        下面设置匿名用户登录时为只读,不可写(这里配置文件默认为此):

   <Limit WRITE>

           DenyAll

         </Limit>

        在上面之后添加代码:

        TransferRate RETR 3000     #下载最大速度为3 M/S

       

        # <Direc×y incoming>

        # …………….

        # </Direc×y>

        将其前面的注释号#也要去掉

8、  重新启动proftpd

sudo /etc/init.d/proftd restart

之后若能够通过所设定的用户名和密码来登录ftp,则表示设置成功。

Posted in Ubuntu | No Comments

终于在ubuntu下建Blog啦

4月 27th, 2008

最终还是回到Ubuntu下建Blog了.之前我已经在搜狐上弄了一个Blog的啦,但一直不是很喜欢那里的风格,嫌那些插件太多了,感觉很累赘似的,然后本来考虑自己租用空间和域名来弄一个独立的Blog,但最近留意了一下空间和域名的money并不是那么便宜的,加上最近小弟也比较穷,所以这一计划也被打消了。这使我又重新回到了Ubuntu的大家庭了,建立自己在Ubuntu的Blog.

言归正传,欢迎各位赏面来到小弟的Blog指点迷津(^_^)~~~~~~~

Posted in 随笔 | 2 Comments