1. 如何在阿里云Centos7服务器下安装部署Nginx+php+Mysql+PHP扩展
1、典型的LNMP安装问题
2、首先你得准备编译环境
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers bison lynx
3、下载所需MySQL/nginx/php等安装包
4、安装nginx和mysql没有先后顺序
5、安装php依赖包,安装php,安装php扩展及优化包
6、详细的安装步骤可以网上查LNMP安装步骤
2. nginx和php通过什么模块
当nginx接收到一个http请求时,通过配置文件找到对应的server。然后匹配server中的所有location,找到最匹配的。
而在location中的命令会启动不同的模块去完成工作,比如rewrite模块、index模块。
因此在nginx中模块可以看作真正的劳动工作者。
nginx的模块是被编译到nginx中的,属于静态方式。启动nginx时,模块被自动加载。不像apache,把模块单独编译成so文件,在配置文件中指定是否加载。所以,单比模块加载方面,nginx也比apache速度上有提升。
3. php的zookeeper扩展能在nginx下使用吗
完全可以在nginx下使用。
Nginx是着名的反向代理服务器,也被广泛的作为负载均衡服务器
ZooKeeper是分布式协调服务框架,有时也被用来做负载均衡
Nginx的负载均衡配置非常简单,把多个web server配置到nginx中,用户访问Nginx时,就会自动被分配到某个web server
ZooKeeper作为一个服务的注册中心,在其中登记每个服务,每台服务器知道自己是属于哪个服务,在服务器启动时,自己向所属服务进行登记。
4. nginx下如何安装php
进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd
curl
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot
find
autoconf.
Please
check
your
autoconf
installation
and
the
$PHP_AUTOCONF
environment
variable
is
set
correctly
and
then
rerun
this
script.,需要安装autoconf:
yum
install
autoconf(RedHat或者CentOS)、apt-get
install
autoconf(Ubuntu
Linux)
/usr/local/php5/bin/php
-v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,
这里会报错,可以根据错误信息去排查!
5. nginx和php 怎么安装mysqli扩展
在 centos 下编译安装 php 时,有时候经常会忘了某些扩展,比如 pdo,mysqli,但是到扩展目录下,我们又找不到相应的 扩展文件,(.so 文件) ,这样的情况下只能 编译安装该模块,生成对应的 so 文件,然后在 php.ini 中添加相应的 扩展记录,重启 php就可以了,我们以安装 mysqli 为例。
首先进入 php 源码包 如果 找不到可以可下载一个 地址在这里:http://us2.php.net/get/php-5.2.17.tar.gz/from/a/mirror解压
tar xvzf php-5.2.17.tar.gz
cdphp-5.2.17/ext/mysqli/
然后运行 php 安装目录下的 phpize
/usr/local/nginx_php-5.2.17/bin/phpize
(根据自己的 php 安装目录来查找,不一定是这个目录,如果找不到,可以根据 phpinfo() 来查看)然后编译安装 mysqli 扩展
#./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/nginx_php-5.2.17/bin/php-config --with-mysqli=/usr/local/mysql/mysql_config安装
make && make install
然后在 php 的扩展目录下已经生成了 mysqli.so 文件打开 php.ini 文件,看是否有如下内容
extension_dir = "/usr/local/nginx_php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/"如果没有就添加上
再添加一条:
extension=mysqli.so
保存。
重启 php。可以看到 mysqli 已经安装完成了。
6. 同台电脑nginx负载均衡后,第二个网站的PHP扩展启动不起来
1、upstream 名称最好不要用localhost
2、server_name 一般不带端口号的。
3、location ~ .php$ {} 里配置有点复杂,完全可以简化一下。
location~.php${
roothtml2;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
includefastcgi.conf;
}
7. php和nginx之间是如何工作的
Nginx+php-fpm实现原理 Nginx本身不会对PHP进行解析,终端对PHP页面的请求将会被Nginx交给FastCGI进程监听的IP地址及端口,由php-fpm作为动态解析服务器处理,最后将处理结果再返回给nginx。其实,Nginx就是一个反向代理服务器。Nginx通过反向代理功能将动态请求转向后端php-fpm,从而实现对PHP的解析支持,这就是Nginx实现PHP动态解析的原理。 Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端。
当nginx接收到一个http请求时,通过配置文件找到对应的server。然后匹配server中的所有location,找到最匹配的。而在location中的命令会启动不同的模块去完成工作,比如rewrite模块、index模块。因此在nginx中模块可以看作真正的劳动工作者。nginx的模块是被编译到nginx中的,属于静态方式。启动nginx时,模块被自动加载。
8. nginx支持php需要安装什么模块
此模块不应该安装它,路径到文件中,这个模块?应该有一个集扩展,DIR的。当你去了phpinfo()函数,看看它是否在装起来
9. nginx 编译怎么添加php模块
这个是不能直接查看的只有几种途径:PHP是编译的运行程序,在浏览器看到的是编译执行之后的展示页面,并不是源代码。网站站长,公开共享免费提供网站源码整站下载的,可以拿到查看。网站提供后台,给一定的人群,有一定的管理权限。可以解除代码。服务器,部分网站因为某些原因,服务器是共享的,可以看到源代码。
应该是这样,如果楼主这样还不明白,就可以去网上找后盾人学习
10. nginx php安装扩展模块之后要重启吗
需要的。更改了配置都需要重启才生效