一个月前,服务器从Ubuntu 12.04 升级到 16.04,当时测试了下Django,都能用就没有管了,昨天想看看网站的时候发现Apache2有问题。
今天暴雨封航,困在宁波无聊就花了半天时间研究了下,原来Ubuntu 16.04 LST中的PHP从PHP5升级到了PHP7,相关apache2模块、mysql模块可能要手动更新下。
简单的记录如下。
重装Apache2
sudo apt-get --purge remove apache2
sudo apt-get install apache2
此时能重载apache2
php7模块安装
可以通过 php -v 查看服务器中的php版本
此时虽然php版本已经更新到7.0,但是apache2中没有php7模块(查看/etc/apache2/mods-available)
安装php模块
sudo apt install php libapache2-mod-php
安装结束后,可以在/etc/apache2/mods-available中看到php7 模块,再开启该模块。
sudo a2enmod php7.0
顺便安装mbstring模块
sudo apt install php7.0-mbstring
如果使用mysql,安装php7.0-mysql
sudo apt-get install php7.0-mysql
配置Apache2服务器
这次系统升级后,Apache2升级到了2.4.18,相比之前的版本,配置的格式稍有不同。
网站配置
网站配置的文件需要增加后缀.conf
开启端口
因为配置了多站点,所以开启8080端口,同时用ufw检查下端口开启情况。
ports.conf
Listen 80
Listen 8080
网站目录开启
apache2.conf
<Directory 替换为网站存放目录>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
重启服务器
sudo service apache2 restart
后续
- wordpress恢复正常
- discuz3.2因为不支持PHP7,所以依旧存在问题
- 目前我的discuz已搬到另一个服务器,所以这里没用也就这样了
- 网上有降级或者切换PHP5、PHP7的办法,若需要请自行尝试