新搞了个VPS,打算把Blog以及全套行头迁移过来。
以前的那套图省事,用了CentOS5 Kloxo AllinOne BOX。基本上依靠这个CP搞定了全套,主要是人懒不想折腾而已。这次换了个新的VPS提供商,心血来潮想折腾Debian。所以把过程记录下来,避免以后不折腾了却忘记自己当初怎么搭。
总体思路还是采取懒汉办法,有官方源的从官方源安装,没官方源找第三方社区源,再没有的话自己做deb,无论如何,避免从源代码直接编译。
首先把最简单的MySQL装上,用官方源,一句话搞定:
apt-get install mysql-server
MySQL配置文件稍后再搞,对于小Blog来说MySQL的优化意义不大。
其次是nginx,说实话这东西不熟,不过貌似最近挺流行,Debian Lenny也将其收进官方源了,那就简单apt之
apt-get install nginx
简单netstat看一下发现80已经在监听了,访问http://<IP>发现出现欢迎页“Welcome to nginx!”,接下来就是怎么让PHP在nginx上跑起来。
很没技术含量不是,很不幸后面的也没啥技术含量。一破Blog日IP不过300折腾个什么劲啊,不就是一个玩儿么。
PHP稍微麻烦点,因为Nginx没有像Apache那样的SAPI调用PHP的方式,而是使用FastCGI来调。这里就存在一个对PHP的FastCGI进程如何管理的问题。官方源的php5-cgi本身没有进程管理机制。一个比较好的选择是用spawn-fcgi(源自lighttpd的小东东)来起PHP进程,结果查了一下spawn-fcgi到现在还在sid呆着。还有一个选择是使用php-fpm来做FastCGI进程管理,这东西的灵活性比spawn-fcgi还要高不少,但代价是要往PHP源代码里打Patch才能用,也就意味着–要重新编译整个PHP。
简单权衡了一下,我觉得我还是想用php-fpm,但是又想偷懒不编译源代码,于是就求助于第三方二进制源了。随便搜了一下发现还真有正合适的– http://www.dotdeb.org/,这个社区致力于维护Debian下的LAMP类软件的非官方二进制包,恰好它们近期重做了PHP,使用了PHP5.3.1版本,并集成入了Suhosin安全补丁。最让人舒服的是吧php-fpm做成了一个php5-fpm的安装包,并给其加了SysV类的启动脚本,这样PHP的FastCGI方式即可以有自己单独的conf文件,又有单独的init.d控制脚本,可谓完美。
无废话说干就干。
修改/etc/apt/source.list,加入dotdeb的源设置:
deb http://php53.dotdeb.org stable all
deb-src http://php53.dotdeb.org stable all
然后apt之:
apt-get update
apt-get install php5-cgi php5-fpm
这样PHP就算完事了,简单验证一下,运行如下命令,观察phpinfo()输出是否正常:
php-cgi –i
再保险点看一下PHP的FastCGI进程有没有跑起来,ps aux|grep php,应该能看到有进程为”/usr/bin/php5-fpm –fpm-config /etc/php5/fpm/php5-fpm.conf”在跑。
剩下的事就是搞定nginx的配置文件把站点建好,并让其能调用后台的PHP。这个dotdeb社区源做的php5-fpm好心到都提供了一个nginx的example配置文件,放在/etc/php5/fpm/nginx-site-conf.sample,改改拿来用就好了。
我是将其复制到/etc/nginx/sites-enabled/opslife.com.conf,然后简单修改几个参数,改好的配置文件是这样:
#
# nginx-site-conf.sample:
# Php Site configuration for nginx webserver
#
# 1. set server root /path/to/your/website;
# 2. Rename this file. Copy it to /etc/nginx/sites-available, /etc/nginx/sites-enabled
# or otherwise ensure that this file is included by the nginx.conf
# 3. Restart nginx webserver, and php-fpm service.
#server {
root /home/dawnh/opslife.com;
server_name opslife.com www.opslife.com d9.opslife.com;
listen 80;access_log /var/log/nginx/opslife.com.access.log;
location / {
index index.html index.htm index.php;
}#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}# pass the *.php scripts to php-fpm listening on tcp port 9000
#
location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
fastcgi_ignore_client_abort on;
}}
这样站点配置就算是完成了,/etc/init.d/nginx restart重启后,新站点应该就会跑起来了,使用域名opslife.com、www.opslife.com、 d9.opslife.com都应该访问到新建立的站点。
最后再验证一下,扔一个info.php放到/home/dawnh/opslife.com,内容就一句:
<?php phpinfo();?>
由于主域名还没指过来,先用子域名访问测试,直接访问http://d9.opslife.com/info.php,看到返回正确的phpinfo信息。到此最后一步也算顺利完成。
剩下就是把wordpress的东西从老的VPS迁移过来了,依旧是没什么技术含量。有空再记录。
我用你的方法步骤;最后php却跑不起来 显示不出来内容!!!!
php-cgi -i
d>
posix
Revision $Revision: 289424 $
Reflection
Reflectionenabled
Version $Revision: 287991 $
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive<t^^^
但是:
ps aux|grep php,应该能看到有进程为”/usr/bin/php5-fpm –fpm-config /etc/php5/fpm/php5-fpm.conf”在跑
请问是何原因?谢谢
我是在虚拟机上做的
可能是fastcgi进程没有启动,试试看运行/etc/init.d/php5-fpm start后再ps aux|grep php
我的空间用移动的网络不能访问,以前可以,现在WAP,WLAN,内网都不行,网通可以,是不是IP在黑名单里了?有没啥法子解决一下?或确认一下问题所在?
呵,昨晚在手机上发完提示ERROR,居然显示出来了。
dawnh 星条旗,你牛~~~ 呵呵
这次你用的是哪家VPS呢,可以推荐下么?我也弄一个。。
d9host.com,不过目前blog还没有迁移过来,我完全把这个Debian当实验机来玩了。x同学,你的空间现在是哪个域名和IP?
博客不错!
我用的ramhost,性价比还是相当不错的。
博主可否在你这个nginx上配置https证书并就此写篇文章?我试了好多次都不成功
etc/nginx/sites-enabled/opslife.com.conf
我没那个opslife.com.conf那个文件。只有一个default。怎么办?
opslife.com.conf是我自己建立的,你可以新建一个,名字随意,只要在/etc/nginx/sites-enabled/这个路径下所有的.conf文件都会被包含到nginx的配置文件中去。
幸会。
我之前也用的是这个主题,花了很多时间定制了。上次WP3.0升级不完全,网站不能访问,我干脆做成了wiki。
现在用的是lighttpd,基本可以,就是有时候偶尔停止运行。想尝试下一nginx。今天有空就试试吧。
我有三个域名,所以还要加上虚拟主机的配置。slicehost上有虚拟主机的教程。
另,我用的主机是2host,优惠时8刀,512M内存,感觉相当的值。
[...] 2010年7月15日 wenhui 发表评论 阅读评论 来源:http://opslife.com/install-nginx-php-mysql-on-debian-lenny/ 新搞了个VPS,打算把Blog以及全套行头迁移过来。 [...]
[...] Debian Lenny安装nginx+PHP+MySQL傻瓜手记 | Solo Estoy PHP稍微麻烦点,因为Nginx没有像Apache那样的SAPI调用PHP的方式,而是使用FastCGI来调。这里就存在一个对PHP的FastCGI进程如何管理的问题。官方源的php5-cgi本身没有进程管理机制。一个比较好的选择是用spawn-fcgi(源自lighttpd的小东东)来起PHP进程,结果查了一下spawn-fcgi到现在还在sid呆着。还有一个选择是使用php-fpm来做FastCGI进程管理,这东西的灵活性比spawn-fcgi还要高不少,但代价是要往PHP源代码里打Patch才能用,也就意味着–要重新编译整个PHP。 (tags: vps hosting nginx debian) [...]