热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装配置Nginx/Apache+PHP-fpm服务环境

最近上了一批debian7的机器,刚好有web项目要上,debian7中已经把php-fpm集成进去了,打算把以前的apache+mod_php模式换成nginx+php-fpm或者apache+php-fpm模式,apache毕竟模块多还更稳定一些。1nginx+php-fpm安装nginxapt-getinstal

    最近上了一批debian7的机器,刚好有web项目要上,debian7中已经把php-fpm集成进去了,打算把以前的apache+mod_php模式换成nginx+php-fpm或者apache+php-fpm模式,apache毕竟模块多还更稳定一些。

1 nginx+php-fpm

安装nginx

apt-get install nginx
安装php及php-fpm
apt-get install php5-mysql php5-gd php5-curl php5-cli php5-cgi php5-dev
apt-get install php5-fpm
配置php-fpm,php-fpm的主要配置文件在/etc/php5/fpm里面
├── conf.d -> ../conf.d   php的扩展模块配置文件
├── php-fpm.conf          php-fpm的主配置文件,include了pool.d里面的conf文件
├── php.ini               php的配置文件
└── pool.d
    └── www.conf          影响web站点的php-fpm配置文件
php-fpm.conf可以配置的选项不多,主要是设置日志级别,超时时间等等,很多都有默认值,其中主要的是www.conf这个文件,他会直接影响你的web站点的php解析。

下面看看默认的www.conf配置:

#设置一个名为www的池
[www]
#user是必须设置的
user = www-data
#如果没有设置group,默认使用user的group
group = www-data
#在哪个端口接收FastCGI请求,可以是socket或者端口
listen = /var/run/php5-fpm.sock
#主进程管理子进程的模式,动态模式
pm = dynamic
#可创建的最大子进程数
pm.max_children = 5
#fpm刚启动时创建的子进程数,默认min_spare_servers+(max_spare_servers- min_spare_servers)/2
pm.start_servers = 2
#可以空闲的最小服务进程
pm.min_spare_servers = 1
#可以空闲的最大服务进程
pm.max_spare_servers = 3
#chroot该目录
chdir = /

       这些是安装完后的默认配置,还有很多选项虽然没有列出来,但是都有默认值的。如果在一台机器上部署多个应用,可以根据访问量,在pool.d中为各个应用配置不同的分配模式,能有效起到安全隔离效果。

配置nginx,nginx配置文件主要在/etc/nginx目录

├── conf.d
├── fastcgi_params   #可以优化该文件
├── koi-utf
├── koi-win
├── mime.types
├── naxsi_core.rules
├── naxsi.rules
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│   └── default
├── sites-enabled
│   └── default -> /etc/nginx/sites-available/default #主要配置该文件
├── uwsgi_params
└── win-utf
default文件配置:
upstream php {
        server unix:/var/run/php5-fpm.sock;
}
server {
        listen   80;
        root /usr/share/nginx/www;
        index index.php index.html;
        server_name 192.168.37.37;
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass php;
                fastcgi_index index.php;
                include fastcgi_params;
        }
}

设置首页面

echo '' > /usr/share/nginx/www/index.php
启动php-fpm和nginx
/etc/init.d/nginx start
/etc/init.d/php5-fpm start

2 apache+php-fpm

    为什么用apache+php-fpm呢,稳定一些,经过大量用户考验的,如果不是为了高性能,而是为了稳定,也可以试试这个模式。在debian6中的php版本中,php官方已经把fpm集成进去了,但是debian因为种种原因并没有在debian6的php中集成fpm,不过在debian7中终于等到了...

安装apache2

apt-get install apache2 apache2-mpm-worker libapache2-mod-fastcgi

php及php-fpm已经在上一环节安装,所以不需要再次安装。

开启相关apache模块

a2enmod actions fastcgi alias

apache配置文件目录结构/etc/apache2

