在FreeNAS/BSD搭建基于Nginx+FastCGI+MySQL+PHP的WebServer
使用FreeNAS也快半月月了,在上一篇文章介绍了利用FreeNAS能做的一些事情,其中一项是WebServer。搭建了FreeNAS之后,这项功能也是必不可少的,简单分享一下配置步骤,希望能帮助到同我一样的刚刚接触FreeNAS(同样适用于FreeBSD)的朋友。
在FreeNAS之前,一直都是在Atom上跑Windows,因为作为文件服务器,除了存储文件/共享(Windows的局域网共享做这个确实很方便,但相比FreeNAS内置的SMB,还是稍显复杂,因为还需要通过一些不算简单的设置,才能解决NTFS权限问题,而FreeNAS中,都为你做好了),还有一个更重要的功能就是下载,虽然迅雷的资源共享方式稍显流氓,但其下载速度和资源探索能力也是无需置疑的(之后也会介绍一下如何利用FreeNAS/BSD打造属于自己的全能下载机)。
说实话,相比Windows用了十数年,对于类unix系统,我是相当的不熟悉,也是毕业以后,由于工作需要,才渐渐的接触一些。时至至今,也只会通过apt-get pkg_add等方式来安装软件。在Windows下,一直都是用几年前自己写的一套脚本来安装基于Apache+MySQL+PHP的服务器,初次接触FreeBSD,参考了网上很多资料也终于实现了基于Nginx+FastCGI+MySQL+PHP的WebServer。
以下所有的操作步骤都是在Shell下完成,可以在FreeNAS启动后,通过Console菜单6 Shell或在WebGUI中开启SSH服务登录。
安装PHP
如果你是在FreeNAS上安装PHP,请特别注意下面的几步,若是在FreeBSD上安装,可以忽略cp,mv的步骤,直接通过pkg_add安装PHP。
因为安装FreeNAS的WebGUI是基于Lighttpd+PHP,重新安装PHP会引起系统崩溃,不仅WebGUI无法启动,连系统都无法引导,因此将PHP的安装放在第一步,如果这一步没有问题,后面的就都简单了。当时我也是经过N次失败才找到这个问题,分享出来,希望大家不要走弯路。
首先,需要备份一个重要的文件,因为在PHP的安装后,会覆盖掉这个文件,而正是这个文件引起系统无法启动和WebGUI不能访问。
cp /usr/local/lib/libxml2.so.5 /tmp/libxml2.so.5
然后开始安装PHP
pkg_add -r php5 pkg_add -r php5-extensions pkg_add -r php5-xmlrpc pkg_add -r php5-gettext pkg_add -r php5-mcrypt pkg_add -r php5-mbstring
注意安装完后切忌不要重启,再继续输入下面的命令
mv /usr/local/bin/php /usr/local/bin/php-cli cp /usr/local/bin/php-cgi /usr/local/bin/php rm /usr/local/lib/libxml2.so.5 cp /tmp/libxml2.so.5 /usr/local/lib/libxml2.so.5
至此PHP安装完成,请重启你的FreeNAS,如果能够正常访问WebGUI,恭喜你,接下去的步骤就简单多了。
安装MySQL
pkg_add -r mysql50-server /usr/local/bin/mysql_install_db chown -R mysql /var/db/mysql # 启动Mysql /usr/local/bin/mysqld_safe & # 修改root密码为123456 /usr/local/bin/mysqladmin -u root password '123456'
修改/etc/rc.conf加入mysql_enable=”YES”,至此MySQL安装完成。
安装Nginx+FastCGI
由于FreeNAS的WebGUI已占用了80端口,因此建议先通过WebGUI>System>General>WebGUI>Port将WebGUI的端口改为其他,例如88。
参阅了大量网上的Nginx+PHP的配置方案,无一例外都是通过lighttpd的spawn-fcgi来实现,这个脚本找了很久也没找到,虽然FreeNAS自带Lighttpd,我也没在系统内找到……,于是我只好重新安装了一遍Lighttpd。
pkg_add -r nginx pkg_add -r -v lighttpd chmod 0777 /usr/local/etc/nginx/nginx.conf
编辑/usr/local/etc/nginx/nginx.conf,找到以下配置
location / {
root /usr/local/www/nginx;
index index.html index.htm;
}
在index最后增加index.php
找到以下配置
#location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #}
去掉行首的注释符#,并改为以下内容。
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name; include fastcgi_params; }
至此Nginx安装完成,然后通过下面的脚本分别启动FastCGI和Nginx。此脚本建议加入/etc/rc.local随机启动
/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -C 64 -f /usr/local/bin/php-cgi /usr/local/sbin/nginx
然后在/usr/local/www/nginx目录下新建index.php。
<?php echo phpinfo();
输入http://nas-ip/index.php,是不是看到了久违的phpinfo?
建议继续学习:
- 配置Nginx+uwsgi更方便地部署python应用 (阅读:105407)
- Linux 下 PHP 5.2.x 连接 SQL Server 数据库 FreeTDS 配置笔记 (阅读:10106)
- nginx的配置文件 (阅读:8838)
- Emacs安装配置 (阅读:7312)
- 如何查看Linux 硬件配置信息 (阅读:5868)
- Centos yum 安装nginx+PHP-FPM+eAccelerator+mysql (阅读:5618)
- Apache2中俩种设置PHP的异同 (阅读:5306)
- Linux(Ubuntu 10.04)上安装配置apache+php+mysql+phpmyadmin (阅读:5011)
- 在Mac OS X中运行Apache + PHP + MySQL (阅读:4368)
- apache+mod_wsgi+django在windows下的部署 (阅读:4164)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:RayChou 来源: 周帆的web实验室
- 标签: FreeNAS WebServer 配置
- 发布时间:2010-04-09 09:15:43
- [46] 界面设计速成
- [40] 视觉调整-设计师 vs. 逻辑
- [40] Oracle MTS模式下 进程地址与会话信
- [38] android 开发入门
- [38] IOS安全–浅谈关于IOS加固的几种方法
- [36] 程序员技术练级攻略
- [36] 如何拿下简短的域名
- [35] 图书馆的世界纪录
- [35] 【社会化设计】自我(self)部分――欢迎区
- [32] 读书笔记-壹百度:百度十年千倍的29条法则