下面是具体的“Mac系统下搭建Nginx+php-fpm实例讲解”的完整攻略:
步骤1:安装Homebrew
Homebrew是Mac OS X下的一款包管理器,我们可以使用它方便地安装和管理各种工具软件,包括Nginx和php。
要安装Homebrew,打开终端,输入以下命令即可:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
步骤2:安装Nginx
使用Homebrew来安装Nginx,输入以下命令:
$ brew install nginx
安装完成后,启动Nginx服务:
$ sudo nginx
在浏览器中输入http://localhost
,如果看到了“Welcome to nginx!”的页面,说明Nginx已经安装并成功运行了。
步骤3:安装php-fpm
使用Homebrew来安装php-fpm,输入以下命令:
$ brew install php
安装完成后,启动php-fpm服务:
$ sudo php-fpm
步骤4:配置Nginx
在终端中进入Nginx的配置文件目录:
$ cd /usr/local/etc/nginx/
创建Nginx的配置文件:
$ sudo touch nginx.conf
使用编辑器(如vi)打开nginx.conf文件,输入以下内容:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
root /Users/yourusername/Sites;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
需要修改的是root
指令,将其改成你自己的Web目录路径。
测试Nginx配置文件是否有错误:
$ nginx -t
如果测试成功,则可以启动Nginx服务:
$ sudo nginx
步骤5:测试php
在Web目录(即root
指令中配置的目录)下创建一个index.php
文件:
$ cd ~/Sites
$ sudo touch index.php
使用编辑器打开index.php文件,输入以下内容:
<?php
phpinfo();
?>
在浏览器中输入http://localhost/index.php
,如果能看到PHP的信息页面,说明php-fpm已经安装并成功运行了。
示例1:安装和启动多个Nginx实例
如果需要同时启动多个Nginx实例,可以使用不同的配置文件和不同的端口号来实现。
假设现在需要安装和启动两个Nginx实例,分别监听80和81端口。
创建新的Nginx配置文件
在Nginx的配置文件目录中,创建一个新的配置文件:
$ cd /usr/local/etc/nginx/
$ sudo touch nginx2.conf
使用编辑器打开nginx2.conf文件,输入以下内容:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 81;
server_name localhost;
root /Users/yourusername/Sites/nginx2;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
需要修改的是root
指令,将其改成你自己的Web目录路径。
修改Nginx启动脚本
找到Nginx的启动脚本文件,编辑它:
$ sudo vi /usr/local/bin/nginx
修改文件内容,增加一个--conf
参数:
#!/bin/sh
nginx="/usr/local/nginx"
conf1="/usr/local/etc/nginx/nginx.conf"
conf2="/usr/local/etc/nginx/nginx2.conf"
case $1 in
start)
echo "Starting nginx..."
$nginx/sbin/nginx -c $conf1 > /dev/null 2>&1
$nginx/sbin/nginx -c $conf2 > /dev/null 2>&1
;;
stop)
echo "Stopping nginx..."
$nginx/sbin/nginx -s stop
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
启动新的Nginx实例
现在,我们就可以启动两个Nginx实例了:
$ sudo nginx start
示例2:配置https协议
以下是一个Nginx配置示例,它将HTTP监听端口80和HTTPS监听端口443绑定到不同的server配置中:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
root /path/to/website;
index index.html index.htm;
}
}
}
需要注意的是,当你使用HTTPS协议时,必须同时提供证书和私钥。可以通过下面的命令来生成自签名证书:
$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
生成的证书和私钥文件,需要在Nginx的配置文件中指定它们的路径。
这样,当你访问https://example.com
时,就会用HTTPS协议来访问了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mac系统下搭建Nginx+php-fpm实例讲解 - Python技术站