美文网首页
NginX+PHP中使用PhalApi总结

NginX+PHP中使用PhalApi总结

作者: loongod | 来源:发表于2018-08-31 23:50 被阅读63次

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。

    其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

    Nginx是一款轻量级 服务器/反向代理]服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

    在Nginx+php+mySQL的服务器环境中,使用Flight框架。

    实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法

    error.png

    写接口难免会有错误,但是发现找不到为什么出错,原来PHP中也是可以通过配置php-fpm.conf来记录执行php脚本的错误日志的。

    在php-fpm.conf文件中添加,如果没有就添加如下:

    error_log = log/php_error.log
    catch_workers_output = yes
    

    我的配置默认有了error_log。第一次我是添加到了error_log上面的一行。但是重启php-fpm时会报错,需要把catch_workers_output这个字段添加到[www]下面。如图:

    php-fpm配置文件.png

    然后我搜的说,还需要修改php.ini中的配置,没有则增加:

    log_errors = On
    error_log = "/usr/local/php/var/log/error_log"
    error_reporting = E_ALL&~E_NOTICE
    

    但是我用vim打开php.ini之后,就退出了,里面内容太多了,我就看不过来。

    接着我就直接重启php-fpm了。

    重启php-fpm:

    [root@VM_0_17_centos www]# /www/wdlinux/phps/55/bin/php-fpm restart
    Gracefully shutting down php-fpm . done
    Starting php-fpm  done
    [root@VM_0_17_centos www]#
    

    然后再请求,找到配置的error.log文件,如下图,发现错误信息已经记录在里面了。

    errorLog.png

    PHP echo中文乱码

    Content-Type:用于定义用户的浏览器或相关设备如何显示将要加载的数据,或者如何处理将要加载的数据

    汉字乱码.png
    <?php
    //解决php echo中文乱码
    header("Content-Type:text/html;charset=utf-8"); 
    
    $servername = "localhost";
    $username = "*";
    $password = "*";
    $dbname = "dayWord";
    
    $con = mysql_connect($servername,$username,$password);
    if(!$con) {
            die('Could not connect: ' . mysql_error());
    }else {
            echo "mysql connect success!";
    }
    
    //获取数据
    mysql_select_db($dbname, $con);
    $sql = "SELECT day, word, author FROM ana";
    $result = mysql_query($sql);
    
    while($row = mysql_fetch_array($result)) {
            echo "<br />";
            echo $row["day"] . " " . $row["word"] . "--" . $row["author"];
    }
    
    mysql_close($con);
    ?>
    
    汉字正常显示.png

    Vim显示行号:

    vim 进入文件后,同时按shift+esc+enter键后,输入
    :set number 或者 :set nu 
    

    Linux清空文件内容:

    [root@VM_0_17_centos logs]# :> filename
    [root@VM_0_17_centos logs]# > filename
    [root@VM_0_17_centos logs]# echo "" > filename
    [root@VM_0_17_centos logs]# echo > filename
    

    显示当前工作目录的绝对路径:

    [root@VM_0_17_centos ana]# pwd
    /www/web/default/ana
    

    php-fpm相关命令

    [root@VM_0_17_centos www]# which php-fpm
    /www/wdlinux/phps/55/bin/php-fpm
    [root@VM_0_17_centos www]# /www/wdlinux/phps/55/bin/php-fpm --help
    Usage: /www/wdlinux/phps/55/bin/php-fpm {start|stop|force-quit|restart|reload|status}
    [root@VM_0_17_centos www]#
    

    使用LNMP做的服务器环境,然后我在index.php中添加了一个路由,请求的时候总是404,不加路由能请求成功,

    location ~ \.php(.*)$ {
                    fastcgi_pass  unix:/tmp/php-55-cgi.sock;
                    fastcgi_index  index.php;
                    fastcgi_param  SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;
                    fastcgi_param PATH_INFO $2;
                    try_files $uri $uri/ /index.php;
                    include fcgi.conf;
            }
    

    原来是

    try_files $uri $uri/ /index.php; 为例,当用户请求 http://servers.blog.ustc.edu.cn/example 时,这里的 $uri 就是/exampletry_files 会到硬盘里尝试找这个文件。如果存在名为 /$root/example(其中 $rootWordPress 的安装目录)的文件,就直接把这个文件的内容发送给用户。显然,目录中没有叫example的文件。然后就看$uri/,增加了一个 /,也就是看有没有名为/$root/example/的目录。又找不到,就会 fall back 到 try_files 的最后一个选项/index.php,发起一个内部 “子请求”,也就是相当于 nginx 发起一个 HTTP 请求到 http://servers.blog.ustc.edu.cn/index.php。这个请求会被location ~ \.php$ { ... } catch 住,也就是进入 FastCGI 的处理程序。而具体的 URI 及参数是在 REQUEST_URI 中传递给 FastCGI 和 WordPress 程序的,因此不受 URI 变化的影响。

    相关文章

      网友评论

          本文标题:NginX+PHP中使用PhalApi总结

          本文链接:https://www.haomeiwen.com/subject/ftxnrftx.html