Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 共享主机上的Zend框架_Zend Framework_Shared Hosting_Directory Structure - Fatal编程技术网

Zend framework 共享主机上的Zend框架

Zend framework 共享主机上的Zend框架,zend-framework,shared-hosting,directory-structure,Zend Framework,Shared Hosting,Directory Structure,我是Zend Framework的新手。我想知道如何在共享主机上实现zend框架。因为zend framework文件夹结构 所有视图文件都放入“公用”文件夹 假设 “/”是我的主根文件夹,public类似于 “/公共” 这样url就会变成“…布拉布拉布拉…” 这是正确的吗 或者还有其他方法吗 我没有创建虚拟主机的任何权限 那怎么办呢 我希望你能理解我的问题。如果没有,请问我 谢谢大家! 事实上,在共享主机上运行Zend Framework应用程序并不是最好的主意。我真的建议您使用虚拟专用主机(

我是Zend Framework的新手。我想知道如何在共享主机上实现zend框架。因为zend framework文件夹结构 所有视图文件都放入“公用”文件夹

假设

“/”是我的主根文件夹,public类似于 “/公共”

这样url就会变成“…布拉布拉布拉…”

这是正确的吗

或者还有其他方法吗

我没有创建虚拟主机的任何权限

那怎么办呢

我希望你能理解我的问题。如果没有,请问我


谢谢大家!

事实上,在共享主机上运行Zend Framework应用程序并不是最好的主意。我真的建议您使用虚拟专用主机(VPS)。Zend Framework和其他已经安装并定期更新的框架提供了非常好而且便宜的主机。我上了,到目前为止一切都很好


但这并不意味着你不能让它在共享主机上工作。你只需要和.htacess一起工作。将公用文件夹的内容放入webroot并在bootstrap.php中调整路径,确保无法直接访问所有其他文件夹,并使用通常的ZF方法通过index.php路由所有内容

我认为最好的方法是从公共目录(Zend Framework目录结构)中删除.htaccess,并将其与以下内容一起放入“根”目录中:


重新启动发动机

重写规则^.htaccess$-[F] RewriteCond%{REQUEST_URI}=“” 重写规则^.*$/public/index.php[NC,L]

重写cond%{REQUEST_URI}^/公共/$ 重写规则^(.)$/public/$1 RewriteCond%{REQUEST_FILENAME}-f 重写规则^.*$-[NC,L]

重写规则^public/*$/public/index.php[NC,L]

我建议最简单的方法:以index.php位于根目录中的方式开发应用程序(更好的方法是,始终在index.php中定义PUBLIC_PATH-
dirname(u文件);
,并创建与此常量相关的链接)。以及应用程序和库文件夹。您可以使用.htaccess中的
deny from all


当您的PUBLIC不是PUBLIC时,PUBLIC_PATH常量也有帮助。(public html或/public html/www(在我的例子中))

我也遇到过同样的情况,我将zend库放在public(如“src”)下的文件夹下,并使用.htaccess拒绝所有人访问。您必须处理几个路径,但它可以正常工作。

将此.htacces文件包含在基本路径下(即/./public):

并将.htaccess放在它所在的publc目录下


因此,您将有2个.htaccess文件,一个在公共目录下(Zend Framework文档中的普通文件),另一个在基本路径下(我在上面发布的文件)。

。Magento如何使用Zend框架???我使用的是XAMPP,我在本地安装了Magento,没有修改php.ini、http.conf或虚拟主机。

您应该将项目的公用文件夹放在主机中的www文件夹中,这样您的地址将成为yourdomain.com/。
您的源代码文件夹,如库、应用程序。。。应与www文件夹位于同一级别,而不是在其中。此方法将提高您网站的安全性

来自ArneRie的答案对我不起作用,我最终使用了。希望这有助于其他人获得更快的解决方案

RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteRule ^public/.*$ /public/index.php [NC,L]

事实上,我已经搜索过了,并找到了很多答案(大部分都在这里),但没有一个对我有用。所以我最终找到了一个解决方案-.htaccess on root dir:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
<?php 
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';
?>
这个是从 和根目录上的index.php:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php
<?php 
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';
?>

这个是从 即使根文件夹中有其他项目目录,比如论坛之类的,它对我来说也是有效的。 我想这可能对某人有用:)

也一样

我正在使用Zend Framework 2,它对我很有效。 尽管我还没有完成上面链接中的“引用面向公众的文件”部分

我刚刚在我的布局中更改了代码。phtml来自:

$basePath = $this->basePath();
致:


我最近遇到了这个问题,通过这个线程我能够找到一个解决方案。我使用的是zf2。所以我所要做的就是把zend相关的文件放在一个我们可以命名为
src
的目录中。此目录将位于公用或根目录中(例如
/www

  • 在'src'目录中创建一个.htaccess文件,并添加Deny from All指令

  • 在索引文件中,通过执行以下操作将工作目录更改为
    src
    文件夹:

    define('SRC_ROOT', 'src');
    chdir(SRC_ROOT);
    

  • …你也可以走了

    设置虚拟主机通常在httpd.conf或extra/httpd-vhosts.conf中完成。如果您使用的是httpd-vhosts.conf,请确保主httpd.conf文件中包含此文件。一些Linux发行版(例如:Ubuntu)将Apache打包,以便将配置文件存储在/etc/apache2中,并在启用了/etc/apache2/sites的文件夹中为每个虚拟主机创建一个文件。在本例中,您将把下面的虚拟主机块放入文件/etc/apache2/sites enabled/zf2教程中

    确保已定义NameVirtualHost并将其设置为“*:80”或类似值,然后按照以下行定义虚拟主机:

    设置虚拟主机通常在httpd.conf或extra/httpd-vhosts.conf中完成。如果您使用的是httpd-vhosts.conf,请确保主httpd.conf文件中包含此文件。一些Linux发行版(例如:Ubuntu)将Apache打包,以便将配置文件存储在/etc/apache2中,并在启用了/etc/apache2/sites的文件夹中为每个虚拟主机创建一个文件。在本例中,您将把下面的虚拟主机块放入文件/etc/apache2/sites enabled/zf2教程中。
    确保已定义NameVirtualHost并将其设置为“*:80”或类似值,然后按照以下行定义虚拟主机:
    ServerName zf2-tutorial.localhost
    DocumentRoot/path/to/zf2 tutorial/public
    
    define('SRC_ROOT', 'src');
    chdir(SRC_ROOT);