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