├── apache2.conf   #主配置文件
├── conf.d
├── envvars
├── magic
├── mods-available #总模块
├── mods-enabled   #启用模块
├── ports.conf
├── sites-available  #总站点
└── sites-enabled    #启用站点,默认启用000-default
000-default文件配置

        ServerAdmin webmaster@localhost
        ServerName 192.168.37.37
        DocumentRoot /var/www
       
          AddHandler php5-fcgi .php
          Action php5-fcgi /php5-fcgi
          Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
          FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
       
        
                Options FollowSymLinks
                AllowOverride None
        
        
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        
        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined

针对fcgi可做如下优化/etc/nginx/fastcgi_params:

fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;

设置首页面/var/www/index.php

echo '' > /var/www/index.php
启动apache和php-fpm
/etc/init.d/php5-fpm start
/etc/init.d/apache2 restart


推荐阅读
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • 本指南详细介绍了如何使用 `apt-get` 命令在 Ubuntu 系统上部署 MySQL 5、Apache 2、PHP 5 及 phpMyAdmin。首先,建议读者查阅 Ubuntu 的官方文档以获取更多背景信息。通过本文,您将逐步了解每个软件包的安装过程及其配置方法,确保系统环境的稳定性和安全性。此外,还将提供一些常见问题的解决方案,帮助用户顺利完成部署。 ... [详细]
  • 构建顶级PHP博客系统:实践与洞见
    构建顶级PHP博客系统不仅需要扎实的技术基础,还需深入理解实际应用需求。本文以Zend Studio为开发环境,MySQL作为数据存储,Apache服务器为运行平台,结合jQuery脚本语言,详细阐述了从环境搭建到功能实现的全过程,分享了开发PHP博客管理系统的宝贵经验和实用技巧。 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
  • Spring Security 认证模块的项目构建与初始化
    本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ... [详细]
  • 智能制造数据综合分析与应用解决方案
    在智能制造领域,生产数据通过先进的采集设备收集,并利用时序数据库或关系型数据库进行高效存储。这些数据经过处理后,通过可视化数据大屏呈现,为生产车间、生产控制中心以及管理层提供实时、精准的信息支持,助力不同应用场景下的决策优化和效率提升。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • 如何在主服务器响应变慢时,自动切换至备用服务器地址以确保服务连续性
    在主服务器响应速度下降时,如何通过编程实现自动切换至备用服务器地址,以确保服务的连续性和稳定性。本文将介绍一种基于PHP和MySQL的解决方案,通过监测主服务器的响应时间,当检测到延迟过高时,自动切换至备用服务器接口,从而保障系统的高可用性。 ... [详细]
  • 腾讯与阅文集团在技术领域展开合作,共同推进微服务框架Tars的发展。此次合作中,Tars新增了对PHP语言的支持,不仅强化了Tars-PHP作为客户端的功能,还显著提升了其在服务端的应用能力。这一改进旨在满足不同业务场景下的多样化需求,为开发者提供更加灵活和高效的技术解决方案。 ... [详细]
  • 在Linux系统中Nginx环境下SSL证书的安装步骤与WordPress CDN的高级配置指南
    在Linux系统中,Nginx环境下安装SSL证书的具体步骤及WordPress CDN的高级配置指南。首先,安装SSL证书需要准备两个关键配置文件,并建议在操作前备份相关服务器配置文件,以确保数据安全。随后,本文将详细介绍如何在Nginx中正确配置SSL证书,以及如何优化WordPress的CDN设置,提升网站性能和安全性。 ... [详细]
  • NanoPi2 使用体验深入解析(续篇)
    随着Raspberry Pi的问世,开源硬件领域迎来了前所未有的发展,激发了全球范围内的创新热潮。在中国,这一趋势同样催生了一系列类似的开发板,例如NanoPi 2。本文作为前篇的延续,将深入探讨NanoPi 2的实际使用体验,从性能、兼容性到应用场景,进行全面分析。 ... [详细]
author-avatar
ab5212502902861
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有