杂(php7安装与其相关)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zxc7928932/article/details/50446524

php7的安装前面并没有遇到什么问题

但是在后期sudo echo "PATH=$PATH:/usr/local/php/bin">> /etc/profile

(/etc/profile是每个用户登录时都会运行的环境变量设置 修改重启后生效,需要立即生效 source /etc/profile)

却出现了权限错误的问题  然后su root 切换成root账户后再进行相关操作就可以了) (sudo passwd初始root密码)

另外在编辑一些配置文件的时候 发现vi的上下左右变成了a b c d因为图方便没有深究就安了一个新的vim 然后alias vi='vim'

之后又出现了运行php-fpm出现了问题 按照一般教程说是

cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf

vi  php-fpm.conf修改就好

但实际运行 报了如下的错误

sudo /usr/local/php/sbin/php-fpm

[02-Jan-2016 01:56:48] WARNING: Nothing matches the include pattern '/usr/local/php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 125.

php/etc/php-fpm.d/*.conf' from /usr/local/php/etc/php-fpm.conf at line 125.

[02-Jan-2016 01:55:33] ERROR: No pool defined. at least one pool section must be specified in config file
[02-Jan-2016 01:55:33] ERROR: failed to post process the configuration
[02-Jan-2016 01:55:33] ERROR: FPM initialization failed

从最初的warning开始追起 大概知道是在/usr/local/php/etc/php-fpm.d/缺少了一个.conf文件 然后进入此目录

发现有一个 www.conf.default 按照常识应该应该进行如下操作


运行成功

其中www.conf内修改了 user 和group将nobody 改成 www-data

(PHP-FPM是一个PHPFastCGI管理器 一个守护进程)

之后配置nginx worker process照一般配置应该与core数相同(不要浪费cpu切换上下文)

cat /proc/cpuinfo可查看信息

nginx.conf里面并没有太多实质的东西 有设置error_log其他很多都是include其他的配置文件

如引入sites-avaiable/*,

里面有一个default 在这里配置站点信息 监听哪一个端口 根目录是哪之类的

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;


root /usr/share/nginx/html;
index index.html index.htm;

....

如果需要不同端口配置不同站 只要在此目录添加配置文件即可

然后到这localhost已经可以访问对应目录了

然后就是fast-cgi的php与nginx关联了

location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # 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;
}

这几行取消注释

我们可以看到fastcgi_pass 这其实是一个将php请求传送的一个配置

也就是实际上 nginx与php-fpm关联的地发

我们可以用nettsat -ano | grep -in 9000看到

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      4326/php-fpm.conf)

占用此端口的是php-fpm 就是通过这个配置将请求转发给php-fpm

这也让我们更理解了 cgi 公共网关接口的含义


另外include fastcgi_params;

这个文件是在 /etc/nginx/fastcgi_params里

文件内容大概如下




fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;


fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;


fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

就是将nginx得到的http请求的一些基础的参数 

变为php的运行php的基础参数 ($server_name之类的)


今天就到此为止 第一次自己配置nginx 以前都是用apache 第一次配php7 以前都是5.6.x

理解有很多不到位的地方 就说说这些

 之后再谈谈深入使用的情况

展开阅读全文

没有更多推荐了,返回首页