在fedora16下安裝nginx + php-fpm
时间:2016-05-29 23:46 来源:linux.it.net.cn 作者:IT
在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)
在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) |