分类目录归档:Linux

Linux

Windows Server 2003 配置php支持

一、要准备的软件包:
操作系统:Windows Server 2003 企业版(X86)
1、Microsoft Visual C++ 2008 Redistributable Package (x86)
http://www.microsoft.com/zh-cn/download/details.aspx?id=29
http://download.microsoft.com/download/7/5/0/7502f4e9-1f90-4895-9259-1bde67b8b9a1/vcredist_x86.exe

Microsoft Visual C++ 2008 Redistributable Package (x64)
http://www.microsoft.com/zh-cn/download/details.aspx?id=15336

2、FastCGI 1.5 for IIS 6 and 5.1(x86)
http://download.microsoft.com/download/E/0/C/E0C0709A-66E5-4113-9A6C-A5F65BF6717D/fcgisetup_1.5_rtw_x86.msi

FastCGI 1.5 for IIS 6 and 5.1(x64)
http://download.microsoft.com/download/6/0/2/60237D55-DABA-4FF1-921B-786E0A968049/fcgisetup_1.5_rtw_x64.msi

3、.NET Framework 2.0 (x86)
http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x86.exe
http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_x64.exe
http://download.microsoft.com/download/c/6/e/c6e88215-0178-4c6c-b5f3-158ff77b1f38/NetFx20SP2_ia64.exe

4、PHP 5.3 (5.3.26)
http://windows.php.net/download/
下载的时候有几个不同版本选择。那就是VC6 X86和VC9 X86。
(1)、VC6就是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。如果你是在windows下使用Apache+PHP的,请选择VC6版本;
(2)、VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。如果你是在windows下使用IIS+PHP的,请选择VC9版本;

(1)、Non Thread Safe就是非线程安全;
(2)、Non Thread Safe 是线程安全;
官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选择Thread Safe 版本的PHP来使用。

二、安装步骤:
1.安装完前3款文件

2.解压php-5.3.26-nts-Win32-VC9-x86.zip文件到

C:\php\

3.安装完FastCGI文件,可以在Internet信息服务(IIS)管理器中查看到(默认是禁止的,需双击或点击按钮允许)

配置FCGIEXT.ini文件
编辑

C:\WINDOWS\system32\inetsrv\fcgiext.ini

文件,在最后增加

[Types]
php=PHP
[PHP]
ExePath=C:\php\php-cgi.exe

还可增加如下更多的配置

InstanceMaxRequests=10000
ActivityTimeout=300
RequestTimeout=300
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:ExePath=C:\php\ext

配置PHP.ini文件

1.复制C:\php\php.ini-development文件,并改名为php.ini

2.修改PHP.ini文件中,将选项前的”;”号去掉(注意,文件路径是否正确。)


extension=ext/php_gd2.dll
extension=ext/php_mbstring.dll
extension=ext/php_mysql.dll
extension=ext/php_mysqli.dll
extension=ext/php_pdo_mysql.dll
extension=ext/php_pdo_sqlite.dll
extension=ext/php_sqlite.dll
extension=ext/php_sqlite3.dll

[Date]
; http://php.net/date.timezone
date.timezone = Asia/Shanghai

upload_max_filesize = 20M

配置IIS的PHP扩展支持

网站-属性-主目录-配置-添加(下面图里面选择的是“默认网站”,不予理会,操作方法是一样的)
001

002
可执行文件:[C:\WINDOWS\system32\inetsrv\fcgiext.dll]

扩展名:[.php]

限制为:[GET,HEAD,POST]
003

测试PHP

建立一个文本文件,代码另存为index.php

<?php
phpinfo();
?>

Linux中dd命令详解

一、dd命令

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2

参数注释:

  1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
  2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
  3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
  4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
  5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
  6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
    注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
  7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  8. conv=conversion:用指定的参数转换文件。

  • ascii:转换ebcdic为ascii
  • ebcdic:转换ascii为ebcdic
  • ibm:转换ascii为alternate ebcdic
  • block:把每一行转换为长度为cbs,不足部分用空格填充
  • unblock:使每一行的长度都为cbs,不足部分用空格填充
  • lcase:把大写字符转换为小写字符
  • ucase:把小写字符转换为大写字符
  • swab:交换输入的每对字节
  • noerror:出错时不停止
  • notrunc:不截短输出文件
  • sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。 继续阅读

Linux上分区,格式化,读写挂载EXT4,NTFS和FAT32分区

NTFS 具体实现的内部细节被保密,因此这导致第三方开发者试图制作处理 NTFS 的工具变得异常困难。
Linux中完整并安全的对 NTFS 的读写功能由 NTFS-3G 驱动程序提供。该驱动程序包含在绝大多数Linux发行版中。

同时也存在过时的,大部分仅只读的解决方案:

Linux 内核 2.2:从版本 2.2.0 开始,可以读取 NTFS 分区。
Linux 内核 2.6:包含一个由 Anton Altaparmakov(来自剑桥大学)和 Richard Russon 编写的驱动程序,该驱动程序支持读取文件以及在部分情况下的改写文件和调整文件大小。
NTFSMount:使用 ntfsmount 可以通过一个用户级驱动程序对文件和目录进行有限的读写操作。[35]
Tuxera NTFS: 高性能可读写上业内核驱动, 主要是针对嵌入式设备, 他还开发了开源的 NTFS-3G 驱动.
NTFS for Linux:由 Paragon 提供的对 NTFS 提供完整读写支持的商用驱动程序。
Captive NTFS:一个使用 Windows 自身的驱动程序“ntfs.sys”并进行简单封装的驱动程序。

