存档

文章标签 ‘php’

thttpd-2.21b php-5.3.3模块

2010年10月29日 eric 1 条评论

由于2.25b+php-5.2.11版本,昨天测试上传有问题·试这改了很多源码,只支持了火狐浏览器上传小文件,而IE浏览器则直接返回该页无法显示,今天下下来 php5.3.3最新版的PHP,看了下thttpd 的源码,只支持thttpd 2.21b.然后就试着安装了下·现在可以了上传了支持 POST上传了!

下载源码包:
thttpd $> wget http://cn2.php.net/get/php-5.3.3.tar.bz2/from/cn.php.net/mirror
thttpd $> wget http://www.acme.com/software/thttpd/thttpd-2.21b.tar.gz

1.安装thttpd php补丁

thttpd $> tar jxvf php-5.3.3.
thttpd $> tar zxvf thttpd-2.21b.tar.gz
thttpd $> cd php-5.3.3
thttpd $> ./configure –prefix=/usr/local/php –with-thttpd=../thttpd-2.21b
thttpd $> make install

2.安装 thttpd

thttpd $> cd thttpd-2.21b
thttpd $> ./configure –prefix=/usr/local/thttpd
thttpd $> sed -i ‘s#getline#get_line#g’ extras/htpasswd.c
#不然会报错,上篇文章已经说原因了
thttpd $> make
thttpd $> mkdir -p /usr/local/thttpd
thttpd $> mkdir -p /usr/local/thttpd/{man,sbin,www,etc,logs}
thttpd $> mkdir -p /usr/local/thttpd/man/{man1,man8}
thttpd $> mkdir -p /usr/local/thttpd/www/cgi-bin
# thttpd-2.21b 版本的安装脚本写的更软弱·所有要手动创建这些目录
thttpd $> make install

分类: linux 标签: , , ,

thttpd+php 不加载php.ini 问题

2010年10月26日 eric 2 条评论

昨天安装了thttpd+php,关闭php报错机制,于是修改了php.ini,重启了thttpd,没有生效,然后看phpinfo(),Loaded Configuration File 项是 (none),然后编译加上参数 –with-config-file-path= 指定一个位置,重新编译完thttpd 和 php后,启动 thttpd 依然是这样,后来看PHP 官方顿时明白了,php作为thttpd的模块需要修创建环境变量,官方如下: php.ini 的搜索路径如下(按顺序): * SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量) *HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 注册表位置) *PHPRC 环境变量 *当前工作目录(对于 CLI) *web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况) *Windows 目录(C:\windows 或 C:\winnt),或 –with-config-file-path 编译时选项指定的位置 修改后,居然还是不行·弄来弄去是因为 thttpd 的安全 chroot的路径问题·我没有用到 [...]

分类: linux 标签: , ,

转发:Nginx文件类型错误解析漏洞

2010年5月24日 eric 没有评论

其实此漏洞并不是Nginx的漏洞,而是PHP PATH_INFO的漏洞,详见:http://bugs.php.net/bug.php?id=50852&edit=1 例如用户上传了一张照片,访问地址为http://www.domain.com/images/test.jpg,而test.jpg文件内的内容实际上是PHP代码时,通过http://www.domain.com/images/test.jpg/abc.php就能够执行该文件内的PHP代码。 网上提供的临时解决方法有:   方法①、修改php.ini,设置cgi.fix_pathinfo = 0;然后重启php-cgi。此修改会影响到使用PATH_INFO伪静态的应用,例如我以前博文的URL:http://blog.s135.com/read.php/348.htm 就不能访问了。   方法②、在nginx的配置文件添加如下内容后重启:if ( $fastcgi_script_name ~ \..*\/.*php ) {return 403;}。该匹配会影响类似 http://www.domain.com/software/5.0/test.php(5.0为目录),http://www.domain.com/goto.php/phpwind 的URL访问。   方法③、对于存储图片的location{…},或虚拟主机server{…},只允许纯静态访问,不配置PHP访问。例如在金山逍遥网论坛、SNS上传的图片、附件,会传送到专门的图片、附件存储服务器集群上(pic.xoyo.com),这组服务器提供纯静态服务,无任何动态PHP配置。各大网站几乎全部进行了图片服务器分离,因此Nginx的此次漏洞对大型网站影响不大。 本人再提供一种修改nginx.conf配置文件的临时解决方法,兼容“http://blog.s135.com/demo/0day/phpinfo.php/test”的PATH_INFO伪静态,拒绝“http://blog.s135.com/demo/0day/phpinfo.jpg/test.php”的漏洞攻击: location ~* .*\.php($|/) { if ($request_filename ~* (.*)\.php) { set $php_url $1; } if (!-e $php_url.php) { return 403; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; }   也可将以下内容写在fcgi.conf文件中,便于多个虚拟主机引用: if ($request_filename ~* (.*)\.php) { set $php_url [...]

