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


    DocumentRoot /var/www/php



    DocumentRoot /var/www/django


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

Listen 80
Listen 8000


    ServerAdmin [email protected]
    DocumentRoot /var/www/php
    ErrorLog ${APACHE_LOG_DIR}/php-error.log
    CustomLog ${APACHE_LOG_DIR}/php-access.log



    ServerAdmin [email protected]
    DocumentRoot /var/www/django
    ErrorLog ${APACHE_LOG_DIR}/django-error.log
    CustomLog ${APACHE_LOG_DIR}/django-access.log


别发邮件。${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配置慢慢再研究。

你可能感兴趣的:(Apache)