linux基础知识,批处理#!/bin/sh 是什么意思,usr/bin与/usr/local/bin区别,unknown directive "if(!-e" ,phpize的作用,如何重启php服务,php-fpm是干啥的?linux基础知识,批处理#!/bin/sh 是什么意思,usr/bin与/usr/local/bin区别,unknown directive "if(!-e" ,phpize的作用,如何重启php服务,php-fpm是干啥的?

1.usr/bin与/usr/local/bin区别

/usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变。

/usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件

2.批处理#!/bin/sh 是什么意思

!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是此解释此脚本的shell的路径。

bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...
调试bash只要echo输出就可以了。

3.nginx: [emerg] unknown directive "if(!-e" 错误原因

if 和(必须加空格

4.phpize的作用

cd yaf-3.0.4/ && phpize
phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下。

5.lnmp下如何重启php服务

lnmp php-fpm restart

6.php-fpm是干啥的?

PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。
PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。

参考:https://www.cnblogs.com/followyou/p/9460058.html

(1). 为什么会出现php-fpm
fpm的出现全部因为php-fastcgi出现。为了很好的管理php-fastcgi而实现的一个程序

(2). 什么是php-fastcgi

php-fastcgi 只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。

(3)为什么不叫php-cgi

其实在php-fastcgi出现之前是有一个php-cgi存在的,只是它的执行效率低下,因此被php-fastcgi取代。

(4)那fastcgi和cgi有什么区别呢?

亲们,这区别就大了,当一个服务web-server(nginx)分发过来请求的时候,通过匹配后缀知道该请求是个动态的php请求,会把这个请求转给php。

在cgi的年代,思想比较保守,总是一个请求过来后,去读取php.ini里的基础配置信息,初始化执行环境,每次都要不停的去创建一个进程,读取配置,初始化环境,返回数据,退出进程,久而久之,启动进程的工作变的乏味无趣特别累。

当php来到了5的时代,大家对这种工作方式特别反感,想偷懒的人就拼命的想,我可不可以让cgi一次启动一个主进程(master),让他只读取一次配置,然后在启动多个工作进程(worker),当一个请求来的时候,通过master传递给worker这样就可以避免重复劳动了。于是就产生了fastcgi。

(5)fastcgi这么好,启动的worker用完怎么办?
当worker不够的时候,master会通过配置里的信息,动态启动worker,等空闲的时候可以收回worker

(6)到现在还是没明白php-fpm 是个什么东西?
就是来管理启动一个master进程和多个worker进程的程序.

PHP-FPM 会创建一个主进程,控制何时以及如何将HTTP请求转发给一个或多个子进程处理。PHP-FPM主进程还控制着什
么时候创建(处理Web应用更多的流量)和销毁(子进程运行时间太久或不再需要了)
PHP子进程。PHP-FPM进程池中的每个进程存在的时间都比单个HTTP请求长,可以处
理10、50、100、500或更多的HTTP请求。

7.wget -c 中-c的作用

eg:wget -c http://pecl.php.net/get/yaf-3.0.4.tgz

-c表示断点续传 。我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数

8.yaf是干啥的?

全称 Yet Another Framework,是一个高性能的PHP开发框架,采用PHP扩展实现(c语言)。
是一个C语言编写的PHP框架, [1] 是一个以PHP扩展形式提供的PHP开发框架, 相比于一般的PHP框架, 它更快,更轻便. 它提供了Bootstrap, 路由, 分发, 视图, 插件, 是一个全功能的PHP框架
参考:https://baike.baidu.com/item/YAF%20%E6%A1%86%E6%9E%B6/5432112?fr=aladdin

9.安装yaf是报错 zend_string

错误信息:home/soft/yaf-3.0.8/php_yaf.h:77:2: error: unknown type name ‘zend_string’
zend_string *ext;

我使用的PHP版本是5.6.30,下载的Yaf是yaf-2.3.5,刚开始没认真看,下载了最新版本,结果编译的时候报错:
./yaf_view.h:34:53: error: unknown type name 'zend_string'; did you mean 'zend_stream'?
查了下,是因为php5.6.30 里面没有zend_string类型,用 char 替换,或者修改你的php版本环境到php7

10.lnmp中如何更改php版本

进入lnmp目录
./install.sh mphp

11.linux中如何更改hosts文件

修改hosts vi /etc/hostname

如果是在虚拟中,windows下也改相就的host, ip地址都设置地虚拟机的ip地址,

这样就可以在本地调试了,调好以后,直接上传就可以了。


本文由 hcb 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论