php交流

2008-08-15

让虚拟机Linux与宿主机Windows资源共享

归类于: linux, php — admin @ 8:59 am

虚拟机的使用的确给Linux的学习者提供了很大的方便。不过在Linux学习过程中,当涉及到应用软件的使用时,虽然可以直接从网上下载程序包或源码,但用惯了迅雷,对Linux中的下载速度简直无法忍受,且原有的很多资源本应该可以直接使用,没有必要重新下载。因而在两个系统中共享信息成为亟待解决的问题。

  在网上搜索了大量相关信息,介绍两个系统间信息共享的不少,但是提供虚拟机host-guest机不同系统之间资源共享解决方案的不多。在朋友的帮助下,经过多次尝试和摸索,终于有了一些搜获。现提供一套包括局域网配置在内的较为详细的解决方案,供初学者参考。

  环境介绍:
  虚拟机:VMware Workstation 5.5
  Host机系统:Windows 2000 Server
  Guest机系统:Red Hat Enterprise Linux 4

  其实作为两个系统而言,要进行资源的共享,方法很多,最初我尝试了使用mount命令挂载文件系统。从命令本身来看,想要挂载一个Windows下的文件系统或驱动盘似乎没有什么问题。

  首先在Linux系统/mnt空目录下,建立挂载点:#mkdir /mnt/mystudy

  /mnt目录是专门用来当作挂载点的目录。mystudy是自定义的专用挂载点名称。

  然后我们看一下mount命令的使用方法:
  命令格式:  mount [-t vfstype] [-o options] device dir

  主要参数:
  ① -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型,Windows NT ntfs文件系统:ntfs

  ② -o options 主要用来描述设备或档案的挂接方式。

  ③ device:要挂接(mount)的设备。Linux中,设备名通常存放在/dev中,设备名遵循一些规则,如:/dev/hda1中,hd指Hard Disk,a代表第一个硬盘设备,1代表第一个硬盘的第一主分区。

  ④ dir:设备在系统上的挂接点(mount point)。如,我们刚刚建立的挂载点:/mnt/mystudy

  遵循此规则,希望挂载硬盘的第二个主分区
  键入命令: #mount -t ntfs /dev/hda2 /mnt/mystudy
  返回信息: Mount:fs type ntfs not supported by kernel

  竟然无法找到ntfs格式的分区?那么我的Windows系统跑到哪里去了?查看一下查看一下分区情况:#fdisk –L

  得到如下结果发现根本没有找到Windows的分区。

  我的Linux装在虚拟机里,虚拟机分配给Linux系统的设备仅仅是8G大小的虚拟硬盘分区,所以根本没有办法挂载Windows系统所在的分区以及其他的硬盘分区。那么在虚拟机环境下,想要共享资源,mount命令基本上派不上用场了,只能从联机的方式来考虑了。

  提供最常用的两种方案:
  1. FTP访问
  2. Samba服务

  不管是FTP还是Samba,首先都需要分析虚拟机环境下的Host-Guest网络连接。基本上我们可以把Host机与Guest机之间当作局域网中的两台机器来实现互联。那么现在需要重新考虑关于《虚拟机的网络配置》一文中提到过的网络连接方式。

  当时我们选择以NAT模式进行网络连接,这是一种使用DHCP服务进行网络连接的方式,也就是说,Guest机并没有自己的固定IP地址,这个地址是在启动 了系统之后,从Host机上取得的、一个暂时提供给Guest机使用的IP地址。在这种网络连接方式下,设置Guest机中系统的IP获取方式为自动获 取,不管Host机联网的方式如何,只要Host能上网,Guest机也可以上网。

  虽然选择这种方式,外网连接是很方便,可是在Host-Guest之间的局域网连接真的让人伤透了脑筋,虚拟网卡VMnet8的IP与Host机的IP不 在同一网段,折腾了一个晚上也没有找到好的解决办法,最后舍弃了NAT模式。将Linux虚拟机的网连方式改为了Bridge。

  Bridge模式将虚拟主机的虚拟网卡桥接到一个Host主机的物理网卡上,可以理解为Guest机和Host主机处于对等的地位,在网络关系上是平等的,对于我这种对路由的事情比较白痴的人来说,这是最易理解的一种局域网互联方式。

  我的使用网络服务是小区LAN网,IP自然是自动获取的,不用花心思改动它,将Guest机的网络也设置成为自动获取IP:

  应用程序–>系统设置–>网络–>编辑eth0设备

  Host和Guest在同一网段,基本上就像局域网里面的两台机器。Host设置一下FTP, FTP算是实现对Host机资源的访问了,可文件的管理似乎不那么方便。

  另一种共享Windows资源的方法是很多Linux用户都非常青睐的Samba。Samba 是一套让UNIX系统能够应用Microshoft网络通讯协议的软件。它使执行UNIX系统的计算机能与执行Windows系统的计算机分享驱动器与打 印机。非常适用于Windows和Linux系统并存的网络。Red Hat AS 4.0内附Samba Server,但默认并不是在系统启动时自动运行的。可通过service命令查看和控制Samba服务:

  查看Samba服务运行状态:# service smb status
  启动Samba服务:# service smb start
  停止Samba服务:# service smb stop

  也可设置系统重启时,自动启动Samba服务:# chkconfig –level 345 smb on

  首先我们在Windows系统中设置文件夹或驱动器Web共享,并对其设置别名,如:/study

  然后在Linux中,以用户身份登录smb服务:

  常见的错误提示:
  1.防火墙问题
  使用Samba服务时,Host和Guest都应关闭防火墙。Linux系统下关闭防火墙的方法:系统设置–>服务器设置–>服务–>iptable–>停止

  2.登录用户名或密码错误
  验证用户名密码即可。
  成功登录smb
  可用LS命令查看当前目录下的共享文件

  用get命令可从服务器上下载某文件:
  Smb:\> get file1 file2(从服务器上下载file1,以file2为名保存在本地——默认为root主目录)

  Exit命令可退出smb服务器

  如果仍然觉得文件的管理不方便,可以使用smbmount 命令,挂载Windows的共享文件夹或驱动器:

  # smbmount //192.168.0.162/study /mnt/mystudy –o username=admin

  其中,192.168.0.162为Host机IP;study为共享文件夹别名;/mnt/mystudy为挂载点,可由#mkdir /mnt/mystudy创建;admin为Host机登录用户名。

  打开挂载目录。

  这样看起来习惯多了吧?跟Windows里面的文件管理界面几乎相同了。

  至此,虚拟机Linux共享宿主机Windows资源基本实现,完成时候觉得很简单,但是一路摸索过来的确遇到了不少问题。

