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 完成。