在PHP7 Apache/2.4.7 (Ubuntu)上安装phpmyadmin遇到问题

34

今天我安装了PHP7

sudo add-apt-repository ppa:ondrej/php-7.0
sudo apt-get install php7.0-cli php7.0-common libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm

之后,当我尝试访问phpmyadmin时,出现了403禁止访问的错误。

然后我尝试重新安装phpmyadmin。

apt-get install phpmyadmin

但是它仍然寻找已经不存在的php5依赖项:

图片描述

我该怎么做才能解决这个问题?


2
尝试通过从phpmyadmin网站下载最新版本手动安装。公平地说,phpmyadmin的apt-repo依赖于官方apt-repo中的其他软件包。PHP7不存在于apt-repo中(您手动添加了它,而phpmyadmin的repo并不知道)。 - M. Eriksson
好的,我这样做了,成功了,谢谢。 - Mister M
@Magnus Eriksson请以答案的形式发布,这样更容易找到并且当然要给你功劳。 - Tim van Uum
6个回答

74

通过wget安装并在Apache中创建别名。记住:

切换至目录/usr/share

cd /usr/share

切换到root用户:

 sudo su

下载phpMyAdmin:

wget https://files.phpmyadmin.net/phpMyAdmin/4.5.4.1/phpMyAdmin-4.5.4.1-all-languages.zip

解压它:(您可能需要先安装unzip)

unzip phpMyAdmin-4.5.4.1-all-languages.zip

重命名文件夹:

mv phpMyAdmin-4.5.4.1-all-languages phpmyadmin

更改权限:

chmod -R 0755 phpmyadmin

配置 Apache,以便它可以正确找到它:

vim /etc/apache2/sites-available/000-default.conf

在 "DocumentRoot /var/www/html" 后面插入这些代码:

Alias /phpmyadmin "/usr/share/phpmyadmin/"
<Directory "/usr/share/phpmyadmin/">
     Order allow,deny
     Allow from all
     Require all granted
</Directory>

重启Apache:

service apache2 restart

准备就绪!

我刚刚从我的当前安装中截取了一张屏幕截图供您验证它是否有效。 enter image description here


感谢@Gilberto Albino,解释得非常好。最终我把phpmyadmin目录放在了/var/www/html下,并创建了一个虚拟主机,因为我的网站在VirtualBox VM上。 - agit
该解决方案也在运行在虚拟机上的Ubuntu系统下进行了测试。 - Gilberto Albino
1
我也按照你的步骤解决了问题。但是文件夹'phpmyadmin'位于'/var/www'内,我认为那里不是应该放它的合适位置,因为其他项目的文件和文件夹将在文档根目录(即/var/www)中。所以我认为我不应该将这些与phpmyAdmin混淆。我应该删除它吗,因为安装已经完成了?还是应该将它移动到其他地方?请在这方面指导我。谢谢。 - PHPFan
这不会将phpmyadmin zip文件留在/usr/share目录下吗?如果需要,请按照Gilberto的帖子中所述,首先导航到/usr/share,然后使用以下命令删除它:rm phpMyAdmin-4.5.4.1-all-languages.zip - Max
在下载之前,您可能想查看是否有更新的安装程序。撰写本评论时,此版本为最新版本:https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.zip - santiago arizti

3

phpMyAdmin依赖于扩展mbstring

对于Debian用户(在Ubuntu 15.10中测试),

 sudo apt-get install php7.0-mbstring

针对 Fedora 和 CentOS,

sudo yum install php70w-mbstring

1
没有可用的php70w-mbstring软件包。 - Jordan
1
@Jordan,这是一个打字错误。请使用:sudo yum install php70-mbstring - m.spyratos
没有可用的php70-mbstring软件包。 - DavSev

2

我使用了原始仓库的git clone,并按照这里https://laracasts.com/discuss/channels/general-discussion/phpmyadmin-with-php7的文档设置了每日更新的cron job。对于我来说,这个方法非常有效。我在我的Vagrantfile(用于开发服务器)中添加了以下内容:

    if [ ! -d /usr/share/phpmyadmin ]; then
        sudo mkdir /usr/share/phpmyadmin
        sudo git clone --depth=1 --branch=STABLE https://github.com/phpmyadmin/phpmyadmin.git /usr/share/phpmyadmin
    fi

然后按照上述方式添加别名。
Alias /phpmyadmin "/usr/share/phpmyadmin/"
<Directory "/usr/share/phpmyadmin/">
     Order allow,deny
     Allow from all
     Require all granted
</Directory>

and

service apache2 restart

非常简单,仅需几个步骤,始终保持最新状态。(Ubuntu wily, php7)


嗨,Steve,我刚刚在我新设置的Google计算引擎VPS上按照所有步骤操作了一遍,但当我访问ipaddress/phpmyadmin时,我只看到了一堆代码。我已经设置好了000-default.conf文件。还有其他什么我可以做的吗? - Phillip Dews
也许PHP没有正确安装?https://dev59.com/cGMl5IYBdhLWcg3wa2bV - Steve

1

我遵循Magnus Eriksson在评论中的建议

尝试通过从其网站下载phpmyadmin的最新版本手动安装。公正地说,phpmyadmins apt-repo依赖于官方apt-repo中的其他软件包。 PHP7不存在于apt-repo中(您手动添加了它,但phpmyadmins repo不知道)。


你是如何全局安装的?我只能通过虚拟主机来安装。我想使用localhost\phpmyadmin而不是\mysite.pc\phpmyadmin。 - Relaxing In Cyprus

1
安装 PHP 7 之前,您应该备份数据库。在安装过程中,您将删除旧版本的 PHP 并被询问是否要删除数据库。除非您真的想摆脱它,否则不要这样做。
https://www.phpmyadmin.net/ 下载 phpMyAdmin,并解压缩并将文件夹移动到文档根文件夹下一级。然后,当我使用 localhost 导航到它时,它对我有效,无需进一步设置。我不得不删除我的 phpMyAdmin 书签并为新位置创建新书签。我的旧数据库没问题。
我想全局安装 phpMyAdmin,以便可以通过 apt-get 安装、重新安装或更新,但不知道如何操作。

1
Step 1: CentOS 7.2,PHP 7,PhpMyadmin 4.6.4
$ cd /usr/share
$ wget https://files.phpmyadmin.net/phpMyAdmin/4.6.4/phpMyAdmin-4.6.4-all-languages.zip
$ unzip phpMyAdmin-4.6.4-all-languages.zip
$ mv phpMyAdmin-4.6.4-all-languages phpmyadmin

步骤2:
$ cd /etc/httpd/conf.d
$ touch phpmyadmin.conf
$ put on phpmyadmin.conf following content

Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 217.x.x.x
       Require ip ::1
     </RequireAny>
   </IfModule>

   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 217.x.x.x
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/setup/>

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>

   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

<Directory /usr/share/phpmyadmin/libraries/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpmyadmin/setup/lib/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

<Directory /usr/share/phpmyadmin/setup/frames/>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>

步骤3:
systemctl restart httpd

第四步:i Cake http://www.example.com/phpmyadmin

enter image description here

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接