虚拟机Linux下挂载Windows硬盘实现共享

归类于: linux — admin @ 8:51 am

在安装虚拟机Linux的时候不小心把windows覆盖了,原因是安装Linux从光盘引导的。结果Windows不能用,而且硬盘空间变得很小。给自己带来不便。决定重新安装windows,然后再安装虚拟机和Linux。
Windows是NTFS格式的。Linux是Fedora-8-i386-DVD0.iso网上下载的镜像文件。VmwareWokstation6.0。
很轻松进入了Linux系统。却发现不能与Windows共享文件夹,也不能挂载硬盘。查看原因知道了,windows系统已经利用此硬盘了,是系统默认的。查看细节可是有三种方法。
姚哥帮我用第二种方法解决了,即强制挂载。再root权限下
用命令mount –t ntfs -3g /dev/sdb7/media/windows –o force
然后就可以看见挂载的盘了。

mysql5 php5 apache2 phpmyadmin 安装过程

归类于: linux — admin @ 8:41 am

本安装过程以linux AS4 为底本.安装linux时选最小安装+xwindows没有装apache,mysql,php.等,安装cacti,nagios2.0 ,fruity,作为web页面管理测试。
一、安装基本系统:mysql5+php5+apache2
安装mysql:
www.mysql.org
  
