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错误日志的配置方法

写接口难免会有错误,但是发现找不到为什么出错,原来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.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文件,如下图,发现错误信息已经记录在里面了。

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

<?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);
?>

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
就是/example
。try_files
会到硬盘里尝试找这个文件。如果存在名为/$root/example
(其中$root
是WordPress
的安装目录)的文件,就直接把这个文件的内容发送给用户。显然,目录中没有叫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 变化的影响。
网友评论