PHP -s https,就是通过PHP自带的简易服务器,将网站部署在本地,并使用https协议进行访问。这种方式方便、实用,很多开发者都会在开发和测试阶段使用,下面我们来看一下如何使用php -s https。
首先,我们需要在终端中输入以下命令:php -S localhost:8000 -t public/ -d display_errors=1 -d error_reporting=E_ALL 意思是在本地开启一个以8000端口为基础的PHP服务器,网站目录为public,显示错误信息且显示所有级别的错误。
php -S localhost:8000 -t public/ -d display_errors=1 -d error_reporting=E_ALL
接下来,我们需要使用openssl来生成一些加密密钥,用于https连接。在终端中输入以下命令:openssl genrsa -out server.key 2048 生成服务器私钥;openssl req -new -key server.key -out server.csr 输入一些内容,如国家、省、城市、公司、姓名等信息,生成证书请求文件;openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt 生成有效期为10年的证书文件。openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
生成证书之后,我们需要将证书名称更改为正确的名称,以便让PHP服务器正确加载证书。将server.crt更改为ssl.crt,将server.key更改为ssl.key,可以通过以下命令进行更改:mv server.crt ssl.crt;mv server.key ssl.key。mv server.crt ssl.crt
mv server.key ssl.key
最后,我们需要在php.ini文件中启用openssl扩展。找到配置文件的位置,通常为/usr/local/etc/php/,在文件中找到动态扩展部分ext下的openssl.so,去掉前面的分号(说明被注释掉了),然后重启php-fpm。extension=openssl.so
以上就是使用php -s https的完整过程,当php服务器启动之后,可以在浏览器中输入https://localhost:8000/进行访问,会看到浏览器会提示证书不安全,但这并不影响我们使用。
需要注意的是,该方式仅适用于开发和测试阶段,如果需要在生产环境中使用https,我们需要使用真实的SSL证书。