在 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 禁止错误。 然后我尝试用
重新安装phpmyadminapt-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) 中加载