- nginx在freebsd上的安装
nginx在freebsd上的安装
一 . 安装必备软件 MySQL+PHP+Pcre
cd /usr/ports/database/mysql50-server && make install cleancd /usr/lang/php5/ && make install clean 选择对cgi mysql等的支持cd /usr/devel/pcre && make install clean
用ports安装 /usr/ports/www/nginx, make install clean
二、弄了一个fastcgi的脚本,来自lighttpd
1) cd /usr/ports/www/lighttpd2) make3) cp /usr/ports/www/lighttpd/work/lighttpd-1.4.18/src/spawn-cgi /usr/bin4) make clean
三、修改配置文件:
1,/usr/local/etc/nginx/nginx.conf:
user www www;worker_processes 10;error_log /usr/local/etc/nginx/logs/nginx_error.log crit;worker_rlimit_nofile 51200;events{use epoll;worker_connections 51200;}http{include conf/mime.types;default_type application/octet-stream;charset gb2312;server_names_hash_bucket_size 128;keepalive_timeout 60;tcp_nodelay on;gzip on;gzip_min_length 1k;gzip_buffers 4 8k;gzip_http_version 1.1;gzip_types text/plain application/x-javascript. text/css text/html application/xml;server{listen 80;server_name www.test.com;index index.html index.htm index.php;root /usr/local/www/data/;location ~ .*\.php?${include fcgi.conf;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;}log_format access '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';access_log /usr/local/nginx/logs/access.log access;}}
2 ,先将php.ini的配置中 cgi.fix_pathinfo=1 这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。
3,编辑fcgi.conf文件,加入
fastcgi_param GATEWAY_INTERFACE CGI/1.1;fastcgi_param SERVER_SOFTWARE nginx;fastcgi_param QUERY_STRING $query_string;fastcgi_param REQUEST_METHOD $request_method;fastcgi_param CONTENT_TYPE $content_type;fastcgi_param CONTENT_LENGTH $content_length;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param SCRIPT_NAME $fastcgi_script_name;fastcgi_param REQUEST_URI $request_uri;fastcgi_param DOCUMENT_URI $document_uri;fastcgi_param DOCUMENT_ROOT $document_root;fastcgi_param SERVER_PROTOCOL $server_protocol;fastcgi_param REMOTE_ADDR $remote_addr;fastcgi_param REMOTE_PORT $remote_port;fastcgi_param SERVER_ADDR $server_addr;fastcgi_param SERVER_PORT $server_port;fastcgi_param SERVER_NAME $server_name;# PHP only, required if PHP was built with --enable-force-cgi-redirect#fastcgi_param REDIRECT_STATUS 200;
四,启动
1, 启动fcgi
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -f /usr/local/bin/php-cgi
参数说明:
-f
也可建立脚本1) ee /usr/bin/php-fastcgi
#!/bin/sh/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www -f /usr/local/bin/php-cgi
2) chmod 755 /usr/bin/php-fastcgi
3) ee /usr/local/etc/rc.d/init-fastcgi
#!/bin/bashPHP_SCRIPT=/usr/bin/php-fastcgiRETVAL=0case "$1" instart)$PHP_SCRIPTRETVAL=$?;;stop)killall -9 phpRETVAL=$?;;restart)killall -9 php$PHP_SCRIPTRETVAL=$?;;*)echo "Usage: php-fastcgi {start|stop|restart}"exit 1;;esacexit $RETVAL
4) chmod 755 /usr/local/etc/rc.d/init-fastcgi
2,启动nginxnginx -t -c /usr/local/etc/nginx/nginx.conf 测试配置是否正确如果屏幕显示以下两行信息,说明配置文件正确:
the configuration file /usr/local/etc/nginx/nginx.conf syntax is okthe configuration file /usr/local/etc/nginx/nginx.conf was tested successfully
启动:
nginx -c /usr/local/etc/nginx/nginx.conf
开机自动启动加入/etc/rc.conf
nginx_enable="YES"
nginx参数: **-c </path/to/config>为 Nginx 指定一个配置文件,来代替缺省的。-t不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。-v显示 nginx 的版本。-V**显示 nginx 的版本,编译器版本和配置参数。
原文: https://wizardforcel.gitbooks.io/nginx-doc/content/Text/6.2_nginx_freebsd.html
