freebsd nginx php mysql,freebsd:Nginx+php+mysql:unknown “fastcgi_script” variable

文章是参考别人的,本人是在原先lighttpd+fastcgi(php)+mysql环境下直接安装nginx,然后修改相关配置文件/usr/local/etc/nginx/nginx.conf

location / {

root /usr/local/www/nginx;

转载自:http://hacker-piao.blog.163.com/blog/static/122505720091109483328/

index index.php index.html index.htm;

}

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script.name;#PHP文件所在目录

include fastcgi_params;

}

本来是很简单的一个过程,启动的时候出现了问题,unknown “fastcgi_script” variable

然后只能把

fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script.name;

修改成

fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx;

启动时候是不报错了,但是访问PHP文件出错nginx No input file specified

结果在网上找了一堆资料搞了半天,很多提到php.ini里面的相关设置。

cgi.fix_pathinfo=1

doc_root=

我把能试的都试了,还是不行。又有人说是PHP文件的在目录的权限问题,最后设置成777了还是不行。。。这下郁闷了,

汗死了。。。(就这样浪费了两个多小时)

最后突然发现有的文章

fastcgi_param SCRIPT_FILENAME 这里用的是$fastcgi_script_name

然而我参考的很多文章用的却是$fastcgi_script.name

很可能出错就是在这里了。立马修改成$fastcgi_script_name

重启nginx果然没有报错,访问php文件也正常了。看来是一篇文章出错,然后接着一堆都跟着出错。。。所以今后得细心一点,因为一个小错误导致浪费这么多时间。

cd /usr/ports/www/nginx

make install clean

echo ‘nginx_enable=”YES” >> /etc/rc.conf

cd /usr/ports/lang/php5

#选择支持 fastCGi

make config

make install clean

cd /usr/ports/lang/php5-extensions/

make config

make install clean

#安装 spawn-fcgi

pkg_add -r -v lighttpd

cd /usr/local/bin/

cp spawn-fcgi ../

# 找到安装的版本

pkg_info

# 删除掉lighttpd

pkg_delete lighttpd-1.4.18_1

cp ../spawn-fcgi spawn-fcgi

/usr/local/etc/nginx/nginx.conf

location / {

root /usr/local/www/nginx;

index index.php index.html index.htm;

}

location ~ \.php$ {

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

先启动php的fastcgi模式

# /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -f /usr/local/bin/php-cgi

参数说明: a 127.0.0.1 : php-fcgi所绑定的web服务器ip

p 9000: nginx连接spawn-fcgi的端口.

u www : 用户名.

g www : 用户组

#ee /etc/rc.local

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -g www -C 25(进程数) -f /usr/local/bin/php-cgi

这样spawn-fcgi就能开机自启动了

在启动spawn-fcgi之后再启动nginx,然后就可以访问php文件了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TrueNAS是一个基于FreeBSD的存储操作系统,它内置了一些基本的网络服务,比如FTP,SMB,NFS,但是它并没有内置nginxphpmysql。 如果你想在TrueNAS上搭建一个nginx+php+mysql服务器,你需要进行以下步骤: 1. 安装pkg包管理器 在TrueNAS的Shell界面中,输入以下命令: ``` pkg ``` 如果提示你需要安装pkg,输入以下命令进行安装: ``` pkg install pkg ``` 2. 安装nginx 在Shell界面中,输入以下命令进行nginx的安装: ``` pkg install nginx ``` 安装完成后,你可以通过以下命令启动nginx服务: ``` service nginx start ``` 3. 安装php 在Shell界面中,输入以下命令进行php的安装: ``` pkg install php74 ``` 安装完成后,你需要在nginx的配置文件中添加php的支持。找到nginx的配置文件,一般是在/usr/local/etc/nginx/nginx.conf,添加以下内容: ``` location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/www$fastcgi_script_name; include fastcgi_params; } ``` 4. 安装mysql 在Shell界面中,输入以下命令进行mysql的安装: ``` pkg install mysql80-server ``` 安装完成后,你可以通过以下命令启动mysql服务: ``` service mysql-server start ``` 5. 配置nginxmysql 在TrueNAS的Web界面中,进入Jails -> Configuration,创建一个新的Jail,并勾选“Auto start”选项。 进入Jail的Shell界面,编辑以下文件: - /usr/local/etc/nginx/nginx.conf - /usr/local/etc/php.ini - /usr/local/etc/mysql/my.cnf 根据你的需求进行配置,然后重启服务即可。 希望这些步骤能够帮助你在TrueNAS上搭建一个nginx+php+mysql服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值