0

私は今、symfony を学んでいます。2 つの異なるドメインを持つ 2 つの Symfony プロジェクトを作成しました。それにもかかわらず、私の 2 番目のドメインは最初のドメインを指しており、その理由がわかりません。

私はこのチュートリアル、有名な jobeet に従っています: http://www.symfony-project.org/jobeet/1 ... rine/en/01

私の構成に注意してください:

私の /etc/apache2/httpd.conf

ServerName localhost

#From the symfony tutorial "jobeet"
# Be sure to only have this line once in your configuration
NameVirtualHost 127.0.0.1:8080

# This is the configuration for your project
<VirtualHost 127.0.0.1:80>
 ServerName www.jobeet.com.localhost
 DocumentRoot "/home/lola/sfprojects/jobeet/web"
 DirectoryIndex index.php
 <Directory "/home/lola/sfprojects/jobeet/web">
    AllowOverride All
    Allow from All
 </Directory>
 Alias /sf /home/lola/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
<Directory "/home/lola/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
    AllowOverride All
   Allow from All
 </Directory>
</VirtualHost>


#Another symfony tutorial
NameVirtualHost 127.0.0.1:8081

<VirtualHost 127.0.0.1:80>
ServerName www.tutorial.com.localhost
DocumentRoot "/home/sfprojects/tutorial/web"
  DirectoryIndex index.php
  <Directory "/home/sfprojects/tutorial/web">
    AllowOverride All
    Allow from All
  </Directory>
  Alias /sf /home/lola/sfprojects/tutorial/lib/vendor/symfony/data/web/sf
  <Directory "/home/lola/sfprojects/tutorial/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

チュートリアルドメインで8081ポートをリッスンしていることに注意してください。VirtualHost 127.0.0.1: 80と VirtualHost 127.0.0.1: 81の順列を試しました。どちらも機能しませんでした。(実際に何を使うかはわかりません)

私の /etc/hosts:

#From the symfony tutorial
127.0.0.1 www.jobeet.com.localhost

#From ANOTHER symfony tutorial
127.0.0.1 www.tutorial.com.localhost

その後、Apacheを再起動しました。

今、私がする とき: http : //www.jobeet.com.localhost/frontend_dev.php/私もJobeetページに行きます。チュートリアル部分を含むものに移動する必要があります。

なぜ機能しないのですか??!

4

2 に答える 2

1

良い:

/etc/apache2/httpd.conf で十分です:

 NameVirtualHost 127.0.0.1:80

他のServeNameを作成するときにこのコマンドを繰り返しました(チュートリアル)。それが葛藤だったのかもしれません。ポート80にすべて残しました。これで正しく解決されます。

したがって、これが最終的な /etc/apache2/httpd.conf です。

ServerName localhost

NameVirtualHost 127.0.0.1:80

# This is the configuration for your project
<VirtualHost 127.0.0.1:80>
 ServerName www.jobeet.com.localhost
 DocumentRoot "/home/lola/sfprojects/jobeet/web"
 DirectoryIndex index.php
 <Directory "/home/lola/sfprojects/jobeet/web">
    AllowOverride All
    Allow from All
 </Directory>
 Alias /sf /home/lola/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
<Directory "/home/lola/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
   AllowOverride All
   Allow from All
</Directory>
</VirtualHost>


#Another symfony tutorial
# DO NOT REPEAT NameVirtualHost 127.0.0.1:80 --------> ****HERE: do not repeat this****

<VirtualHost 127.0.0.1:80>
ServerName www.tutorial.com.localhost
DocumentRoot "/home/sfprojects/tutorial/web"
  DirectoryIndex index.php
  <Directory "/home/sfprojects/tutorial/web">
    AllowOverride All
    Allow from All
  </Directory>
  Alias /sf /home/lola/sfprojects/tutorial/lib/vendor/symfony/data/web/sf
  <Directory "/home/lola/sfprojects/tutorial/lib/vendor/symfony/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
 </VirtualHost>

/etc/hosts (または debian の場合は /etc/apache2/sites-avaiable 内) は同じです。

www.jobeet.com.localhost と www.tutorial.com.localhost にアクセスできます

すみません、私の設定ミスでした。

于 2012-02-02T12:42:16.007 に答える
0
  1. よくある間違いは、apacheの仮想ホストモジュールを無効にして、有効にすることです。sudo a2enmod virtualhost

  2. vhostconfを入れます/etc/apache2/sites-available/name-file-with-vhost-conf

  3. すべての仮想ホストを有効にする必要があります。sudo a2ensite name-file-with-vhost-conf

  4. apache2をリロードする必要がありますsudo service apache2 reload

このgithub/rokemaster/virtual_hostsを試すことができますすべてのステップが1つのスクリプトにあります

于 2012-02-02T13:26:54.160 に答える