分类: nginx 标签: , ,

phpMyAdmin – 错误

2010年5月19日 eric 1 条评论

今天,安装了一个 nginx +php-fpm 的环境,安装上了 phpmyadmin,发生了错误。找了好久原因,才找到,因为自己的大意,才会成这样,错误如下: phpMyAdmin – 错误 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。 当时看到这个错误,第一感觉 mysql 没有起来吗?检查起来了,然后检查 mysql.sock 的路径与php 的路径,也没有问题。 随后想到,也许是php没有编译好吗?创建一个 phpinfo(); ,访问没有问题,那好,那就看看 info 哪里有问题,看了一圈没发现什么问题,php.ini 加载路径没错。 最后看看 phpmyamdin 的配置文件吧。看到他要建立 session。然后去 session 保存目录看一下。问题就找到了。。我的 php-fpm 设置的 session 保存目录是 /home/www/sessions, 我创建的目录是 /home/www/session 少了一个 s 大家也要注意权限。要给 php-fpm 写的权限。 PS:以后配置环境的时候一定要细心。。一个问题纠缠了我 2个多小时,很是郁闷。

分类: nginx 标签: , ,

memcached +mysql+php 测试例子

2010年5月18日 eric 没有评论

最近看了看memcached 缓存 mysql,经过一段时间的研究·把自己测试方法写出来,给像我一样的初学者用~
我的环境是 nginx + php-fpm + apc + mysql

编译安装memcached

tar zxvf memcached-1.4.0.tar.gz
cd memcached-1.4.0
./configure --prefix=/usr
make
make install

启动memcached

memcached -d -m 64 -u root -l 192.168.6.191 -p 11211 -c 64 -P /tmp/memcached.pid
/usr/local/mysql/bin/mysql -uroot -p

创建一个测试数据库 mydb

分类: mysql 标签: , ,

php-fpm with php-5.3.2 + APC

2010年5月17日 eric 7 条评论

php-fpm 现在php官方内部已经出版本了,据说以后会出现在 php core 里,如果现在安装的话,可以svn得到最新代码,我抢先为快。

至于缓存,我用的facebook 试用的apc 测试了一段时间还很,满意。

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.02.tar.bz2

wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gz

wget http://pecl.php.net/get/APC-3.1.3p1.tgz
tar zxvf pcre-8.02.tar.bz2

cd pcre-8.02

./configure --enable-utf8 --enable-pcregrep-libbz2

make

make install
分类: nginx 标签: , , ,

Nginx + php-5.3.1 + mysql-5.1.45 for vps 256内存

2010年3月23日 eric 没有评论

刚买的 VPS 因为内存太小,所以各个方面都要优化!mysql 用的 mysqlnd 方式连接。

参考文章:www.s135.com

本人VPS系统 :ubuntu-server-9.04

安装步骤:
  (系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为ubuntu-server)

  一、获取相关开源程序:
  1、【适用ubuntu操作系统】利用ubuntu Linux系统自带的apt-get命令安装、升级所需的程序库:

apt-get install build-essential autoconf automake libtool libjpeg62-dev libpng12-dev libfreetype6-dev libxml2-dev libbz2-dev libncurses5-dev libcurl4-openssl-dev curl openssl bison libsasl2-dev
  2、下载程序源码包:
  ①、从软件的官方网站下载:

cd /home
wget http://sysoev.ru/nginx/nginx-0.8.34.tar.gz

分类: linux, mysql, nginx 标签: , , , , ,