图文详解,Nginx安装环境布署

  nginx + php做劳务,在高并发的时候会出现有的错误  connect() to
unix:/var/run/php-fpm.sock failed (11: Resource temporarily
unavailable)  。

1.巅峰履行:

LNMP编译安装之nginx关联php–图文详解

1、安装nginx

安装

sudo apt-get install nginx  

劳务运行、截止、重启

/etc/init.d/nginx start

/usr/sbin/nginx -c /etc/nginx/nginx.conf

/etc/init.d/nginx stop

/etc/init.d/nginx restart

配备文件

/etc/nginx/nginx.conf

时下有二种艺术可以试行。

brew search nginx
brew install nginx

1、前言

图文详解,Nginx安装环境布署。事先曾经介绍了nginx,php,mysql的编译安装进度,但nginx和php的涉及没有提到,导致网页不能健康使用php效用,全数本编介绍怎么着将nginx和php举办关联,使*.php文件能够不荒谬在浏览器访问。

二、安装MySQL

Ubuntu 安装mysql绝对相比较简单

1.装置mysql的服务端

apt-get install mysql-server

在装置的经过中必要您输入root用户的密码。

2.装置mysql的客户端
apt-get install mysql-client

3.安装达成后,一般必要重新设置下字符集

1) 查看当前的编码:show variables like ‘character%’;
2) 修改my.cnf,在[client]下添加default-character-set=utf8

命令:vi /etc/mysql/my.cnf
3) 在[server]下添加default-character-set=utf8,init_connect=’SET
NAMES utf8;’
4) 重启mysql

/etc/init.d/mysql restart

  环境: ubuntu + nginx + php7.1

唤醒没有brew的话请参见mac安装神器brew安装

② 、准备步骤

2.一 、修改php-fpm配置文件

cp /usr/local/php7/etc/php-fpm.conf.default
/usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default
/usr/local/php7/etc/php-fpm.d/www.conf

www.5929.com 1
2.二 、编辑php-fpm配置文件

vi /usr/local/php7/etc/php-fpm.d/www.conf(开启  listen.allowed_clients
= 127.0.0.1)

vi /usr/local/php7/etc/php-fpm.conf(开启  pid = run/php-fpm.pid)

www.5929.com 2

www.5929.com 3

www.5929.com 4

2.3、驱动php-fpm

/usr/local/php7/sbin/php-fpm

www.5929.com 5

2.④ 、查看php-fpm运维意况

ps aux|grep php-fpm

www.5929.com 6

到此处php-fpm的主干配备就做到了,接下去继续安顿nginx

三、安装php

apt-get install php5-cgi php5-fpm php5-curl php5-gd php5-mysql
php5-mcrypt php5-redis php5-dev

 

安装完nginx现在,得到一些配置路径:
/usr/local/etc/nginx/nginx.conf (配置文件路径)
/usr/local/var/www (服务器私自认同路径)
/usr/local/Cellar/nginx/1.6.2 (貌似是设置路径)

三 、nginx配置修改

3.1、配置nginx

vim /usr/local/nginx/conf/nginx.conf

www.5929.com 7

在server下添加

location / {
            root   /var/nginx/www;(网站根目录)
            index  index.html index.htm index.php;(添加index.php)
        }
        location ~ \.php {
            root /var/nginx/www;(网站根目录)
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index /index.php;
            include /usr/local/nginx/conf/fastcgi_params;
            fastcgi_split_图文详解,Nginx安装环境布署。path_info   ^(.+\.php)(/.+)$;
            fastcgi_param PATH_INFO  $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED
$document_root$fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
        }

www.5929.com 8

 

3.2、重启nginx

怎样没有打开则省略

/usr/local/nginx/sbin/nginx (启动nginx)

否则

/usr/local/nginx/sbin/nginx -s reload(重启nginx)

www.5929.com 9

3.3、查看nginx状态

ps aux|grep nginx

www.5929.com 10

3.肆 、测试网站是还是不是正规访问

四、配置

1、配置文件和日志文件

