Ubuntu 9.04 VPS的LNMP(linux+nginx+mysql+php)解决方案

Posted by zuzhihui in vps技术 on 2009/09/07 with No Comments

本文介绍在Ubuntu 9.04 VPS下的nginx php mysql的解决方案,本方案使用php-fpm作为fastcgi的进程管理器。

本文基于64位的Ubuntu 9.04 VPS,如果是32位的VPS,请在相应部分做修改。

使用php-fpm就必须重新编译php,不能使用系统自带的php。MySQL使用Ubuntu自带的,Nginx是从ubuntu官方下载的最新版本。

安装Nginx

ubuntu 9.04系统自带的nginx版本比较低,Nginx版本是最新稳定版本0.7.61,即将发行的ubuntu 9.10里面带的是最新版本的nginx,测试后发现这个nginx在9.04下可以运行,于是我们下载到 http://dl.rashost.com

安装命令:

dpkg -i nginx_0.7.61-1ubuntu1_amd64.deb
/etc/init.d/nginx start

mkdir -p /var/www/nginx-default
echo 'nginx ok'>/var/www/nginx-default/index.html
echo '<?phpinfo()?>' > /var/www/nginx-default/test.php

另外运行dpkg -L nginx命令可以看到nginx的文件都安装在哪些目录下面了

ubuntu下nginx的缺省网页目录是/var/www/nginx-default,这个目录安装的时候没有创建,我们是手工创建的。

通过浏览器访问,应该能看到nginx的缺省网页了,说明nginx正常工作了!

安装MySQL

我们使用ubuntu自带的MySQL,安装命令:

apt-get install mysql-server-5.0
/etc/init.d/mysql start

运行mysql -uroot -p命令,应该可以正常连接到MySQL

安装php & php-fpm

先修改/etc/apt/sources.list,把universe和multiverse加进来,修改后的文件内容是:

deb http://archive.ubuntu.com/ubuntu jaunty main universe multiverse
deb http://security.ubuntu.com/ubuntu jaunty-security main universe multiverse

然后同步软件库:

apt-get update

然后安装php所需要的库文件:

apt-get install libxml2 libldap-2.4-2 libmhash2 libmysqlclient16 curl libpng3 libjpeg62 libsasl2-2 libmcrypt4 libltdl7

http://dl.rashost.com/下载安装我们自己在ubuntu下编译的php-fpm:

cd /opt
tar zxf php-fpm-5.2.10-amd64.tar.gz
ln -s /opt/php/sbin/php-fpm /etc/init.d/php-fpm
update-rc.d -f php-fpm defaults
/etc/init.d/php-fpm start

整合

首先在/var/www/nginx-default目录下创建文件test.php,其内容很简单,只要下面一行:

<?phpinfo();?>

假设所在VPS的地址是ubuntu904.rashost.com,这时通过浏览器访问http://ubuntu904.rashost.com/test.php是得不到正确的显示结果的。

修改nginx的配置文件/etc/nginx/sites-enabled/default,在文件内搜索fastcgi_pass,修改该部分内容为:

      location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default/$fastcgi_script_name;
include        fastcgi_params;
}

注意,ubuntu下的nginx配置文件和centos下的区别比较大,ubuntu下把配置分割成多个文件了,推荐一个站点一个配置文件,我们修改的是/etc/nginx/sites-enabled/default。另外fastcgi_param参数后面的/var/www/nginx-default/部分,这是具体的网页目录,如果像centos下那样写成$document_root不知道为什么就不工作了。

然后重启nginx:

/etc/init.d/nginx/restart

然后在浏览器中访问test.php页面,就应该能正确显示了,reboot VPS测试一下,各个模块应该都能自带启动。大功告成!

标签:

Leave a Comment

Back to Top

2007-2013 © 北京瑞豪开源科技有限公司 京ICP备13004995号-2