我正在使用 LAMP 设置在一个 EC2 实例上运行一个 PHP 应用程序。我已将我的域指向弹性 IP。因此,目前如果我浏览到弹性 IP 或域,它会直接打开我客户的网站,该网站位于通常的 var/www/folder1 中。现在他要求我在同一个实例上设置 CRM。我创建了一个 folder2 并将所有必需的文件放在其中。我只希望 CRM 在 elasticip/folder2 (54.244.213.43/folder2) 上打开。现在由于我现有应用程序中的路由,上述 URL 导致 404。我可以做我需要的事情吗?
另一种方法可能是添加另一个弹性 IP,但我的虚拟主机设置没有显示有关弹性 IP 的任何信息,那么如何将新的弹性 IP 指向另一个文件夹(folder2)?
我当前的VirtualHost设置如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/folder1
<Directory /var/www/folder1/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我对 VirtualHost 设置不是很在行,所以我不知道如何更改这些设置以确保 crm 应用程序也能正常运行。如果可能的话,我想使用现有 IP 来完成此操作,否则任何其他方法都可以。
谢谢!
答案1
如果您以后想要分配不同的域名,只需添加另一个虚拟主机条目:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/folder2
<Directory /var/www/folder2>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php [QSA,L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
或者
如果您只是想像访问 example.com/folder 那样访问它,那么只需在目录 /var/www/folder1/ 内添加名为 folder2 的文件夹即可。
答案2
解决您的问题的简单方法是将文件夹 /var/www/folder2 移动到 folder1 内,即它应该像
/var/www/文件夹1/文件夹2
当您通过 url 浏览子文件夹时它就会起作用。