这是关于编程PHP时可能遇到的警告,错误和通知的一些答案,并且不知道如何修复.这也是社区Wiki,因此邀请每个人参与添加和维护此列表.
Stack Overflow上经常弹出诸如"已发送标头"或"调用非对象成员"之类的问题.这些问题的根本原因总是一样的.因此,这些问题的答案通常会重复,然后显示OP在他/她的特定情况下要改变哪一行.这些答案不会为网站添加任何价值,因为它们仅适用于OP的特定代码.具有相同错误的其他用户不能轻易地从中读取解决方案,因为它们过于本地化.这很难过,因为一旦你理解了根本原因,修复错误是微不足道的.因此,该列表试图以一般的方式解释解决方案.
如果您的问题已被标记为重复,请在下面找到您的错误消息并将修复程序应用于您的代码.答案通常包含进一步调查的链接,以防单独的一般答案不清楚.
如果您想贡献,请添加您的"收藏"错误消息,警告或通知,每个答案一个,简短说明它意味着什么(即使它只是突出显示其手册页的术语),可能的解决方案或调试方法和现有问答的清单.此外,随时改善任何现有的答案.
另外,请参阅
我刚刚从Win2003上的IIS6迁移到Win2012上的IIS8,用于托管ASP.NET应用程序.
在我的应用程序的一个特定文件夹中,我需要创建和删除文件.将文件复制到新服务器后,当我尝试删除文件时,我一直看到以下错误:
访问路径'D:\ WebSites\myapp.co.uk\companydata\filename.pdf'被拒绝.
当我检查IIS时,我看到应用程序在DefaultAppPool帐户下运行,但是,我从未在此文件夹上设置Windows权限以包含IIS AppPool\DefaultAppPool
相反,为了停止尖叫客户,我在该文件夹上授予了以下权限:
IUSR
IIS_IUSRS
这似乎有效,但我担心已经设置了太多的权限.我在网上阅读了有关IUSR是否真的需要的相互矛盾的信息.任何人都可以澄清哪些用户/权限足以创建和删除此文件夹上的文档吗?此外,IUSR是IIS_IUSRS组的一部分吗?
请参阅下面的答案.我不得不遗憾地做到这一点,因为最近的一些建议没有经过深思熟虑,甚至是安全的(IMO).
我很乐意建议如何解决以下问题。对于平台,我必须创建php word文档,并且碰巧在Apache开发环境中,该代码可以完美执行。但是在nginx平台上,如主题所示,我继续收到错误:
ZipArchive::close(): Failure to create temporary file: Permission denied
Run Code Online (Sandbox Code Playgroud)
建立起来非常简单:
$phpWord = new \PhpOffice\PhpWord\PhpWord();
//code block as in the documentation
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord,'Word2007');
$objWriter->save('doorverwijzing_patient_xxxxxxxxxx.docx');
Run Code Online (Sandbox Code Playgroud)
在哪里可以更改nginx文件夹结构中的这些权限以创建这些文档?
我使用curl安装了composer,现在我尝试创建laravel项目,但输入命令后我有错误
composer create-project laravel/laravel test-project --prefer-dist
PHP Warning: Phar::mapPhar(): open_basedir restriction in effect. File(/usr/local/bin/composer) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/) in /usr/local/bin/composer on line 13
PHP Warning: require(phar://composer.phar/bin/composer): failed to open stream: phar error: invalid url or non-existent phar "phar://composer.phar/bin/composer" in /usr/local/bin/composer on line 15
PHP Fatal error: require(): Failed opening required 'phar://composer.phar/bin/composer' (include_path='.:/usr/share/pear') in /usr/local/bin/composer on line 15
Run Code Online (Sandbox Code Playgroud) 编辑:这不是open_basedir 限制的副本。文件(/) 不在允许的路径内:。这个问题与 PHP 设置无关,因为我有几个网站在相同的地图结构和相同的 PHP 设置下工作。在将其标记为重复之前,请阅读整个问题,因为我已经在这个问题的最后 4 段中解释了这一点。此外,另一个问题的答案是针对 Apache 的,而我使用的是 Nginx,它不使用 CPanel 或 httpd.conf。
我已手动将我的 Wordpress 站点移至新服务器。对于最后一个,我收到此错误:
Warning: is_dir(): open_basedir restriction in effect. File(/) is not
within the allowed path(s):
(/var/hpwsites/u_bcsautoborg:/usr/share/pear/) in
/var/hpwsites/u_bcsautoborg/website/html/webroot/wp-includes/functions.php on
line 1585
Run Code Online (Sandbox Code Playgroud)
我之前在该站点上遇到过类似的错误,但这是由于upload文件夹未从 Wordpress 设置正确链接到。因此,错误显示了不同的行号。
第 1585 行是:
while ( '.' != $target_parent && ! is_dir( $target_parent ) ) {
Run Code Online (Sandbox Code Playgroud)
并且是更大块的一部分:
/*
* Safe mode fails with a trailing slash under certain PHP versions.
* Use rtrim() …Run Code Online (Sandbox Code Playgroud) php ×3
asp.net-4.5 ×1
composer-php ×1
debugging ×1
iis ×1
iis-8 ×1
nginx ×1
oop ×1
open-basedir ×1
permissions ×1
phpoffice ×1
phpword ×1
warnings ×1
wordpress ×1