Warning: curl_exec() has been disabled for security reasons in /pub/host/sunboyu/sunboyu/www/wp-includes/http.php on line 1022
LINUX 一个程序猿 孙小一,孙小二,PHP,MYSQL,LINUX,APACHE,原创技术,扯淡

sunboyu-amp-fastcgi-suexec-v22-alpha 发布

作者 : admin 于 2008年12月20日, 15:06:03
2008
12-20

Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.2

1、增加了m4-1.4.9

2、增加了autoconf-2.62

这两个包在安装eaccelerator-0.9.5.2的时候使用

3、增加了PHP –with-mcrypt 参数

4、增加了PHP –enable-sockets 参数

sunboyu-amp-fastcgi-suexec-v22-alpha

Pure-ftpd安装配置草稿-补充完全

作者 : admin 于 2008年12月18日, 09:47:45
2008
12-18
  1. cp /opt/mysql-5.0.22/lib/mysql/* /usr/lib          #解决编译依赖库问题
  2. ./configure --prefix=/opt/pure-ftpd \
  3. --with-mysql=/opt/mysql-5.0.22 \
  4. --with-rfc2640 \
  5. --with-language=simplified-chinese \
  6. --with-peruserlimits \
  7. --with-diraliases \
  8. --with-virtualchroot \
  9. --with-virtualhosts \
  10. --with-welcomemsg \
  11. --with-ftpwho \
  12. --with-quotas \
  13. --with-throttling \
  14. --with-cookie \
  15. --with-extauth \
  16. --with-puredb \
  17. --with-altlog \
  18. --with-sysquotas \
  19. --with-paranoidmsg \
  20. --with-ascii \
  21. --with-inetd
  22.  
  23. cp  $install_dir/pureftpd-mysql.conf /opt/pure-ftpd/
  24. cp  $install_dir/configuration-file/pure-config.pl pure-ftpd.conf /opt/pure-ftpd/

启动服务  /opt/pure-ftpd/pure-config.pl pure-ftpd.conf

这里补充完整:
安装完后,很多配置文件还在原来的安装包里,并没有部署到prefix目标文件夹下,需要手工复制过去,就是上边那两个,一个启动脚本,pure-config.pl 还有性能监控工具,统计工具等。
另外一个经常出现的问题:(为了重现,还得修改成错误的)
421 配置错误: 无效的SQL配置文件: /opt/pure-ftpd/etc/pureftpd-mysql.conf
这个问题网上很多问的,但解释不到位,这里详细解释一下:我们在编译的时候选择了好多参数,部分参数跟配置是对应的,只有编译相关模块,才能打开相关配置,否则是不行的,会报错,但这个软件报错不报错误行数,所以调试起来比较费劲,我是一个个配置行进行开关才发现这个问题的,比如,我开启了这行,MySQLGetRatioDL SELECT DLRatio FROM users WHERE User=”\L” 但我编译的时候未加 ratio这个参数,就报错了,所以在调试的时候一定要对照一下编译时候的参数。
mysql中,密码我用的encryt加密,调试记得打开防火墙,其他没什么需要注意的。

sunboyu-amp-fastcgi-suexec-v21-alpha 发布

作者 : admin 于 2008年12月15日, 21:58:14
2008
12-15

Linux下APACHE MYSQL PHP FCgid Suexec 自动安装脚本V2.1
1、增加了PHP –enable-bcmath 参数,支持高精度函数库
2、增加了ncurses MYSQL的一个依赖库
3、增加了apache –enable-so 参数

sunboyu-amp-fastcgi-suexec-v21-alpha

此脚本在Centos4.7ServerCD 最小安装,root账户下执行完全正常。

全面切换到CentOS-4.7.ServerCD

作者 : admin 于 2008年12月14日, 22:24:27
2008
12-14

下载地址 http://centos.ustc.edu.cn/centos/4.7/isos/x86_64/CentOS-4.7.ServerCD-x86_64.iso
注:根据需要下载x86_64或者i386版本
一般x86_64跑服务器或者64位CPU上,家用台式一般用i386,不过现在比较好的家用cpu也64位,我的就比较落后了……

安装还是老一套,我用vmware模拟的scis硬盘安装,选择的定制安全,选择组件那步直接选择mini安装即可。

因为5一直没有servercd,而发行版又太大,3个多G,所以还是选择这个精简的服务器版本。

解决php模块ssh2的编译问题

作者 : admin 于 2008年12月07日, 21:50:06
2008
12-7

这个问题一google就出来了,官方给出的解决方案,
在config.h里加上一个宏定义 #define LIBSSH2_APINO 200412301450,哇塞,一切OK
http://pecl.php.net/bugs/bug.php?id=9656

  1. /root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_methods_negotiated':
  2. /root/ssh2-0.10/ssh2.c:483: warning: assignment discards qualifiers from pointer target type
  3. /root/ssh2-0.10/ssh2.c:484: warning: assignment discards qualifiers from pointer target type
  4. /root/ssh2-0.10/ssh2.c:485: warning: assignment discards qualifiers from pointer target type
  5. /root/ssh2-0.10/ssh2.c:486: warning: assignment discards qualifiers from pointer target type
  6. /root/ssh2-0.10/ssh2.c:487: warning: assignment discards qualifiers from pointer target type
  7. /root/ssh2-0.10/ssh2.c:488: warning: assignment discards qualifiers from pointer target type
  8. /root/ssh2-0.10/ssh2.c:489: warning: assignment discards qualifiers from pointer target type
  9. /root/ssh2-0.10/ssh2.c:490: warning: assignment discards qualifiers from pointer target type
  10. /root/ssh2-0.10/ssh2.c:491: warning: assignment discards qualifiers from pointer target type
  11. /root/ssh2-0.10/ssh2.c:492: warning: assignment discards qualifiers from pointer target type
  12. /root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_fingerprint':
  13. /root/ssh2-0.10/ssh2.c:536: warning: assignment discards qualifiers from pointer target type
  14. /root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_publickey_add':
  15. /root/ssh2-0.10/ssh2.c:1038: warning: passing argument 1 of '_efree' discards qualifiers from pointer target type
  16. /root/ssh2-0.10/ssh2.c: In function 'zif_ssh2_publickey_list':
  17. /root/ssh2-0.10/ssh2.c:1097: warning: passing argument 4 of 'add_assoc_stringl_ex' discards qualifiers from pointer target type
  18. /root/ssh2-0.10/ssh2.c:1098: warning: passing argument 4 of 'add_assoc_stringl_ex' discards qualifiers from pointer target type
  19. /root/ssh2-0.10/ssh2.c:1106: warning: initialization discards qualifiers from pointer target type
  20. /root/ssh2-0.10/ssh2.c:1107: warning: passing argument 2 of '_zend_hash_add_or_update' discards qualifiers from pointer target type
  21. /bin/sh /root/ssh2-0.10/libtool --mode=compile gcc  -I. -I

我的一个虚拟主机配置,支持suexec+fastcgi+php+perl

作者 : admin 于 2008年11月22日, 13:36:07
2008
11-22
  1. <virtualhost *:80>
  2.     SuexecUserGroup www www
  3.     ServerAdmin webmaster@dummy-host.example.com
  4.     DocumentRoot "/home/www/php"
  5.     ServerName 192.168.43.129
  6.     ServerAlias www.dummy-host.example.com
  7.     ErrorLog "logs/dummy-host.example.com-error_log"
  8.     CustomLog "logs/dummy-host.example.com-access_log" combined
  9.     <directory /home/www/php>
  10.         AddHandler fcgid-script .php
  11.         AddHandler perl-script .pl .cgi
  12.         PerlResponseHandler ModPerl::Registry
  13.         PerlOptions +ParseHeaders
  14.         PerlOptions +SetupEnv
  15.         FCGIWrapper /home/www/php-cgi .php
  16.         Options ExecCGI +FollowSymLinks SymLinksIfOwnerMatch
  17.         allow from all
  18.     </directory>
  19. </virtualhost>

老一套,要注意的是各种脚本的映射,容器的合理使用。

给APACHE增加mod_perl,使其支持perl脚本编写的程序

作者 : admin 于 2008年11月21日, 16:59:14
2008
11-21

老样子,下载 perl-5.8.8.tar.gz mod_perl-2.0-current.tar.gz perlinfo.zip
wget http://www.sunboyu.cn/sourse/perl-5.8.8.tar.gz
wget http://www.sunboyu.cn/sourse/mod_perl-2.0-current.tar.gz
wget http://www.sunboyu.cn/sourse/perlinfo.zip

tar -zxvf perl-5.8.8.tar.gz
tar -zxvf mod_perl-2.0-current.tar.gz
tar -zxvf perl-5.8.8.tar.gz

先安装perl ./Configure -h 看帮助吧,忘了
在安装 mod_perl #perl Makefile.PL WITH_APXS=/opt/httpd-2.2.9/bin/apxs
如果报错,看看帮助,得加几个参数
然后修改 httpd.conf ,增加 LoadModule perl_module modules/mod_perl.so
最后在虚拟目录里增加

  1. <location /cgi-bin>
  2.   SetHandler perl-script
  3.   PerlResponseHandler ModPerl::Registry
  4.   Options +ExecCGI
  5.   PerlOptions +ParseHeaders
  6.   PerlOptions +SetupEnv
  7. </location>

然后把perlinfo.zip里那个探针放在cgi-bin目录下,访问一下,如果显示相关信息,证明配置成功。
费了半天劲,就为了用一个awstats。
突发奇想,是不是把python和ruby也配置上?

Ubuntu系统同步跟进

作者 : admin 于 2008年11月09日, 14:18:34
2008
11-9

Ubuntu8.10在2008年10月30日终于到来,跟官方所要了两张作为纪念,同时刻了一张进行试用。
新版的跟8.04没看出太大的区别,对于那个立方体效果,我也没有试用。系统是让用的,不是用来玩的,关闭所有的特效,能顺利工作才是。
我用的惠普康柏 V3729 系列,系统安装后,自动识别无线网卡,这是首要的,拉线的感觉可不好。官方发布后,国内的更新源也同步更新了,cn99的不太好用,我用的lupaworld的源,比较快

  1. deb http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
  2. deb http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
  3. deb http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
  4. deb http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
  5. deb http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse
  6. deb-src http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
  7. deb-src http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
  8. deb-src http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
  9. deb-src http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
  10. deb-src http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse

我的机器是 NVIDIA GeForce 7150M的显卡,默认是不支持的,但 apt-get upgrade后,可以用新力德自动安装显卡驱动。为这驱动我费了不少劲,官方的下载了不少,也没装上。
整体装完后,更新了mplayer,可以播放mp3,但rmvb的不能播放,下载了realplaylinux版,只有图像没有声音。
在更新完

  1. sudo apt-get install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse
  2. sudo apt-get install libxine-extracodecs totem-xine ffmpeg lame faad sox mjpegtools libxine-main1

后,realplay运行正常。msn用Pidgin,qq使用官方的ubuntu版本,很流畅,不过还不能看迅雷看看,回头装wine试试。

linux_apache_php_mysql_fcgid_suexec_高效安全的主机配置方案

作者 : admin 于 2008年11月08日, 22:35:05
2008
11-8

linux+apache+php+mysql+fcgid+suexec 高效安全主机配置

最近一直在研究web服务器的配置和安全配置,基本搞完了
window2003下
iis+php(isapi)
apache+php(mod)
linux下
apache+php(mod)
apache+php(fastcgi)
四种安装方式的安全设置。其中涉及一些性能方面的调整,但没有实际的环境来测试,所以只涉及方法,不涉及具体的应用,而在安全方面下了很大的功夫。
底下我针对比较复杂的一种安装模式apache+php(fastcgi)进行详细讲解,来介绍如何配置一个安全的虚拟主机系统。

调试环境:

CentOS5
Apache2.2.9
Mysql5.0.22
PHP5.2.6
Fcgid2.4.6

需要的脚本  sunboyu-amp-fastcgi-suexec-v20-alpha

首先用脚本 unboyu-amp-fastcgi-v20-fcgid-suexec-alpha.txt 进行安装。
注:我在我的服务器上做了一个源,如果你感觉较慢的话,可以先吧软件下载到本地,然后修改一下脚本进行安装。

整体运行完后,apache是能成功运行的,但访问的话显示权限错误,底下主要是配置权限
过程用命令来显示,比较符合技术人员的习惯
1、vi /opt/httpd-2.2.9/conf/httpd.conf

修改 User daemon
Group daemon
为 User apache
Group apache

去掉 #Include conf/extra/httpd-vhosts.conf 前边的#,使其生效

2、增加一个虚拟站点的账户

groupadd www
useradd -g www www

现在应该有个目录 /home/www

3、vi /opt/httpd-2.2.9/conf/extra/httpd-vhost.conf

屏蔽或直接删除原来的站点信息
SuexecUserGroup www www #这里一定要弄清楚是做什么用的
ServerAdmin sunboyu@gmail.com
DocumentRoot “/home/www/php-cgi”
ServerName 192.168.0.5 #我测试的ip是这个,实际应该为你的域名
ServerAlias www.dummy-host.example.com #别名
ErrorLog “logs/dummy-host.example.com-error_log” #日志,用独立的名字
CustomLog “logs/dummy-host.example.com-access_log” common

SetHandler fcgid-script #我在编译完apache,附加了两个模块,fastcgi和fcgid,后一个是国人开发的,比fastcgi更稳定和易用
FCGIWrapper /home/www/php/php-cgi .php # php-cgi 是站点下的一个文件,下边建立
Options ExecCGI
allow from all
然后: x 即可

4、建立脚本 /home/www/php/php-cgi

vi /home/www/php/php-cgi
内容为
#!/bin/sh
export PHPRC=/home/www/php-cgi
export PHP_FCGI_CHILDREN=5 #创建的fcgi进程
export PHP_FCGI_MAX_REQUESTS=5000 #最大连接数
/opt/php-5.2.6/bin/php-cgi #php-cgi程序的位置

: x

5、创建独立的php.ini配置文件
cp /opt/php-5.2.6/lib/php.ini /home/www/php-cgi/php.ini

6、修改PHP的open_basedir

在/home/www/php-cgi/php.ini中找到
open_basedir , 修改为
open_basedir = /home/www/php
注:safe_mode_exec_dir 之类的参数如果从比较变态的安全设置来说,也是应该来设定的,但我还不变态

7、配置权限
chgrp root /opt/httpd-2.2.9/bin/suexec
chmod 4751 /opt/httpd-2.2.9/bin/suexec
chown www:www -R /home/www
chmod 755 -R /home/www
chmod 700 -R /home/www/php-cgi/php-cgi

8、重启
server httpd restart

9、如果你能看到成功页面,然后就传一个PHP木马上去测试一下权限和安全的问题.
如果连启动都启动不了,那就得查httpd的error_log ,suexec_log,然后去google一下,看看是哪的权限问题。

总结:本人教懒,整个过程调通后,也没写文档,但看到网上此类资料不多,而且有一些都没有命中要害,比如一些权限的配置和相对详尽的说明。我的注释只是把一些网上没有的解释而我弄明白后的理解写在了上边,但真正要想明白,估计还得搬着手册和google去一条条查。而且,我不是边做边写的,而是根据原来的配置盲写了一遍,估计会不少错误,总比没有强。如果有谁发现这个安全依然有问题,可以帮我提出,因为在安全方面我对自己要求很高。
如果有什么需要讨论的,可以加入这个MSN群 lampper@live.cn (加为msn好友即可)

伟大的进步

作者 : admin 于 2008年11月05日, 22:09:17
2008
11-5

博客很久没更新,导致alexa排名暴跌,因为最近在研究linux下apache+php的系统安全问题,这个问题困扰了好久。因为配置iis(之前有此文章)的时候,我设置了非常安全的iis站点用户和权限的隔离,但在linux下,总没有找到好的方法。

最近查阅了大量的资料,主要是了解apache的账户机制,suexec的工作原理,然后又翻看了大量的资料,终于搞清楚了一套完整的安全的lamp虚拟主机配置方法,能达到站点的权限隔离,进程账户的相对独立,以及对性能的控制。

在学习的过程中,常犯的错误,就是轻敌。总感觉这事不难,一会就搞定。但实际头疼了半个月。另外就是不看日志。到最后两天,大量的调试是在对比日志和理解日志的涵义,针对日志去进行配置。从我学linux的过程来看,看手册,翻日志,分析别人的案例,是学习的最佳途径。

关于安全配置linux虚拟主机的过程,我将另写文章。

 Page 5 of 8  « First  ... « 3  4  5  6  7 » ...  Last »