在fedora16下安裝nginx + php-fpm
1、安装Nginx
直接运行如下命令:
yum install nginx 然后我们创建系统启动nginx的链接,并启动它: systemctl enable nginx.service systemctl start nginx.service 在您的Web服务器的IP地址或主机到浏览器(如http://192.168.0.100),你应该看到nginx的欢迎页面类型: nginx-fedora 2、安装PHP5 需要安装一些列的模块,输入以下命令: yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy 然后打开的/etc/php.ini并设定cgi.fix_pathinfo = 0: vi /etc/php.ini [...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] 此外,以避免类似以下错误 [13-Nov-2011 22:13:16] PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CET/1.0/no DST' instead in /usr/share/nginx/html/info.php on line 2 … /var/log/php-fpm/www-error.log 中,当你调用一个PHP脚本在您的浏览器,你应该在/etc/php.ini文件中设置date.timezone: [...] [Date] ; Defines the default timezone used by the date functions ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] 你可以找到正确的时区为您的系统,运行命令: cat /etc/sysconfig/clock [root@server1 ~]# cat /etc/sysconfig/clock ZONE="Europe/Berlin" [root@server1 ~]# 下一步创建系统启动或者PHP-FPM并启动它: systemctl enable php-fpm.service systemctl start php-fpm.service PHP-FPM是一个守护进程运行FastCGI服务器的端口9000。 3、nginx设置 输入命令: vi /etc/nginx/nginx.conf 配置是很容易理解。 你可以再以下网址了解更多配置信息: http://wiki.codemongers.com/NginxFullExample http://wiki.codemongers.com/NginxFullExample2 按照以下配置设置值: [...] worker_processes 4; [...] keepalive_timeout 2; [...] 虚拟主机是指在服务器{}容器。默认的虚拟主机是指在该文件 /etc/nginx/conf.d/default.conf -让我们作如下修改: [...] server { listen 80; server_name _; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/share/nginx/html; index index.php index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } [...] 保存和重启服务: systemctl reload nginx.service 现在你可以建立一个探针文件进行测试 4、建立 PHP-FPM 使用一个 Unix Socket vi /etc/php-fpm.d/www.conf [...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] 重启PHP-FPM systemctl restart php-fpm.service 配置文件: vi /etc/nginx/conf.d/default.conf 配置内容如下: [...] location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } [...] 重启Nginx: systemctl reload nginx.service (责任编辑:IT) |