window下phpstudy使用nginx配置https

本文介绍了在Windows上使用PHPStudy配合Nginx配置HTTPS的详细步骤,包括安装OpenSSL、生成证书以及配置Nginx服务器。重点讲述了如何创建私钥、CSR文件,去除密码以及生成CRT证书,最后提到了配置Nginx的vhost.conf文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nginx相关配置

  1. 安装Openssl (下载地址:http://slproweb.com/products/Win32OpenSSL.html) 

安装完成记得配置环境变量。

变量名:OPENSSL_HOME

变量值: openssl自定义的安装目录\bin;

(变量值为OPENSSL安装位置下的bin目录)

          并在Path变量结尾添加一条: %OPENSSL_HOME%

         环境变量配置操作:计算机-》右击-》属性-》打开的界面选择 高级系统设置-》环境变量

          

 2. 生成证书

在phpstudy 安装目录下找到nginx文件夹 新建openssl目录

 

打开cmd 进入到openssl目录 依次执行以下操作

第一步:创建私钥

在命令行中执行命令:

openssl genrsa -des3 -out google_test.key 1024

输入密码123456,再次重复输入确认密码。记住此密码,后面会用到。

第二步:创建csr证书

在命令行中执行命令:

openssl req -new -key google_test.key -out google_test.csr

其中key文件为刚才生成的文件。

执行上述命令后,需要输入一系列的信息。输入的信息中最重要的为Common Name,这里输入的域名即为我们要使用https访问的域名 ,比如我输入的是www.google.com。其它的内容随便填即可。

以上步骤完成后,openssl文件夹内出现两个文件:google_test.csr 和 google_test.key

第三步:去除密码。

在加载SSL支持的Nginx并使用上述私钥时除去必须的口令,否则会在启动nginx的时候需要输入密码。

复制google_test.key并重命名为google_test.key.org。

在命令行中执行如下命令以去除口令:

openssl rsa -in google_test.key.org -out google_test.key

然后输入密码,这个密码就是上文中在创建私钥的时候输入的密码(123456)。

第四步:生成crt证书

在命令行中执行此命令:

openssl x509 -req -days 365 -in google_test.csr -signkey google_test.key -out google_test.crt

至此,证书生成完毕。我们发现,openssl文件夹中一共生成了4个文件。下面,配置https服务器的时候,我们需要用到的是其中的google_test.crt和google_test.key这两个文件。

 

  1. nginx 配置

编辑D:\phpStudy\nginx\conf\vhost.conf

 

 

 

### 如何在PHPStudy中设置和配置Nginx服务器 #### 配置URL重写美化路径省略`index.php` 为了使URL更加简洁美观,在PHPStudy中的Nginx可以按照如下方式来配置以去除访问链接里的`index.php`部分。编辑站点对应的`.conf`文件,通常位于phpStudy安装目录下的`PHPTutorial/nginx/conf/vhost/`内[^1]。 ```nginx server { listen 80; server_name localhost; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } ``` 此段配置实现了当请求不存在实际物理文件或目录时自动转向至`index.php`处理,并保留原始查询字符串参数。 #### 解决跨域资源共享(CORS) 对于需要支持来自不同源的HTTP请求的应用程序来说,可以在Nginx配置里加入特定头部信息允许跨域资源加载。同样是在对应网站配置文件中添加以下内容实现跨域权限开放[^2]: ```nginx location / { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; if ($request_method = 'OPTIONS') { return 204; } } ``` 这段代码设置了响应头字段,告知浏览器哪些域名、方法以及自定义头部被授权用于发起CORS预检请求。 #### ThinkPHP框架适配 如果使用的是ThinkPHP5这样的MVC架构,则需要注意调整根目录指向项目的`public`子文件夹而不是默认的顶级目录。修改`root`指令并确保路径分隔符统一采用正斜杠形式而非反斜杠,这是因为Nginx无法识别Windows风格的路径符号[^3]。 ```nginx server { ... root "E:/www/project/public"; # 注意这里要改成自己的项目位置,并且用/ location / { try_files $uri $uri/ @rewrite; } location @rewrite { rewrite ^/(.*)$ /index.php/$1 last; } location ~ \.php(/|$) { set $real_script_name $fastcgi_path_info; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; } } ``` 上述配置适用于大多数基于ThinkPHP或其他类似结构的应用部署需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值