打开 PHP 服务的报错功能
编辑 php.ini 设置字段:
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
error_reporting 变量的默认值是 E_ALL。这个设置会显示从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出。
php 执行权限问题
在 Ubuntu 的 php文件执行 move_uploaded_file() 移动文件失败。
move_uploaded_file() 移动文件失败,更改文件夹权限时,只更改了文件夹本身的权限,而没有递归更改文件夹下所有文件的权限,没有使用 chmod 的 -R 模式。
在 Ubuntu 使用 Smarty 模板引擎时,运行时主页空白,要给根目录内生成编译文件的 php文件足够的执行权限,否则无法生成编译内容。
更换网站根目录下的文件后,即使曾经已给了根目录权限,更换文件后也需要重新给所有的新文件权限,因此要重新给根目录递归的权限。
require_once 报错
require_once './xxx.php'; 改为 requrie_once 'xxx.php';
404 NOT FOUNT
网站目录下的文件名与网页中的链接书写的大小写必须一致,否则找不到页面。 注意,修改配置文件修改后要重启相应服务,php 和 nginx 对应不同的服务。
目录分隔符
Ubuntu内以正斜杠(/)为目录分隔符,不可以使用反斜杠(\)代替。
ThinkPHP报模板不存在:./Application/Home/View/Index/index.html
在客户端测试网站的时候不区分大小写,因此不会检查出大小写上的错误,当拿到真正的服务器上运行时就会因此报错。将方法名index改成大写才行。
error 1292 (22007): Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘xx’ at row 1
执行 show variables like ‘%sql_mode%’;
值中包含NO_ZERO_IN_DATE,NO_ZERO_DATE,TRADITIONAL,去掉这三个重新赋值:
set global
sql_mode=’STRICT_TRANS_TABLES,STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER’;
最后重新登录mysql,会看到该值发生变化。
include某页面后不能使用里面定义的变量
在函数里不能使用外部引入的变量,用 global 将变量转化为全局变量即可。例如:
include 'config.php';
global $dbhost, $dbuser, $dbpwd, $dbname, $dbcharset;
图形验证码不显示
安装GD库。
sudo apt-get install php5-gd
安装时,不要省略 sudo 一词,否则报错,导致安装不完整。
USA-IDC专业韩国数据中专业提供优质php服务器租用,sdn智能线路分配,最大限度利用带宽,性能稳定可靠,欢迎广大用户联系24小时在线客服租用。