NetBSD 上安装和配置 Nginx+PHP+FastCGI+MySQL
2010年08月2日 | 标签: fastcgi, mysql, netbsd, nginx, php | 作者:vpsee
NetBSD 支持 n 种硬件架构,是地球上支持最多体系的系统;OpenBSD 来自 NetBSD,自称是地球上最安全的系统;FreeBSD 和 NetBSD 一样来自原始的 4.4 BSD-lite,但是 FreeBSD 现在主要支持 i386,在 PC 体系上 FreeBSD 比 NetBSD/OpenBSD 好很多,性能也最好。这三种 BSD 各有特点,和不同的 Linux 发行版一样每个系统都有很多粉丝,当然使用 FreeBSD 的人最多。VPSee 的一台老掉牙的 IBM ThinkPad 就在跑 FreeBSD,嗯,现在这台机器还在工作呢。虽然 NetBSD 的性能在 i386 上没有 FreeBSD 那么好,但是它的稳定性是非常的赞,Benchmarking BSD and Linux 这篇测试的作者说:
Please note that NetBSD was the only BSD that never crashed or panicked on me, so it gets favourable treatment for that.
我们上周五发布了 NetBSD VPS,我们鼓励用户自己动手安装 Nginx+PHP+FastCGI+MySQL 和熟悉 NetBSD 环境,这篇文章在我们的 NetBSD VPS 上搭建:
下载 pkgsrc
The NetBSD Packages Collection (pkgsrc) 是 NetBSD 下的基于源码的软件包管理系统,不同于 Debian/Ubuntu 上的 apt-get,pkgsrc 是基于源代码的方式管理软件包的,有点像 Gentoo 里面的 emerge 系统。pkgsrc 有三个分支,HEAD、pkgsrc-yyyyQqq 和 pkgsrc-wip,前两个是 pkgsrc 项目组的正式分支。我们在这里使用 pkgsrc-yyyyQqq(季度分支),下载和解压 pkgsrc 并放到合适的目录:
# ftp ftp://ftp.NetBSD.org/pub/pkgsrc/pkgsrc-2010Q2/pkgsrc-2010Q2.tar.bz2 # tar jxvf pkgsrc-2010Q2.tar.bz2 # mv pkgsrc /usr/
安装 Nginx+PHP+FastCGI+MySQL
编译和安装 PHP,注意编译 PHP 的时候需要加上 fastcgi 说明,这样 PHP 编译才会把 FastCGI 部分编译进去:
# vi /etc/mk.conf PKG_OPTIONS.php = fastcgi # cd /usr/pkgsrc/lang/php5 # make install clean clean-depends
配置 PHP:
# /usr/pkg/etc/php.ini cgi.fix_pathinfo=1
编译和安装 FastCGI:
# cd /usr/pkgsrc/www/spawn-fcgi/ # make install clean clean-depends
编译和安装 Nginx:
# cd /usr/pkgsrc/www/nginx # make install clean clean-depends
配置 Nginx:
# cp /usr/pkg/share/examples/rc.d/nginx /etc/rc.d/ # vi /usr/pkg/etc/nginx/nginx.conf location / { root share/examples/nginx/html; index index.html index.htm index.php; } ... location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/pkg/share/examples/nginx/html$f astcgi_script_name; include /usr/pkg/etc/nginx/fastcgi_params; }
把 Nginx 加到启动文件以便启动系统时自动启动:
# vi /etc/rc.conf nginx=YES
编译和安装 MySQL:
# cd /usr/pkgsrc/databases/php-mysql # make install clean clean-depends # cd /usr/pkgsrc/databases/mysql5-server # make install clean clean-depends
配置 PHP 以便加载 MySQL 动态连接库:
# vi /usr/pkg/etc/php.ini extension=mysql.so
把 MySQL 加到启动文件以便启动系统时自动启动:
# cp /usr/pkg/share/examples/rc.d/mysqld /etc/rc.d/ # vi /etc/rc.conf mysqld=YES
启动 FastCGI:
# /usr/pkg/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -f /usr/pkg/libexec/cgi-bin/php spawn-fcgi: child spawned successfully: PID: 18554
启动 Nginx:
# /etc/rc.d/nginx start Starting nginx.
启动 MySQL 和设置 root 密码:
# /etc/rc.d/mysqld start # /usr/pkg/bin/mysqladmin -u root -p password 'new-password'
测试
写一个 phpinfo() 文件放在 nginx 目录下,然后打开浏览器测试是否能正确访问 php 文件:
# vi /usr/pkg/share/examples/nginx/html/index.php http://www.vpsee.com/index.php
用php-fpm更好 稳定性比php-cgi高
NetBSD其實也有二進包可用。
http://www.netbsd.org/docs/pkgsrc/using.html
嗯,推荐使用二进制安装,没有必要的话源码费时费力啊。