实验环境
uname -a
Linux tomato 4.4.0-34-generic #53-Ubuntu SMP Wed Jul 27 16:06:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
步骤
安装
sudo apt-get update
sudo apt-get install php7. apache2 libapache2-mod-php7.0
修改配置
刚开始的时候我上网查询如何配置apache2和php,很多人都提到了“在httpd.conf中AddType和LoadModule”,然而我找了很久都没找到这个文件,其他各种答案也是没效果。可能这个httpd.conf要下载源码才有吧,用apt安装的没有。于是我去下载了源码,但又是一大堆的依赖包什么的,也是失败了。在图书馆搞了4个小时,感觉身体被掏空......
后来我从图书馆回到宿舍,平静了一下,打开了刚刚看过的配置文件:
cd /etc/apache2
less apache2.conf
我被注释里的目录数吸引了:
于是我认真地看了开头两页长的注释:
Summary of how the Apache 2 configuration works in Debian:
The Apache 2 web server configuration in Debian is quite different to
upstream's suggested way to configure the web server. This is because Debian's
default Apache2 installation attempts to make adding and removing modules,
virtual hosts, and extra configuration directives as flexible as possible, in
order to make automating the changes and administering the server as easy as
possible.
apache2在Debian中的配置不同,配置文件分成了几个文件。
apache2.conf is the main configuration file (this file). It puts the pieces
together by including all remaining configuration files when starting up the
web server
apache2.conf是主要的配置文件,将其他配置文件整合在一起。
Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
directories contain particular configuration snippets which manage modules,
global configuration fragments, or virtual host configurations,
respectively.
They are activated by symlinking available configuration files from their
respective *-available/ counterparts.
mods-enabled/、conf-enabled/和sites-enabled/这几个目录分别管理modules,
global configuration fragments和virtual host configurations。它们链接到相应的-available文件而起作用。
看到modules我马上就动了:
cd mods-available
grep -d recurse "AddType"
mime.conf: # AddType allows you to add to or override the MIME configuration
mime.conf: #AddType application/x-gzip .tgz
mime.conf: AddType application/x-compress .Z
mime.conf: AddType application/x-gzip .gz .tgz
mime.conf: AddType application/x-bzip2 .bz2
mime.conf: AddType text/html .shtml
ssl.conf: AddType application/x-x509-ca-cert .crt
ssl.conf: AddType application/x-pkcs7-crl .crl
嘿嘿......
sudo vim mime.conf
在文件中定位到AddType的部分,加入这两行:
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
保存退出。再来找一下“LoadModule”的归处:
mime.load:LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so
sudo vim mime.load
加入这一句:
LoadModule php7_module /usr/lib/apache2/modules/libphp7..so
重启apache2,使配置生效:
sudo service apache2 restart
测试
apache2的默认web根目录在/etc/apache2/sites-available/000-default.conf中设置:
DocumentRoot /var/www/html/
在该目录下添加测试文件info.php,内容为:
<?php
phpinfo();
?>
保存退出。
打开浏览器,在地址栏输入:
localhost/phpinfo.php
回车。成功跳出由php解释后的信息:
PHP logo
PHP Version 7.0.-0ubuntu0.16.04. System Linux tomato 4.4.--generic #-Ubuntu SMP Wed Jul :: UTC x86_64
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc/php/7.0/apache2
Loaded Configuration File /etc/php/7.0/apache2/php.ini
Scan this dir for additional .ini files /etc/php/7.0/apache2/conf.d
......
感动!