首页 > 代码库 > debian apache2.4 virtual host 使用

debian apache2.4 virtual host 使用

篇说了debian下安装 debian apache2 和 php7 。但并没有体现apache2已经能使用php7了,这里我们和virtual host一起记录。

 

先进入到apache所在的目录:

技术分享

如果有用过wamp的朋友可能会发现目录与windows下的不一样,是的之前我用的centos下的apache的目录结构和windows的一样,debian有点不同,之前在pixelos中安装apache的时候也是如此。

 技术分享

 

收回来,我们已知debian下apache的目录有点不一样,那区别在哪里呢?主要是把conf site mods分开归纳了。

技术分享

技术分享

技术分享

 

 这里的sites-enabled只是sites-available的一个软连接,conf, mods 同理。

看完了目录结构,我们再来看apache2.conf

apache2.conf和之前的conf最大的不同在这里:

技术分享

技术分享

 

我们可以看到apache会自动加载这几个文件夹下面的.load和.conf,方便了不少。mods基本上都是自动安装,但vhost之前如果要设置多个站点的话是全部写在一个vhost里,这样也不方便管理,如果要分的话也是手动设置多个,现在的话可以每个站点一个conf文件,十分清晰。

这里apache2.conf已经默认开启了vhost,那么我们只要在sites-enabled文件夹下面新建一个site1.conf,然后编辑

nano sites-enabled/site1.conf
<VirtualHost *:80>
        ServerName site1.test.dev
        ServerAdmin webmaster@localhost
        DocumentRoot /web/htdocs

        <Directory /web/htdocs >
           Options Indexes FollowSymLinks
           RewriteEngine On
           RewriteCond %{REQUEST_FILENAME} !-d
           RewriteCond %{REQUEST_FILENAME} !-f
           RewriteRule ^ index.php [L]

           AllowOverride all
           Require all granted
        </Directory>


        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

保存退出。

这里我需要用到地址重写,所以加入了rewrite,因此还要打开rewrite模块:

sudo a2enmod rewrite

 

现在重启服务:

sudo service apache2 restart

 

然后就是第一个坑:

技术分享

这个坑和apache的服务没有什么关系纯粹是linux权限没开放。

然后这里还有坑,比如我的目录是 /web/htdocs,权限要从web开始开放,不然还是403。

好,先来先找到apache的运行用户

ps -ef | grep apache2

技术分享

可以看到apache2的用户名是www-data,现在我们就要用www-data。

找到目录(这里是/web/htdocs),然后执行 

chown -R www-data /web
chgrp -R www-data /web
chmod -R 755 /web

技术分享

现在再去试试(已在/web/htdocs/  下新建 index.php 里面有<?php phpinfo(); ?>)

技术分享

 

再去thinkphp的官网上下载 thinkphp_5.0_full.zip,放到服务器上去解压。

 技术分享

 

到此,apache2.4 virtual host 完成。

 

debian apache2.4 virtual host 使用