LAMP中Apache配置VirtualHost实现“分流”

其实我的最终目标是在一台主机的Apache上同时跑PHP(看情况再选个框架来用)和Python(Django框架,老朋友了)。因此,我的计划是先装好Apache+PHP,然后在此基础上安装Django。装好PHP后,我需要对Apache进行配置,看看怎样让Apache分流PHP和Python。

Linux中Apache的配置文件在/etc/apache2这个目录下,里面有个apache2.conf以及sites-available/000-default.conf。看了下这两个文件的内容,大致确定我需要更改的文件是这两个了(与Windows的情况不同,Windows中Apache仅有httpd.conf这一个配置文件)。进一步了解到,sites-available目录下的conf对应着若干网站,而每个conf里面还可以设置不同的virtualhost,可以用来实现我想要的“分流”。另一方面,sites-enabled目录下的conf链接又有什么作用呢?其实在sites-enabled中有相应的链接,就意味着这个链接对应sites-available中的conf是被启用了的。site-enabled下已经有了000-default.conf的链接了,所以不用管那么多,我们修改site-available中的000-default.conf就行了。

不说废话了。最有用的参考资料:Apache文档VirtualHost样例 https://httpd.apache.org/docs/2.4/vhosts/examples.html

根据我的情况,我需要在一个IP上跑多个网站,而我也没有多个域名,那就通过不同端口来实现了。也就是第4种方法“Running different sites on different ports”:

Listen 80
Listen 8000

<VirtualHost *:80>
    DocumentRoot /var/www/php
</VirtualHost>

<VirtualHost *:8000>
    DocumentRoot /var/www/django
</VirtualHost>

最简单的配置就是上面那样了,我自己还加了点log相关的东西:

Listen 80
Listen 8000

<VirtualHost *:80>
    ServerAdmin abc@123.com
    DocumentRoot /var/www/php
    ErrorLog ${APACHE_LOG_DIR}/php-error.log
    CustomLog ${APACHE_LOG_DIR}/php-access.log
</VirtualHost>

<VirtualHost *:8000>
    ServerAdmin abc@123.com
    DocumentRoot /var/www/django
    ErrorLog ${APACHE_LOG_DIR}/django-error.log
    CustomLog ${APACHE_LOG_DIR}/django-access.log
</VirtualHost>

别发邮件。${APACHE_LOG_DIR}实际上就是/var/log/apache2。重启Apache。

现在,在/var/www/php和/var/www/django下分别建立一个index.php,随便写点php代码。访问127.0.0.1:80和127.0.0.1:8000都OK了。

接下来先搞定Django安装,其他VirtualHost配置慢慢再研究。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值