摘要:安装和这里我使用的版本,目前官方已经发布了的版本。已经被包含在里面了,无需另外安装。。。当然,我这里只是配置了一个最基本的运行环境,像你要运行项目的话应该还要配置虚拟主机伪静态这些。
基本原理回想以前使用php都是通过apache来加载php的module运行的,最近看到公司的项目逐渐切到nginx了,抱着好奇心,周末就开始捣鼓起来了。。。
nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。
nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx。
这里我使用的php7版本,目前官方已经发布了php7的beta3版本。php-fpm已经被包含在里面了,无需另外安装。。。
至于php7的编译安装,看一下我之前的 这篇文章 文章就妥妥的搞定了!
nginx的话,毫无疑问我肯定选择源码编译安装,因为确实是习惯了这种方式了!
我这里就拿1.6.2版本为例,戳 这里下载,解压之后进入源码目录
#配置,相关参数含义自己去查阅文档哦 ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-cc-opt="-Wno-deprecated-declarations" #编译 make #安装 sudo make install测试ngnix
#命令拷贝到系统目录,方便使用 sudo cp /usr/local/nginx/nginx /usr/bin #测试配置是否出错,如果出错,按照错误信息提示去修改了 nginx -t #启动nginx nginx
页面访问,输入http://localhost:8888查看【这里我在配置文件里面把nginx的监听端口改成了8888】出现如下页面就正常了
配置php-fpm#复制一份有效的配置文件 sudo cp /usr/local/php7/etc/php-fpm.conf.default.conf php-fpm.conf #复制一份有效的用户配置文件,用户名是配置php的时候指定的 sudo cp /usr/local/php7/etc/php-fpm.d/www.conf.default www.conf #启动php-fpm,mac必须要以root用户启动,-R 参数表示 --allow-to-run-as-root sudo /usr/local/php7/sbin/php-fpm -R #查看一下php-fpm是否启动成功 ps aux | grep php-fpm #这里我修改了php-fpm的端口号,默认是9000 netstat -ant | grep 90001nginx整合php-fpm
修改nginx的配置文件,支持php文件的解析
#打开配置文件,找到`location ~ .php$`这里,默认的如下 ... #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9001; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # include fastcgi_params; #} ... #稍微改吧改吧就成了下面的样子,相信你看的懂什么意思了。。。 ... location ~ .php$ { root html; fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ...测试php文件的解析
cd /usr/local/ngnix/html echo " index.php
浏览器访问 http://localhost:8888/index.php,熟悉的画面又出现了!
总结一下经过以上这些简单的步骤之后,nginx下运行php相信不再是那么神秘了。。。
当然,我这里只是配置了一个最基本的运行环境,像你要运行项目的话应该还要配置虚拟主机、伪静态这些。
还有就是nginx配置文件的参数含义,这个有空的话还是去看看官方文档说明,毕竟你要知道你配置的每一项是什么意思才好!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/39180.html
摘要:地址这是一份适用于生产和开发环境的。目前已经在我司的生产环境上并运行良好。日常开发中也是基于此镜像进行的。如果想快速看看镜像里有啥东西,只需要运行其中替换成你实际的镜像。开发环境的使用单独运行这个容器是没有意义的。 GITHUB地址:https://github.com/banyancheu... 这是一份适用于生产和开发环境的 Dockerfile。 在 phuison/baseim...
摘要:地址这是一份适用于生产和开发环境的。目前已经在我司的生产环境上并运行良好。日常开发中也是基于此镜像进行的。如果想快速看看镜像里有啥东西,只需要运行其中替换成你实际的镜像。开发环境的使用单独运行这个容器是没有意义的。 GITHUB地址:https://github.com/banyancheu... 这是一份适用于生产和开发环境的 Dockerfile。 在 phuison/baseim...
摘要:为提供模块,需要库支持为提供功能为支持地址重写功能确保已正确安装在上面的基础环境安装中,我们已经安装了,但是部分服务器上并没有的安装包,所以我们可以通过下载包自行编译安装。 一直以来我都通过网上的一些材料去搭建lnmp环境,通过直接yum安装nginx mysql php等软件。但是为了原生态的编译安装最新的软件版本,我决定自己亲手搭建lnmp环境,采用最新的nginx1.9.7(昨天...
摘要:将复制到容器中,这三个文件用于后续安装扩展。非常容易理解,这里定义了两个服务,依赖镜像,并且将文件夹映射为文件夹,服务依赖服务,并且服务,这样就能通过网络与容器通信,服务基于镜像,并将文件映射为文件。 环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是 Docker 将开发环境和生产环境以轻量级方式打包,提供了一致的环境。极大的提升了开发部署一致性。当然,实际情况并没有这么...
摘要:将复制到容器中,这三个文件用于后续安装扩展。非常容易理解,这里定义了两个服务,依赖镜像,并且将文件夹映射为文件夹,服务依赖服务,并且服务,这样就能通过网络与容器通信,服务基于镜像,并将文件映射为文件。 环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是 Docker 将开发环境和生产环境以轻量级方式打包,提供了一致的环境。极大的提升了开发部署一致性。当然,实际情况并没有这么...
阅读 2310·2021-11-23 09:51
阅读 3748·2021-11-11 10:57
阅读 1391·2021-10-09 09:43
阅读 2481·2021-09-29 09:35
阅读 2013·2019-08-30 15:54
阅读 1788·2019-08-30 15:44
阅读 3179·2019-08-30 13:20
阅读 1687·2019-08-30 11:19