来自 计算机编程 2019-12-29 05:22 的文章
当前位置: 澳门威尼斯人平台 > 计算机编程 > 正文

PHP连接不上服务器!!?

php与nginx整合

不得不说今天是个悲惨的一天,我用php怎么也连不上数据库服务器,15点-19点…鬼知道我经历了什么,我把windows下的PHP文件拷到我的黑苹果上,直接用文本编辑器敲代码。刚开始我还在想是不是不能用文本编辑器敲php,我就输出了一个简单的语句,发现可以输出,但是偏偏连不上服务器。改了很多次配置文件都谬效果。

CentOS 6部署Nginx + PHP5 服务器

在 CetnOS 6 (64位) 操作系统上部署Nginx and PHP5服务器。这个过程通过 yum 命令进行RPM包安装。

可以参考 PHP 官方文档。

安装 一些必要的 YUM 库

root 用户执行:
# rpm -Uvh
# rpm -Uvh

安装 Nginx

添加 nginx 的 YUM 库配置文件 /etc/yum.repos.d/nginx.repo,
[nginx]
name=nginx repo
baseurl=
gpgcheck=0
enabled=1

root 用户执行:
# yum install nginx

安装 PHP 及重要插件 php-fpm

root 用户执行:
# yum install php-fpm php

配置、启动 php-fpm

配置 /etc/php.ini:
# 找到并取消注释,设置成:
cgi.fix_pathinfo=0

配置 /etc/php-fpm.d/www.conf:
# 找到并取消注释,设置成你希望管理 www 应用的用户(我这里统一用用户 theflash)
listen.owner = theflash
listen.group = theflash

启动 php-fpm 监听服务
# service php-fpm start

停止 php-fpm 监听服务
# service php-fpm stop

配置、启动 Nginx

创建一个网站根目录 /data/wwwroot,并更换目录所有者为 theflash。  root 用户执行
# mkdir -p /data/wwwroot
# chown theflash:theflash /data/wwwroot -R

从此,以后就用用户 theflash 来登录并维护 /data/wwwroot 中的数据

直接分享我的配置 /etc/nginx/nginx.conf:
user theflash;

events {
}

http {
    include    /etc/nginx/mime.types;
    server {
        root    /data/wwwroot;

        location / {
            index  index.html index.htm index.php;
        }

        error_page  404              /404.html;

        location ~* .php$ {
            fastcgi_index  index.php;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

启动 Nginx 服务器
# service nginx start

停止 Nginx 服务器
# service nginx stop

如果运行时修改了配置文件,需要重新加载 Nginx 服务器配置文件,而不需要停止 Nginx 服务器
# nginx -s reload

FAQ

如何解决 “NO INPUT FILE SPECIFIED” 的问题,当我们安装 PHP 和 NGINX 的时候

文章: 英文原版

检查 php 文件是否拥有写权限,它的父目录都有执行权限 ?
#<-- container folders should be granted execute permission
chmod a+x /data
chmod a+x /data/wwwroot

PHP-FPM也是一个第三方的FastCGI进程管理器,它是作为PHP的一个补丁来开发的,在安装的时候也需要和PHP源码一起编译,也就是说PHP-FPM被编译到PHP内核中,因此在处理性能方面更加优秀;同时它在处理高并发方面也比spawn-fcgi引擎好很多,因此,推荐Nginx+PHP/PHP-FPM这个组合对PHP进行解析。FastCGI 的主要优点是把动态语言和HTTP Server分离开来,所以Nginx与PHP/PHP-FPM经常被部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx专一处理静态请求和转发动态请求,而PHP/PHP-FPM服务器专一解析PHP动态请求

然后…然后我到app store里下载了一个代码编辑器,再把连接数据库的代码copy到代码编辑器里,保存,成功连接服务器…

--------------------------------------分割线

CentOS 6.2实战部署Nginx+MySQL+PHP

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

CentOS 6.4安装配置Nginx+Pcre+php-fpm

Nginx安装配置使用详细笔记

Nginx日志过滤 使用ngx_log_if不记录特定日志

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

6部署Nginx + PHP5 服务器 在 CetnOS 6 (64位) 操作系统上部署Nginx and PHP5服务器。这个过程通过 yum 命令进行RPM包安装。 可以参考 PHP 官方文...

#fastcgi FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lig等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。Nginx+FastCGI运行原理Nginx不支持对外部程序的直接调用或者解析,所有的外部程序必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,。为了调用CGI程序,还需要一个FastCGI的wrapper,这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。

ps:后来我再用代码编辑器打开之前一直报错的php文件,发现有些符号(例如:,'())自动变成中文输入下的符号

php与nginx整合php.ini:php的主配置文件

[root@server79 php-5.4.12]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini

拷贝php的启动脚本

[root@server79 fpm]# pwd/root/php-5.4.12/sapi/fpm[root@server79 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm

给启动脚本加可执行权限

[root@server79 fpm]# chmod +x /etc/init.d/php-fpm[root@server79 ~]# vim /usr/local/lnmp/php/etc/php.inicgi.fix_pathinfo=0date.timezone = /Asia/Shanghai[root@server79 ~]# cp /usr/local/lnmp/php/etc/php-fpm.conf.default /usr/local/lnmp/php/etc/php-fpm.conf[root@server79 etc]# vim php-fpm.conf

打开注释pid = run/php-fpm.pid

php-fpm.conf文件参数解析PHP的全局配置文件是php.ini,在上面的步骤中,已经将此文件复制到了/usr/local/lnmp/php/etc/php.ini下。可以根据每个应用需求的不同,对php.ini进行相应的配置。下面重点介绍PHP-FPM引擎的配置文件。根据上面指定的安装路径,PHP-FPM的默认配置文件为/usr/local/lnmp/php/etc/php-fpm.conf。php-fpm.conf是一个XML格式的纯文本文件,其内容很容易看明白。这里重点介绍几个重要的配置标签:标签listen_address是配置fastcgi进程监听的IP地址以及端口,默认是127.0.0.1:9000。

listen = 127.0.0.1:9000

标签user和group用于设置运行FastCGI进程的用户和用户组。需要注意的是,这里指定的用户和用户组要和Nginx配置文件中指定的用户和用户组一致。

user = nginxgroup = nginx

标签max_children用于设置FastCGI的进程数。根据官方建议,小于2GB内存的服务器,可以只开启64个进程,4GB以上内存的服务器可以开启200个进程。

本文由澳门威尼斯人平台发布于计算机编程,转载请注明出处:PHP连接不上服务器!!?

关键词: