Archive for 六月 23rd, 2009

php excel 操作类 整理


23 6月
php-excel-reader是目前我所知的最好的php读取excel数据的开源类,可以做到读取带各种格式的excel文件。详见文档。 另写入类:php-excel备用(尚未使用过,不知效果如何)。 在读写excel 2003前的版本的xls文件上,曾经一度使用一个excel_class.php,但长年缺少维护感觉有点太老了,而且不太符合php5的面向对象的感觉。故弃用。 对于excel2007的文档的读写,可用PHPExcel,同样暂时还没机会使用过。但似乎此开源项目维护得不错,暂做记录。

tar语法


23 6月
转自:http://fed.sjps.tpc.edu.tw/phpBB2/viewtopic.php?t=96 語法: tar [-zxcvfpP] filename # tar -N 'yyyy/mm/dd' /path -zcvf target.tar.gz source 參數說明: -z :是否同時具有 gzip 的屬性。 -x :解開一個壓縮檔案的參數指令! -t :查看 tarfile 裡面的檔案! -c :建立一個壓縮檔案的參數指令 -v :壓縮的過程中顯示檔案! -f :使用檔名,請留意,在 f 之後要立即接檔名喔!不要再加參數。 -p :使用原檔案的原來屬性(屬性不會依據使用者而變) -P :可以使用絕對路徑 -N :比後面接的日期(yyyy/mm/dd)還要新的才會被打包進新建的檔案中! --exclude FILE:在壓縮的過程中,不要將 FILE 打包! 範例: 壓縮 # tar -cvf xxx.tar /home 只將目錄整合打包成一個檔案 # tar -zcvf xxx.tar.gz /home 除了將目錄打包外,同時以 gzip 壓縮 # tar -zcvf s94_all.tar.gz /home/s94/* 將 /home/s94/ 這個目錄下的檔案全部打包並壓縮成為一個 s94_all.tar.gz 的檔案 (s94表示94學年度學生資料) # tar -zcvf fed_all_20060306.tar.gz / --exclude /mnt --exclude /proc 將根目錄的所有資料壓縮至 fed_all_20060306.tar.gz 這個檔案中,除了 /mnt 及 /proc。 fed_all_20060306.tar.gz--備份fed伺服器下所有目錄與檔案 解壓縮 # tar -xvf xxx.tar 解 tar 的封包,請注意,由於沒有 gzip (.tar 而非 .tar.gz) 的作用,所以只要使用 –xvf 即可!不需要加上 z ,否則會顯示有問題! # tar -zxvf xxx.tar.gz 這個就是有加上 gzip 的壓縮的結果!所以需要加上 –z

Memcached 安装配置 整理


23 6月
Memcached需要libevent支持,所以先下载libevent安装:
  1. ./configure --prefix=/usr/local
  2. make
  3. make install
验证安装是否成功:
  1. ls -al /usr/local/lib | grep libevent
安装memcached
  1. ./configure --with-libevent=/usr/local
  2. make
  3. make install
验证:
  1. ls -al /usr/local/bin/mem*
测试:
  1. /usr/local/bin/memecached -h
若出现类似:
memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
修复:
  1. LD_DEBUG=libs memcached -v
查看memcached的libs的路径 选择其中一条做ln:
  1. ln -s /usr/lib/libevent-1.4.so.2.1.3 /usr/lib64/libevent-1.4.so.2
新手注意ln是后面连到前面,也就是说,后面那个是原本不存在的,需要连接的。 启动memcached(可在/etc/rc.local中寫入以便每次重啟后自動啟動):
  1. /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200, -p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口, -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定, -P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid 如果要结束Memcache进程,执行:
  1. kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,不过端口不能重复。 最后记得重启apache 附转: 安装Memcache的PHP扩展 1.在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。 2.安装PHP的memcache扩展
tar vxzf memcache-2.2.1.tgz cd memcache-2.2.1 /usr/local/php/bin/phpize ./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir make make install
3.上述安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/
4.把php.ini中的extension_dir = “./”修改为
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/”
5.添加一行来载入memcache扩展:extension=memcache.so Memcache环境测试: 运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
  1. $mem = new Memcache;
  2. $mem->connect("127.0.0.1", 12000);
  3. $mem->set("key", "This is a test!", 0, 60);
  4. $val = $mem->get("key");
  5. echo $val;
安全相關: 基本通過防火墻實現,只允許特定IP地址端口進行訪問即可:
  1. iptables -I RH-Firewall-1-INPUT -p tcp -s 211.144.121.81 --dport 12000 -j ACCEPT
監視memcached使用情況: memcachephp 参考: http://www.ccvita.com/257.html http://pjluo.javaeye.com/blog/200266 P.S.  php的扩展和libevent可在Cpanel的WHM中,通过Install a RPM和Module Installers直接安装。

貓熊寶寶幼齒園

姜經緯的博客