首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >请求来自父目录在主机上不起作用

请求来自父目录在主机上不起作用
EN

Stack Overflow用户
提问于 2019-07-02 23:45:09
回答 1查看 40关注 0票数 1

我现在想部署一个php应用到一个共享主机。遗憾的是,require函数似乎不能访问父目录来包含文件。这只在本地有效。我创建了一个最小的工作示例:

目录结构:

代码语言:javascript
复制
/project/bootstrap/app.php
/project/public/index.php

app.php:

代码语言:javascript
复制
<?php

print("Hello from app");

index.php:

代码语言:javascript
复制
<?php

require __DIR__ . '/../bootstrap/app.php';

print('Hello World!');

这个应用程序在本地运行得很好,而在服务器上我得到了一个'HTTP ERROR 500‘。我检查了服务器上的文件夹和文件权限,文件夹权限设置为755,文件权限设置为644。

编辑:当我激活错误报告时,我得到以下错误:

代码语言:javascript
复制
Warning: require(): open_basedir restriction in effect. File(/path/on/hoster/bootstrap/app.php) is not within the allowed path(s): (/path/on/hoster/public/:/tmp/) in /path/on/hoster/public/index.php on line 6

Warning: require(/path/on/hoster/bootstrap/app.php): failed to open stream: Operation not permitted in /path/on/hoster/public/index.php on line 6

Fatal error: require(): Failed opening required '/path/on/hoster/public/../bootstrap/app.php' (include_path='.:/opt/plesk/php/7.2/share/pear') in /path/on/hoster/public/index.php on line 6
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-03 00:16:44

也许您的主机使用的是较旧的PHP版本。

检查以下代码:

代码语言:javascript
复制
<?php

require realpath( dirname(__FILE__) . '/../bootstrap/app.php' );

print('Hello World!');

或者简单地这样做:

代码语言:javascript
复制
require  '../bootstrap/app.php';

更新

如果您看不到任何错误,则通过将以下行添加到代码顶部来启用PHP的错误报告:

代码语言:javascript
复制
error_reporting(E_ALL);
ini_set('display_errors', 1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56856021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档