下载了编译版本mysql-max-5.0.18-linux-i686-glibc23.tar.gz
     shell> groupadd mysql
     shell> useradd -g mysql mysql
     shell> cd /usr/local
     shell> gunzip
     shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
     shell> cd mysql
     shell> scripts/mysql_install_db –user=mysql
     shell> chown -R root  .
     shell> chown -R mysql data
     shell> chgrp -R mysql .
     shell> bin/mysqld_safe –user=mysql &
        shell>cp support-files/my-medium.cnf /etc/my.cnf
        shell> cp bin/* /usr/bin/
要开机自动运行mysql:
1、  mkdir /usr/local/etc/rc.d
       vi /usr/local/
              #! /bin/sh
              /usr/local/mysql/bin/mysqld_safe &
       chmod 755 /usr/local/etc/rc.d/mysql.sh
       启动其他服务类似。
2、vi /etc/rc.local
       /usr/local/mysql/bin/mysqld_safe &
如此操作,可以启动服务.rpm安装每次安装后启动不来,放弃。
启动:mysqld_safe &
停止:mysqladmin shudown 。
补充:    ldconfig –v
              cp support-files/mysql.server /etc/init.d/mysql
              cd /etc/rc3.d/
              ln -s ../init.d/mysql S85mysql
              ln -s ../init.d/mysql K85mysql
              cd /etc/rc5.d/
              ln -s ../init.d/mysql S85mysql
              ln -s ../init.d/mysql K85mysql
              cd /etc/init.d/
              chmod 755 mysql

安装APACHE:
www.apache.org
下载httpd-2.2.0.tar.gz
# tar zxvf httpd-2.2.0.tar.gz
# cd httpd-2.2.0
# ./configure –prefix=/usr/local/apache –enable-so
# make & make install
# cp /usr/local/apache/bin/*  /usr/bin/
# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
安装gd2:http://www.boutell.com/gd/
   下载 gd-2.0.33.tar.gz
./configure make make install
Libraries have been installed in:
   /usr/local/lib
安装php:
www.php.net
  下载 php-5.1.2.tar.gz
./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache/bin/apxs –with-mysql=/usr/local/mysql –with-mysql-sock=/tmp/mysql.sock –with-mysqli=/usr/local/mysql/bin/mysql_config –with-xmlpc –with-jpeg-dir=/usr/bin –with-zlib-dir=/usr/bin –with-gd  
cp /usr/local/php/bin/*   /usr/bin
cp /soft/php-5.1.2/ php.ini-dist  /usr/local/php/lib/php.ini
vi /usr/local/apach/conf/httpd.conf
添加如下2行:
AddType application/x-httpd-php .php .phtml .php3 .php4
AddType application/x-httpd-php-source .phps
安装phpmyadmin:
www.phpmyadmin.net
下载:phpMyAdmin-2.7.0-pl2.tar.gz
解压后mv到/usr/local/下,然后修改config.default.php 修改相应的用户名和密码即可。
$cfg[’Servers’][$i][’auth_type’] = ‘http’;  // Authentication method (config, http or cookie based)
$cfg[’Servers’][$i][’user’]     = ‘root’;  // MySQL user
$cfg[’Servers’][$i][’password’] = ‘ ‘;    // MySQL password (only needed with ‘config’ auth_type)
注:如红色部分,用config作为认证方式,则下面得user和password都必须添上,安全性较低
用http做为认证方式,则弹出用户认证对话框.
至此:所有安装通过测试可以使用。
****************************ALL SUCESSFULLY********************************

一款不错的网站压力测试工具webbench

归类于: linux — admin @ 8:20 am

webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。

  1、适用系统:Linux

  2、编译安装:

引用

wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install
  3、使用:

引用

webbench -c 500 -t 30 http://127.0.0.1/test.jpg

  参数说明:-c表示并发数,-t表示时间(秒)

  4、测试结果示例:

引用

Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://127.0.0.1/test.jpg
500 clients, running 30 sec.

Speed=3230 pages/min, 11614212 bytes/sec.
Requests: 1615 susceed, 0 failed.

Freebsd 6.2 release + Apache 2.0.59 + PHP 5.2.1 + MySQL 5.0.27 web服务器

归类于: linux — admin @ 8:16 am

—- 工作环境 —-

真实系统 Windows XP sp2    

虚拟软件 VMware Server Console 1.0.2  

虚拟系统 FreeBSD 6.2 Release (256M/10G)

//FreeBSD安装时不选择图形界面 (阅读全文…)

2008-08-13

转换包含UTF8和latin1等多种编码的MYSQL数据库

归类于: mysql — admin @ 1:26 pm

用phpmyadmin导入库test中后发现,这个库中有UTF8和latin1两种编码,如下图
先把test备份为test1库,在WIN下操作的话就是把:路径\MySQL\data下的test目录备份一下,改名为test1目录
在phpmyadmin中把所有为UTF8的表删除,在命令行中运行
D:\PHPServer\MySQL\bin>mysqldump -uroot -p –quick –compatible=mysql40 –default-character-set=latin1 –extended-insert=FALSE test > d:/zxs.sql

说明一下D:\PHPServer\MySQL\bin是我的安装目录,test为数据库,d:/zzz.sql为生成的数据文件,程序会提示你输入root的用户密码,输入后,等几分钟,zxs.sql就生成好了

通过phpmyadmin建立一个新库,库名:test2 ,采集字符集设定为utf8-general-li

再将刚才生成sql文件导入新数据库

D:\PHPServer\MySQL\bin>mysql -uroot -p –default-character-set=utf8 test2 < d:/zxs.sql

输入root密码,等几分钟,zxs.sql就导入成功了,到这还没完,因为这里只是把latin1编码的转换为utf8了
最后,停止mysql,把test2目录下的所有文件覆盖到我们刚刚备份的test1目录下,这样,test1目录就是我们要得到了转换好了的UTF8数据库了,OK,收工
当然,方法很简单,就是把latin1编码的表单独分离出来转为UTF8后再盖原来的库,这样多种编码也都可以完美的转换,这种情况也非常常见,换主机,升mysql版本等都会出现这种情况的。

2008-08-09

wordpress随机文章插件

归类于: wordpress — admin @ 10:05 am

如果搞个“随机文章”栏目,好像有点怪,但好处就是很够把以前的文章都有机会显示出来,让读者来选择感兴趣的。

不过我不喜欢“随机文章”这个名称,于是改了个别名“随机推荐”,虽然不是名副其实,但是我宗旨就行。插件也不难找,应该是很好找,一下就找到了,名字:random-posts

下载地址:random-posts.zip

使用方法:

1、解压缩,把random-posts.php上传至/wp-content/plugins/
2、在管理界面里激活 Random Posts for Chinese 插件
3、在模板里调用 <?php random_posts(); ?>
4、调用方式
random_posts ($limit = 5, $length = 400, $before = ‘<li>’, $after = ‘</li>’, $show_pass_post = false, $show_excerpt_in_title = true)

$limit:显示文章数,缺省5篇;
$length:摘要长度,缺省400;
$before:每条记录前显示的文字,缺省<li>
$after:每条记录后显示的文字,缺省</li>
$show_pass_post:是(true)/否(false)显示保护了的文章,缺省否(false)
$show_excerpt_in_title:是(true),摘要显示于文章链接的title;否(false),直接显示于页面;缺省是(true)

2008-08-07

完美解决mysql数据库字符编码问题(latin1转换为gbk)

归类于: mysql — admin @ 5:14 pm

转载一篇很不错的文章:

事先声明,本篇文章为mysql纯菜鸟所写,所有操作可能效率低,但本人保证保证绝对有效,在本人的400M数据库上操作成功且没有任何问题!!我使用的是windows2003,因此以下操作都是指在windows操作系统中

相信许多pw论坛的用户会发现,自己论坛的内容在phpmyadmin中浏览时中文全部是乱码,无法正常浏览。而且在那些数据表的结构中会发现其整理(也就是数据表的字符集)为latin1_swidish_ci。咦?我下载的明明是GBK编码的pw论坛安装程序啊,什么时候变成这个莫名其妙的瑞典文了?不过,当你把data/sql_config.php中的$charset=’gbk’这一句的GBK删除,你的论坛即使使用latin1字符编码,已然可以正常使用,既然可以用,相信好多人也就不管这么多了,继续用下去喽。
IXDBA.NET社区论坛
不过问题就在,假如你日后扩展论坛的内容,需要整合一些GBK编码的插件或者程序,就会出现问题,无法使用,因为GBK编码的程序,是无法正常读取latin1编码的pw论坛数据库的,乱码大大地~~郁闷啊,从长远来看,为了大局,还是恢复pw数据库的处子之身比较稳妥啊~~先简单说一下出现这种问题的原因,其实网上一搜一大堆的(对于菜鸟来说,最好的教程来自搜索引擎哦),既然我们菜,那就不拽那些复杂高深的XXX理论了,一言以蔽之,出现编码问题,就是因为mysql4.0版本前后所使用的默认字符集编码不一致,导致我们在升级mysql的时候没有注意或者说没有重视这极其重要的一点,结果在phpmyadmin中手动创建数据库时,没有将默认的latin1编码更改为正确的gbk编码,所以我们的数据库就一直默默的以错误的字符编码存在着~~好可怜的数据库啊,谁让你们的主人是我这样的菜鸟呢~

好了,现在我们的目的就是将数据库的编码从latin1改为gbk。什么?你惊喜的发现在phpmyadmin中可以手动修改数据表的编码?OK,恭喜你发现了phpmyadmin的强大,麻烦你顺便把每个数据表的每个字段的编码都要修改,恩,没多少,也就几百个吧~~什么?你真的这么去改了?晕~~你是我见过的最有恒心和时间的家伙~~~什么?改完了无法使用,依然是乱码。。。。呃~~我错了,光改表面的字符集,事实上数据没有经过mysql的编译,其内容是不会改变的,而且mysql一共有4个方面涉及到了字符集,data,server,client,connection,你光改data是不成的哦~~。。。。。。别扁我别扁我~~~我也是刚上网搜索到的。。。我也是菜鸟啊,刚知道地~~~嘿嘿,看来这招没有任何技术含量的操作是不可行的喽~众位菜弟弟菜妹妹菜帅哥菜美女,跟我来做step by step第一步:备份数据库,什么?干什么用?我晕~~~这种做事不留后路的人,居然来做论坛?
既可以使用pw自带的后台程序进行备份,也可以直接在mysql/data/下面复制一个你的数据库,建议数据库较大的同志使用后者,方便哦~对了,不要忘了备份之前关闭论坛啊,关闭论坛之后,最好再做一下数据库修复和优化,还有,清除论坛中一些垃圾信息,比如前台后台管理日志,比如短消息等等,数据量越小,成功率就越高。第二步:打开windows的命令行,鉴于菜也分等级,就把这个也写一下吧,我们不会歧视每一个菜鸟:开始-运行-输入cmd-回车
进入了命令行,再进入mysqlbin目录,我的是c:\mysql5.0\bin,输入的命令如下:
C:\Documents and Settings\Administrator>cd c:\mysql5.0\bin
c:\mysql5.0\bin>ok

,进入了bin目录之后,就可以运行著名的mysqldump命令了,这是mysql自带的数据库备份程序,有N多参数可以使用,具体的可以找教科书学习一下,我只照葫芦画瓢的拿过来用,在命令行里面输入以下命令:
c:\mysql5.0\bin>mysqldump -uroot -p123456 –default-character-set=latin1 –set-charset=gbk –skip-opt olddatabase > newdatabase.sql (阅读全文…)

关于Mysql 升级到4.1出现的编码问题

归类于: mysql — admin @ 4:37 pm

Mysql 4.0版本的数据库几乎没有任何编码问题.

2.Mysql 4.1  

MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。

3.在MySql4.1创建新的数据库:通过phpMyAdmin来设置。

设置下面几项:
1: 语言设置为 chinese (zh-utf-8)
2: MySQL 字符集: UTF-8 Unicode (utf8)
3: MySQL 连接校对:  utf8_general_ci
4: 新增数据库和数据表的时候,整理项选择 utf8_general_ci
通过以上设置,在phpMyAdmin中操作和查询,导出的时候,中文字符都不会乱码了。 (阅读全文…)

2008-08-06

Linux系统信息查看命令大全

归类于: linux — admin @ 10:40 pm

系统
# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量
资源
# free -m                # 查看内存使用量和交换区使用量
# df -h                  # 查看各分区使用情况
# du -sh         # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                 # 查看系统运行时间、用户数、负载
# cat /proc/loadavg      # 查看系统负载 (阅读全文…)

« 上一页下一页 »

基于 WordPress