/etc/php5/fpm/php.ini  php.ini配置文件
/usr/lib/php5/二〇一三1212  php 扩张目录
/etc/php5/fpm/php-fpm.conf php-fpm进程管理主配置文件
/etc/php5/fpm/pool.d/www.conf php-fpm进程池配置文件
/var/log/php5-fpm.log php-fpm错误日志
/var/log/php_errors.log php错误日志
/etc/nginx/nginx.conf  主配置文件
/etc/nginx/sites-available/default   虚拟主机
/var/log/nginx/access.log nginx访问日志
/var/log/nginx/error.log  nginx错误日志

2、php5-fpm 配置优化

/etc/php5/fpm/pool.d/www.conf 

上边几个参数的意趣分别为:
pm.max_children:静态形式下打开的php-fpm进程数量。
pm.start_servers:动态形式下的先河php-fpm进度数量。
pm.min_spare_servers:动态方式下的细微php-fpm进程数量。
pm.max_spare_servers:动态格局下的最大php-fpm进程数量。

注:以内存512M的VPS来说,指出安装的参数如下,仅供参考:
pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20

3、nginx配置

/etc/nginx/sites-available/default 

在server节点中布局执行php脚本
        location  ~ \.php$ {
            # With php5-cgi alone:
            # fastcgi_pass 127.0.0.1:9000;
            # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

在http节点中加上以下内容可显示目录

        autoindex on;# 呈现目录
        autoindex_exact_size on;# 展现文件大小
        autoindex_localtime on;# 展现文件时间

4、php错误日志

/etc/php5/fpm/php.ini
log_errors = On
error_log = /var/log/php_errors.log

一 、修改参数:

访问localhost:8080
Nginx 暗中同意8080端口,那时已经可以访问了:
localhost:8080
会有一个暗许欢迎界面。

四 、设置nginx的开机自启

4.壹 、设置nginx自启脚本

vi /etc/init.d/nginx

www.5929.com 11

4.二 、修改文件权限

chmod a+x /etc/init.d/nginx

www.5929.com 12

4.③ 、加入chkconfig管理列表

chkconfig –add /etc/init.d/nginx

www.5929.com 13

4.4、设置/etc/init.d/nginx自启
chkconfig nginx on

www.5929.com 14

本子内容请参见:

五、重启php-fpm、nginx

sudo /etc/init.d/php5-fpm restart
sudo /etc/init.d/nginx restart

 

  ① 、内核修改

修改 php-fpm 文件

1.执行命令:

sudo cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf

2.找到目录下的 php-fpm 文件
/private/etc/php-fpm.conf

3.找到24行的 error_log ,改为(正行替换,注意 ‘;’ 和空格):
; error_log = /usr/local/var/log/php-fpm.log
www.5929.com ,要不然 php-fpm 时会报错:
ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such
file or directory (2)

伍 、设置php-fpm开机自启

php-fpm的自启脚本在下载的php安装包中

5.1、复制php-fpm脚本

 cp /root/php/php-7.1.7/sapi/fpm/init.d.php-fpm   /etc/init.d/php-fpm

www.5929.com 15

5.2、修改php-fpm权限

chmod a+x /etc/init.d/php-fpm

www.5929.com 16

5.3、加入chkfconfig服务

chkconfig –add /etc/init.d/php-fpm

www.5929.com 17

5.4、设置php-fpm自启

chkconfig php-fpm on

www.5929.com 18

5.伍 、复制php-ini(不是必须,可以简单)

php安装包提供了多个php.ini配置

php.ini-development 对应于
php.ini-dist,适合开发测试,如本地测试环境。
php.ini-production 对应于 php.ini-recommended
拥有较高的安全性设定,适合服务器上线运维当产品。

地点七个二选一即可

cp php.ini-development  /usr/local/php7/lib/php.ini

www.5929.com 19

 

到那边php-fpm的布置就完事了

sudo vim /etc/sysctl.conf

net.ipv4.tcp_max_syn_backlog = 4096
net.core.netdev_max_backlog = 4096

重新启动
sudo reboot

修改 Nginx 配置

1.打开 nginx.config 文件
/usr/local/etc/nginx/nginx.conf
未曾改动权限请调文件修改权限

2.找到 server 的 location 配置,给 index 加一个 index.php
location / {
root html;
index index.html index.htm index.php;
}

3.并开拓 server 下被诠释的 location ~.php$(即除去代码前边的
‘#’),如下:
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
4.并修改 fastcgi_param 参数
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
改为
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

⑥ 、重启查看php-fpm和nginx状态,测试网站是还是不是足以平常访问

  ② 、php-fpm配置修改

创建 index.php

在 /usr/local/var/www 目录下,删除 index.html,创建 index.php,输入
<?php phpinfo(); ?>

修改  /etc/php/7.1/fpm/pool.d/www.conf

listen.backlog = 4096

起初有关服务

sudo nginx
sudo php-fpm

下一场访问localhost:8080,看到 php 配置音信,就注解 ok 了

  sudo service php-fpm7.1 restart

其他命令

修改 nginx.conf 后,重载配置文件

sudo nginx -s reload

停止 nginx 服务器

sudo nginx -s stop

截至 php-fpm可以直接在 Activity Monitor 中甘休。也足以应用脚本来停。

 

唯恐现身的难点

1.访问 index.php 报 403 Forbidden.查看(四.2)步骤中,是否在 index
后添加 index.php。

2.访问 index.php 报 File not found.查看(四.4)中,fastcgi_param
参数是不是修改。

3.改动配置后出现/usr/local/var/run/nginx.pid” failed (2: No such file or
directory)
网上的化解办法有:
[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c
/usr/local/nginx/conf/nginx.conf
或者在/var/run下创建nginx文件
本身这里都十二分,最终找到的办法是sudo nginx -c
/usr/local/etc/nginx/nginx.conf

  三 、nginx配置修改

布署多站点

在/usr/local/etc/nginx/servers下边成立七个conf文件
nginx-aaa.conf,nginx-bbb.conf,分别做aaa.com
和bbb.com八个站点,七个公文的代码为,对应修改名称和目录地址就行了

server {
    listen 80;
    server_name aaa.com;
    charset utf-8;
    root /Users/xiao/www/aaa/html;
    location / {
        index index.html index.htm index.php;
    }
} 

在nginx.conf文件最终看是还是不是有include servers/*; 没有则增加
重启sudo nginx -s reload就行了

 

listen 80 default backlog=4096;

重新启动
sudo service nginx restart

 

 

二 、添加php-fpm的master实例,会追加fpm的处理能力,也能减小报错的几率

 

  一 、拷贝php配置文件

cd  /etc/php/7.1/fpm/   
sudo cp php-fpm.conf  php-fpm2.conf


cd pool.d
sudo cp www.conf www2.conf

  贰 、修改php的配置文件

sudo  vim  php-fpm2.conf

修改内容
pid = /run/php/php7.1-fpm2.pid
error_log = /var/log/php7.1-fpm2.log

include=/etc/php/7.1/fpm/pool.d/www2.conf

  ③ 、重新启航

sudo /usr/sbin/php-fpm7.1 -y /etc/php/7.1/fpm/php-fpm2.conf

  查看    ps -ef | grep php

  恐怕进入  cd  /var/run/php  查看

www.5929.com 20

 

闭馆和重启

sudo  pkill  php-fpm
(关闭所有的php进程)

启动php1       sudo service php7.1-fpm restart
启动php2       sudo /usr/sbin/php-fpm7.1 -y /etc/php/7.1/fpm/php-fpm2.conf

 

  4、nginx配置,在 nginx.conf中添加

  upstream php-socks {
                server unix:/run/php/php7.1-fpm.sock;
                server unix:/run/php/php7.1-fpm2.sock;
        }

      在 *.conf的server中添加

fastcgi_pass  php-socks;   # unix:/run/php/php7.1-fpm.sock;

      重新起动

sudo service nginx restart

  OK!

 

Leave a Comment.