分类
HTTP/2 相关 Linux 相关 Web 服务器

升级PHP 7.1并启用PHP-FPM

一个多月前把系统升级到了Debian Buster,同时Apache也升级到了2.4.27,然后就发现HTTP/2没法用了,因为那时忙别的事情,也就没去管它。

今天闲着无事,就翻了翻文档,才发现在Apache 2.4.27中,Apache MPM (Multi-Processing Module) prefork取消了对HTTP/2的支持。因此,准备随即切换到Apache MPM event。

但随之而来的一个新问题就是,Apache服务器下,PHP所使用的mod_php模块只能支持prefork,因此,同时要将PHP切换到php-fpm以在FastCGI模式下运行PHP。然后想想,不如同时把PHP升级到7.1版本算了。

首先要做的,就是卸载PHP 7.0,虽然直接安装也行,但我还是选择了卸载,反正留着也没用。如果有安装phpMyAdmin,因为依赖被卸载,所以也会连带被卸载,这里直接选择卸载重装。

apt-get purge phpmyadmin php7.0-gd php7.0-xml php7.0 php-pear php7.0-mysql php7.0-common
apt-get autoremove

然后重新安装PHP 7.1,可以一步安装完所有包,也可以分开安装。这里为了写得清楚一点,分开写。但需要注意的是,如果一步安装PHP 7.1基本包的同时安装php7.1-fpm,默认就不会安装包含了mod_php模块的libapache2-mod-php7.1,如果你要用mod_php,要么分开两步装,要么别装php7.1-fpm。

首先安装LAMP需求的包。

apt-get install php7.1 php-pear php7.1-mysql

然后是WordPress需求的包。

apt-get install php7.1-gd php7.1-xml

然后是php-fpm。

apt-get install php7.1-fpm

最后装回phpMyAdmin,需要注意的是,phpMyAdmin默认安装的需求包是php7.0-mbstring,在PHP 7.1下会提示缺少mbstring,这个问题困扰了好久!最后发现,直接选择安装php7.1-mbstring就解决了!

apt-get install phpmyadmin php7.1-mbstring

安装完成之后重新配置以下phpMyAdmin就行。可以参考这里:写给像我这样的新手的phpMyAdmin教程 (Apache)

之后就是启用PHP-FPM了。

首先关闭Apache服务器。

service apache2 stop

再执行以下命令。

a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
a2dismod php7.1
a2dismod mpm_prefork
a2enmod mpm_event

最后重新启动Apache,这样就大功告成了,很简单。然后测试一下,我遇到了些问题,最后发现是自己写的.htaccess里面有一些PHP语句需要更新,这方面注意一下。

分类
Web 服务器

写给像我这样的新手的phpMyAdmin教程 (Apache)

既然建站了,总要配置一个phpMyAdmin用来方便管理MySQL。于是,写一下这教程吧。

首先,安装phpMyAdmin。

apt-get install phpmyadmin

选择Apache2,然后选YES,然后输入MySQL的管理员密码,再创建一个phpMyAdmin的登录密码。

编辑Apache2的配置。

vi /etc/apache2/apache2.conf

在最下面加入这一行。

Include /etc/phpmyadmin/apache.conf

重启一下Apache。

service apache2 restart

这时其实已经可以用了。浏览器输入你的IP或域名/phpmyadmin就行。但是,我们还要改一下设置,让phpMyAdmin更安全。

vi /etc/phpmyadmin/apache.conf

找到以下这几行,加入最后那行。

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All

为phpMyAdmin创建一个.htaccess文件。

vi /usr/share/phpmyadmin/.htaccess

输入以下内容限制用户登录,其中.htpasswd的位置可以自己改,但注意,为了安全,不要放在能够从Web访问的文件夹下。

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

如果你觉得有必要,再输入以下内容强制通过HTTPS访问,当然,前提是你的服务器已经配置好了SSL证书和HTTPS,并且已经启用了Apache的mod_rewrite,具体怎么启用,我改天写一篇网站强制通过HTTPS访问吧,突然想起来居然这个都还没写。

RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

然后在/etc/phpmyadmin下面创建.htpasswd文件,当然,位置可以自己改,只要和.htaccess文件里面一致就行。然后创建一个phpMyAdmin用户,username自己改。

htpasswd -c /etc/phpmyadmin/.htpasswd username

输入登录密码。最后重启一下Apache。

service apache2 restart

大功告成了,这时候就可以用Web登录管理MySQL了,包括备份或更改Wordress的数据库,很方便。