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

Posted

技术标签:

【中文标题】在 PHP7 Apache/2.4.7 (Ubuntu) 上安装 phpmyadmin 时遇到问题【英文标题】:Have trouble installing phpmyadmin on PHP7 Apache/2.4.7 (Ubuntu) 【发布时间】:2016-03-07 17:09:51 【问题描述】:

我今天安装了 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 依赖项:

我能做些什么来解决这个问题?

【问题讨论】:

尝试通过从他们的网站下载 phpmydamin 手动安装最新版本。平心而论,phpmyadmins apt-repo 依赖于官方 apt-repo 中的其他包。 apt-repo 中不存在 PHP7。 (您手动添加了它,phpmyadmins repo 对此一无所知)。 好的,我这样做了,它成功了,谢谢。 @Magnus Eriksson 请作为答案发布,这样更容易找到并获得您的信任。 【参考方案1】:

CentOS 7.2、PHP 7、PhpMyadmin 4.6.4

第 1 步:

$ 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

第四步:我蛋糕http://www.example.com/phpmyadmin

【讨论】:

【参考方案2】:

phpMyAdmin 依赖于扩展mbstring

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

 sudo apt-get install php7.0-mbstring

对于 Fedora 和 CentOS,

sudo yum install php70w-mbstring

【讨论】:

没有包 php70w-mbstring 可用。 @Jordan,这是一个错字。使用:sudo yum install php70-mbstring. 没有包 php70-mbstring 可用。【参考方案3】:

我听从了 cmets 的 Magnus Eriksson 的建议

尝试通过下载 phpmyadmin 手动安装最新版本 从他们的网站。平心而论,phpmyadmins apt-repo 有 依赖于官方 apt-repo 中的其他包。 PHP7 没有 存在于 apt-repo 中。 (你手动添加了它,phpmyadmins repo 不知道)。

【讨论】:

你是如何全局安装的?我只能通过虚拟主机安装它。我希望能够使用 localhost\phpmyadmin 而不是 \mysite.pc\phpmyadmin【参考方案4】:

使用原始 repo 的 git clone 和每日更新的 cron 作业,如此处记录的 https://laracasts.com/discuss/channels/general-discussion/phpmyadmin-with-php7 对我来说非常有效。我将以下内容放在我的 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>

service apache2 restart

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

【讨论】:

嗨史蒂夫,我刚刚在我刚刚设置的新谷歌计算引擎 vps 上执行了所有这些步骤,当我在设置我的后访问 ipaddress/phpmyadmin 时,我得到的只是一堆代码000-default.conf 文件。我还能做什么? 也许 PHP 没有正确安装? ***.com/questions/18422140/…【参考方案5】:

通过 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 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

你准备好了!

刚刚从我当前的安装中截取了一个屏幕截图,供您验证它是否有效。

【讨论】:

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

在安装 PHP 7 之前,您应该备份您的数据库。在安装过程中,您将删除旧版本的 php,并询问您是否要删除数据库。除非你真的想摆脱它,否则不要这样做。

从https://www.phpmyadmin.net/ 下载phpmyadmin 并解压缩并将文件夹移动到文档根文件夹的下一级。然后,当我在没有进一步设置的情况下使用 localhost 导航到它时,它对我有用。我不得不将我的书签删除到 phpmyadmin 并为新位置制作新书签。我的旧数据库很好。

我想全局安装 phpmyadmin,以便可以通过 apt-get 安装或重新安装或更新它,但不知道如何。

【讨论】:

以上是关于在 PHP7 Apache/2.4.7 (Ubuntu) 上安装 phpmyadmin 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Apache 2.4.7 (ubuntu) 上设置服务器缓存

在 Ubuntu 上从 Apache 2.4.7 提供降价服务

Ubuntu 14.04 Apache 2.4.7 404 未找到

.htaccess 未在 Ubuntu 14.04 (Apache 2.4.7) 中加载

Windows 上的 Django 1.6.1 + MySQL + Apache 2.4.7。可能吗? [关闭]

Ubuntu 14.04:Apache 2.4.7 虚拟主机不工作/重定向