ubuntunginxphpfpm
A. Armbian-Ubuntu18.04安装Nginx、php7.2和可道云
安装nginx,参考 Armbian-N1源码安装大郑Nginx
若armbian中没有软件源,报错 Unable to locate package php7.2 ,需要先添加软件源:
然后再进行安装。
1. fpm.ini配置文件路径: /etc/php/7.2/fpm/php.ini
2. www.conf 文胡宴件路径: /etc/php/7.2/fpm/pool.d/www.conf
3. 重启php服务
4. 配置 nginx可解析 .php文件
修改 /usr/local/nginx/conf/nginx.conf 文件中 server{} 配置:
重启nginx: systemctl restart nginx
5. 测试nginx和php是否配置裤仿银成功
在 /usr/local/nginx/html 中创建test.php,里面内容如下
浏览器输入 http://ip/test.php 访问,如下图
重启nginx: systemctl restart nginx
访问地址: http://IP:8610
B. WSL Ubuntu 宝塔 PHP 环境安装及配置
在 Microsoft Store 中找到 Ubuntu 18.04 LTS,点击安装。
修改 /etc/ssh/sshd_config 中的相应配置项为
重启ssh
安装Nginx后,在 /etc/nginx/nginx.conf 的 http block 中加入(解决 PHP-FPM 超时问题)
重启宝塔
配置为 阿里云 Composer 全量镜像
增加个人配置 ~/.vimrc
C. 如何在ubuntu上配置php5.6环境变量
安装php
执行命令
sudo add-apt-repository ppa:ondrej/php5-5.6
如果报错和没有发现命令则执行
sudo apt-get install python-software-properties
再执行
sudo apt-get update
sudo apt-get install php52 如果安装了php,但访问 .php 文件报 502错误
这个问题一包是nginx 在吧 .php文件交给 php-fpm 时出错
php-fpm 是 监听 9000端口的那个东东
在nginx.conf中
location ~ .php{
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # 这个就是交给php-fpm处理
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/htmlfastcgi_script_name;
}
先看看php-fpm 是否在运行
运行命令
root@iZ28e6fditbZ:/usr/share/nginx/www# ps auxf | grep php-fpm
root 22864 0.0 0.0 9380 936 pts/1 S+ 14:09 0:00 _ grep –color=auto php-fpm
root 15397 0.0 1.8 344368 18648 ? Ss 12:20 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
…
ps auxf | grep php-fpm 这是查找在运行的进程 a,x 是 本用户和其他用户都打开的,如上表示已启动
如果没有则执行
service php5-fpm start
再看看有没有运行,如果又是命令错误或没有的的话 …
apt-get install php5-fpm
D. php-fpm比php成为apache模块好在哪
概述
写这篇文章的是因为今天要Ubuntu下搭建LNMP环境,Nginx使用的是PHP-FPM,所以对Web服务器与PHP解释器的交互方式做了个整理。
众所周知,PHP是跨平台、跨服务器的语言,这也是它如此流行的原因之一。但是,很少有人知道PHP解释器可以以不同的方式运行在Web服务器中。PHP最常用的方式是以模块的方式(mod_php)运行在Apache中,也是Apache运行PHP的默认方式。但是在Nginx中,Nginx又使用的是PHP-FPM。
这篇文章就对这些概念做个介绍,如有不对的地方,请多多批评指教。
什么是PHP处理器(PHP handlers)?
首先需要记住的是,任何一种Web服务器(Apache、Nginx等)都是被设计成向用户发送html、图片等静态资源的,Web服务器自身并不能解释任何动态脚本(PHP、Python等)。PHP处理器就是用来解释Web应用中的PHP代码,并将它解释为HTML或其他静态资源,然后将解析的结果传给Web服务器,最后再由Web服务器发送给用户。大多数的Web服务器都不能解析PHP代码,因此它需要一个能解析PHP代码的程序,这就是PHP处理器。
mod_php
首先,来看一下以Apache模块方式运行PHP。mod_php现在在linux各版本的软件仓库里都有,因此很容易被安装。
当PHP以模块的方式运行在Apache中时,PHP解释器被“内嵌”在Apache的进程里。Apache不会调用任何外部的PHP进程,因此这种方式使Apache与PHP能更好的通信。但是,当以这种方式运行PHP的时候,哪怕Apache提供的仅仅是静态的资源(如HTML),Apache的每个子进程也都会载入 mod_php,导致了比正常情况下更多的内存开销。
以这种方式运行的另一个缺点是,它仅能与Apache一起配合工作。另外,在小型的VPS和大型的网站中,这种方式也不合适,因为大型网站可能有很多静态资源,而这些静态资源是不需要PHP程序解释的。
优点:
1.易于安装和更新
2.容配置
缺点:
1.仅能与Apache一起工作
2.增加了Apache子进程内存开销
3.当更改php.ini文件后,需要重启Apache
FastCGI
FastCGI是交互程序与Web服务器通用的协议接口,是早期CGI(Common Gateway Interface)的一个变种。相对于CGI来说,FastCGI减少了和Web服务器交互的开销,同时一次可以处理更多的请求。
Apache可以以mod_fcgid的形式使用FastCGI。其他Web服务器,如lighttpd, nginx, Cherokee,甚至微软的IIS也都能使用FastCGI。使用FastCGI,可以同时设置多个版本的PHP,这在某些情况下非常有用。
FastCGI还利用suexec来支持不同的用户用自己的PHP的实例。这个特性对于在共享环境下提高安全性尤其重要。FastCGI在保证性能的同时,也减少了Web服务器的内存开销。
优点:
1.兼容多数Web服务器
2.比mod_php占内存小
3.更多的配置项,包括多版本PHP和suexec
缺点
1.配置复杂
2.不被大家所熟知
PHP-FPM(FastCGI Process Manager)
PHP-FPM是Web服务器使用PHP的一种最新方式,也是PHP FastCGI的另外一种实现。PHP-FPM对于运行在小型VPS和多服务器上的Web应用非常应用。同时,它也可以被兼容FastCGI的任何Web服务器所使用。
PHP-FPM使管理员能够优雅地停止和启动PHP工作进程而不丢失任何查询。这允许我们逐步更新配置和二进制,而不会损失任何查询。它还允许我们在发生任何意外破坏的情况下,紧急重启进程。
优点:
1.兼容多数Web服务器
2.比mod_php占内存小
3.更多的配置项,包括多版本PHP和suexec
缺点
1.配置复杂
2.不被大家所熟知
补充:Apache运行PHP的四种方式
mod_php (DSO,Dynamic Shared Object)
CGI
suPHP
FastCGI
总结
内容相对抽象,理解的不深,记录下留作以后参考~:)
E. linux怎么快速安装nginx和php,不用安装数据库
Linux下如果要搭建nginx和php环境,需要安装三个软件包:
nginx,php,php-fpm
比如说如果是centos的话:
yuminstallnginxphpphp-fpm
可能软件包名有差别,这个查查就知道了。
然后配置nginx,修改nginx.conf,如果用sock就这样写,如果是端口就些端口:
location~.php${
fastcgi_passunix:/var/run/php-fpm/php-fpm.sock;
fastcgi_indexindex.php;
includefastcgi.conf;
}
然后启动服务,以centos7为例:
systemctlstartnginx
systemctlstartphp-fpm