文章标签 » centos

php-fpm 5.3.3 rpm package with root privileges for centos/redhat 6

出于安全的考虑从源里面安装的php-fpm是不允许以root权限运行的

ERROR: [pool www] please specify user and group other than root

但是有些时候确实需要root权限,可以使用我打的开放root版本

php-fpm-5.3.3-1.i_want_root.el6.i386.rpm
php-fpm-5.3.3-1.i_want_root.el6.x86_64.rpm

如果想打其他php版本的包,可以修改下面的脚本使用

#!/bin/sh
yum install rpm-build gcc make subversion wget
yum install bzip2-devel gmp-devel zlib-devel pcre-devel libxml2-devel openssl-devel
test ! -f ./autoconf-2.13-8.noarch.rpm && wget "http://rpm.bluehua.org/php-fpm/autoconf-2.13-8.noarch.rpm"
rpm -e autoconf
rpm -ivh ./autoconf-2.13-8.noarch.rpm
#修改源码版本
test ! -f ./php-5.3.3.tar.bz2 && wget "http://museum.php.net/php5/php-5.3.3.tar.bz2"
tar jxvf ./php-5.3.3.tar.bz2
cd php-5.3.3/
rm -rf ./sapi/fpm/
#选择适当的php-fpm版本
svn co http://svn.php.net/repository/php/php-src/branches/PHP_5_3_10/sapi/fpm/ ./sapi/fpm
./buildconf --force
test ! -f ./php-fpm-build-rpm.tar.gz && wget "http://rpm.bluehua.org/php-fpm/php-fpm-build-rpm.tar.gz"
tar zxvf ./php-fpm-build-rpm.tar.gz
#修改php-fpm.spec中的版本号
rpmbuild -bb ./php-fpm.spec

开始提供坑爹的找不到的rpm下载

php-sqlite-5.3.3-1.el6.i686.rpm
php-sqlite-5.3.3-1.el6.x86_64.rpm

之后碰到找不到的包都会打好放到这里~

backup:install virtualbox and vnc server on readhat/centos 6

__WIKI__
==Install pkg from yum==

yum install make gcc gcc-c++ kernel-devel qt qt-x11 libXmu SDL libXt
wget "http://download.virtualbox.org/virtualbox/4.2.4/VirtualBox-4.2-4.2.4_81684_el6-1.x86_64.rpm"
rpm -ivh Virtual*.rpm
yum install wqy-zenhei-fonts.noarch gnome-terminal gnome-session tigervnc-server

==VNC Server Config==
vim /etc/sysconfig/vncservers

#connect vnc with host:5902
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 800x600"

set password for vnc server

vncpasswd

use gnome for X system

vim ~/.vnc/xstartup

#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &
gnome-terminal &

install proxy65 on centOS 5

再次对centos的python版本表示无语

wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tar.bz2
tar jxvf Python-2.6.6.tar.bz2
cd Python-2.6.6
./configure --prefix=/opt/python26
make
make install
 
cd ..
#试过10.2.0版本,不能用。。。
wget http://tmrc.mit.edu/mirror/twisted/Twisted/10.1/Twisted-10.1.0.tar.bz2
tar jxvf Twisted-10.1.0.tar.bz2
cd Twisted-10.1.0
/opt/python26/bin/python setup.py install
 
cd ..
wget http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz
tar zxvf zope.interface-3.3.0.tar.gz
cd zope.interface-3.3.0
/opt/python26/bin/python setup.py install
 
cd ..
wget http://proxy65.googlecode.com/files/Proxy65-1.2.0.tar.gz
tar zxvf Proxy65-1.2.0.tar.gz
cd Proxy65-1.2.0
/opt/python26/bin/python setup.py install
 
#OK
/opt/python26/bin/python /opt/python26/bin/twistd proxy65 --jid=proxy.xxx.com --secret=secret --rhost=127.0.0.1 --rport=5347 --proxyips=127.0.0.1:7777

———–
post by gmail~

nginx反向代理kloxo

偶的vps配置真是几经波折。。

最开始 : centos + nginx + fastcgi + php,一个人用,任何修改都是直接ssh到server,一水的root

后来,搬家了,两个人用,加一个菜鸟的明星同学,考虑到傻瓜性,保留了默认安装的控制面板:centos + kloxo。kloxo可以选lighttpd, apache。由于一开始不知道能切apache,就用了lighttpd + fastcgi + php,结果发现每个人开三个fastcgi,128内存基本上就快光了,还有一点不爽的就是wp-super-cache的重写,如果用apache根本不用操心。。

备注:恩,由于kloxo的安全性考虑,每个用户的fastcgi都是单开的,不能共用

现如今,同样的vps配置,5个人共用,不得不再换个思路。首先fastcgi肯定不靠普了,每个人开2个,基本上就靠swap活着了,所以一定要用apache,apache里php以模块运行,多用户可以共用,所以apache进程只需开到2-3个,使用8080端口,然后前端再放nginx做代理,顺便处理静态文件。

恩,思路很简单,但是问题是,kloxo生成的虚拟主机配置文件全是80端口,想hack一下,发现源代码全被zend加密了。后来官网svn找到源码,端口竟然都是80写死在代码里的,修改之后覆盖到server上,发现不能添加域名了,说明版本太新,最后没办法,只能恶心一下了~

每10秒钟检查一下配置文件,如果发现kloxo生成了80端口的配置文件,立刻替换成8080端口。脚本启动添加到/etc/rc.local里,开机运行。

#!/bin/sh
while [ "a"="a" ];do
        find /home/httpd/ -type f -name "kloxo.*" | xargs grep ":80\\\\" > /tmp/kloxo_port 
        if [ -n "`cat /tmp/kloxo_port`" ];then
                sh /root/kloxo_changeport.sh "80" "8080"
                sleep 2
                echo "restart httpd"
                echo "restart httpd `date`" >> /var/log/httpd_restart.log
                /etc/init.d/httpd restart
        fi
        sleep 10
done

用到的两个shell脚本下载 : fuck-kloxo

OK,解决完端口问题下面就是配置ngnix代理

#仅开了一个进程。。
worker_processes  1;

配置代理

server {
        limit_conn   myzone  10;
        listen       80;
        server_name  _;
#静态文件不走代理,直接nginx处理
        location ~* .*\.(jpg|jpeg|png|gif|css|js|swf|mp3|avi|flv|xml|zip|rar)$ {
                add_header BlueNoProxy 1;
                expires 30d;
                root /home/httpd/$host/httpdocs;
        } 
#html文件由可能是固态链接,所以404之后依然走代理
        location ~* .*\.(html|htm)$ {
                add_header BlueNoProxy 1;
                root /home/httpd/$host/httpdocs;
                error_page 404 = @proxy;
        }
#这里ip不能用127.0.0.1,kloxo的配置文件里会根据外网ip划分虚拟主机
        location @proxy {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;
 
        }
 
        location / {
                proxy_pass        http://209.124.50.68:8080;
                proxy_set_header Host $host;
                proxy_set_header  x-real-IP  $remote_addr;
        }
 
   }

以上,偶的最新vps配置就over了~