没有虚拟主机的ZF2骨架应用程序?

时间:2013-12-28 09:19:13

标签: php zend-framework2 virtualhost

我是ZF2的新手。我使用虚拟主机在本地计算机上开发了我的小应用程序。我希望在没有虚拟主机的情况下运行此站点。

我的文件夹目录结构是这样的:

-ProjectName  
  -config
  -module
  -vendor
    - zendframework
  -public
    - css
    - img
    - JS
    - index.php  

Index.php文件:

<?php
/**
 * This makes our life easier when dealing with paths. Everything is relative
 * to the application root now.
 */
chdir(dirname(__DIR__));

// Decline static file requests back to the PHP built-in webserver
if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) {
    return false;
}

// Setup autoloading
require 'init_autoloader.php';

// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();

对于访问CSS或Image我一直使用$ this-&gt; basePath()前置来获取它。

如果我写这样的URL,我的应用程序可以正常工作:

localhost / projectname / public / modulename

但我不想在网址中使用public。如何在网址中没有“公共”的情况下调用我的项目。

1 个答案:

答案 0 :(得分:0)

将文件夹ProjectName放在Web服务器文档根目录之外的某处,并在其中创建指向公共文件夹的符号链接。

例如,如果您的Web服务器文档为root:

/var/www/html

将您的项目置于

/var/www

并制作simlink

/var/www/html/ProjectName -> ../ProjectName/public

如果你在Windows操作系统下工作,它的方式大致相同。

对于您的情况,请执行以下步骤:

  1. 以管理员身份打开命令提示符
  2. 假设您的用户名是USERNAME,您的wamp磁盘位置是D:。执行命令:

    C:\Users\USERNAME> d:

    D:\> cd wamp\www

    D:\wamp\www> mklink /D projectname D:\wamp\www\projectname\public

  3. 之后,您可以尝试通过URL访问您的项目:

    http:\\localhost\projectname
    

    "NTFS symbolic link" on wikipedia