请注意,上面所有三个用户级别驱动程序(NTFSMount、NTFS-3G 以及 Captive NTFS)都基于用户空间文件系统(FUSE),该系统是一个用于在用户空间和内核代码间通讯以获取或保存数据的 Linux 内核模块。技术上面所有的驱动程序(除了 Paragon NTFS for Linux)都是开源(GPL)的。由于 NTFS 内部结构非常复杂,内置的 2.6.14 内核驱动程序和 FUSE 都不允许修改被认为是不安全的卷,以避免发生损坏事故。

Debian系统的NTFS文件系统驱动程序:
1、ntfs
安装方法:无需安装,内核集成
使用方法:
1、手动挂载:

mount -t ntfs /dev/sda1 /mnt/windows

2、开机挂载(vim /etc/fstab)

/dev/sda1 /mnt/windows ntfs ro,user,uid=1000,gid=1000,dmask=0222,fmask=0333 0 0

Linux内核的NTFS驱动程序,提供只读访问。

2、ntfs-3g
通过FUSE用户空间的NTFS驱动程序,提供读取和写入访问。

安装方法:

apt-get install ntfs-3g

使用方法:
1、手动挂载:

mount -t ntfs-3g /dev/sda1 /home/shares/public/disk1

2、开机挂载(vim /etc/fstab)

/dev/sda1 /home/shares/public/disk1 ntfs-3g rw,uid=1000,gid=1000,dmask=0002,fmask=0003 0 0

NTFS-3G采用FUSE(用户空间文件系统)提供微软Windows所使用的NTFS文件系统的支持。它可以:
*创建,删除,重命名或移动文件,目录,硬链接,和流;
*读写文件,包括流,稀疏文件,和透明压缩文件;
*处理符号链接,设备和FIFO等特殊文件;
*提供标准的管理文件所有权和权限,包括POSIX的ACL。

3、ntfsmount
安装方法:下载地址
使用方法:
1、手动挂载:

ntfsmount /dev/hda1 /mnt/ntfs -o locale=be_BY.UTF-8

2、开机挂载(vim /etc/fstab)

/dev/hda1 /mnt/ntfs fuse.ntfs locale=be_BY.UTF-8 0 0

通过FUSE用户空间的NTFS驱动程序,提供读取和写入访问。

Debian系统的FAT32文件系统挂载(可解决FAT32格式在Linux下正常显示长文件名):
使用方法:
1、手动挂载:

mount -t vfat /dev/sda2 /home/shares/public/disk2 -o utf8=1

2、开机挂载(vim /etc/fstab)

/dev/sda2 /home/shares/public/disk2 vfat umask=0000,utf8=1 0 0

3、卸载

fusermount -u /mnt/ntfs

fdisk -l
fdisk /dev/xvda | d 3
fdisk /dev/xvda | n p 3
mkfs -t ext4 /dev/xvda3
mount -t ext4 /dev/xvda3 /mnt
service mysqld stop
mv /www/* /mnt/
df -h
echo "/dev/xvda3 /www ext4 defaults 0 0" >> /etc/fstab

参考资料:
http://zh.wikipedia.org/wiki/NTFS
http://wiki.debian.org/NTFS
http://www.tuxera.com/community/ntfs-3g-download/ (NTFS-3G官方主页)
http://manpages.ubuntu.com/manpages/hardy/man8/ntfsmount.8.html

Pinterest架构:两年内月PV从零到百亿

Pinterest正经历了指数级曲线般的增长,每隔一个半月翻翻。在这两年里,Pinterest,从 每月PV量0增长到10亿,从两名成立者和一个工程师成长为四十个工程师,从一台MySQL 服务器增长到180台Web 服务器(Web Engine),240台接口服务器(API Engine), 88台MySQL 数据库 (cc2.8xlarge) ,并且每台DB有一个备份服务器,110台Redis 实例服务(Redis Instance),200台 Memcache 实例服务(Memcache  Instance)。

令人叹为观止的增长。想一探Pinterest的传奇吗?我们请来了Pinterest的两位创立者Yashwanth Nelapati 和 Marty Weiner,他们将以 Scaling Pinterest为题讲述关于Pinterest架构的充满戏剧化的传奇故事。他们说如果能在一年半前飞速发展时能看到有人做类似题材的演讲的话,他们就会有更多的选择,以避免自己在这一年半里做出的很多错误的决定。

这是一个很不错的演讲,充满了令人惊讶的细节。同时这个演讲也是很务实的,归根结底,它带来了可让大家选择的策略。极度推荐

这篇演讲中有两个我最为看重的经验:

1.强大的架构在处理增长时通过简单增加相同的东西(服务器)来应对,同时还能保证系统的正确性。当遇到某种(性能)问题时,你想通过砸钱来扩容指的是你可以简单增加服务器(boxes)。如果你的架构能够做到这一点,那它就如金子一般强大而珍贵!

2. 当某些(性能问题)快到极限时大多数技术都会以他们自己的方式失败。这导致他们在审核工具时要考虑以下一些特性:成熟,好且简单,有名气且用的人多,良好 的支持,持续的优异性能,很少失败,开源。按照这样的标准,他们选择了:MySQL, Solr, Memcache, and Redis,放弃了Cassandra ,Mongo。 继续阅读

查看Linux系统的系统和版本信息

查看centos内核的版本:

1)

[root@localhost ~]# cat /proc/version

Linux version 2.6.18-194.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:14 EDT 2010

2)

[root@localhost ~]# uname -a

Linux localhost.localdomain 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

3)

[root@localhost ~]# uname -r

2.6.18-194.el5

继续阅读