如何在CentOS 7服务器上利用Apache安装并保护phpMyAdmin

centos7 搭建DVWA漏洞环境(一) 先决条件: 服务器上安装了LANMP(Linux,Apache,MySQL,PHP)堆栈。 具有root特权(使用sudo命令的能力)访问sudo用户帐户。 CentOS 7操作系统。 YUM更新管理器,它是CentOS 7的默认组件。 具有根访问权限的命令提示符。要打开命令提示符:菜单>应用程序>实用程序>终端。 文本编辑器。大多数Linux安装中都包含Vim... 阅读详情

提供:ZStack云计算

内容简介

以MySQL与MariaDB为代表的关系数据库管理系统已经成为各类网站及应用程序的重要组成部分。然而,并非所有用户都能够利用命令行轻松完成由此带来的数据管理工作。

为了解决这一难题,名为phpMyAdmin的项目应运而生——旨在提供一套行之有效的Web管理界面。在今天的教程中,我们将了解如何在CentOS 7服务器上安装并保护phpMyAdmin配置。我们将以Apache Web服务器为基础完成相关构建工作——其正是当下人气最高的Web服务器选项。

先决条件

在开始之前,我们首先需要满足几项先决条件。

要确保系统的构建工作,大家应当首先参考CentOS 7服务器初始设置指南一文。作为其中重点,大家可以了解如何利用sudo管理命令设定一个非root用户。

第二项条件则是在CentOS 7服务器上安装一套LAMP(即Linux、Apache、MariaDB以及PHP)堆栈。我们将利用这套平台支持自己的phpMyAdmin界面(其中MariaDB同时也是我们需要管理的数据库管理软件)。如果大家还不了解如何在服务器上安装LAMP堆栈,可以参阅在CentOS 7上安装LAMP一文。

在完成了以上准备工作之后,我们就可以一起踏上今天的学习之旅了。

第一步——安装phpMyAdmin

由于LAMP平台已经部署到位,我们可以马上开始安装phpMyAdmin软件。遗憾的是,phpMyAdmin并未被包含在CentOS 7的默认库当中。

为了获取必要软件包,我们还需要向系统中添加一套额外的库。EPEL(全称为ExtraPackages for Enterprise Linux)库包含大量软件包,其中就包括我们需要的phpMyAdmin。

这套EPEL库可通过在服务器上安装epel-release软件包的形式获得。其将重新配置我们的库列表并允许我们访问EPEL软件包。

通过以下命令进行安装:

sudo yum install epel-release

现在EPEL repo已经配置完成,大家可以通过以下命令利用yum打包系统安装phpMyAdmin软件包:

sudo yum install phpmyadmin

现在安装已经完成,其中还包括一个被部署到位的Apache配置文件。我们需要对其进行修改以满足本次示例的必要条件。

利用文件编辑器打开该文件,并对其做出变更:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

在文章之内,我们可以看到某些带有状态逻辑的目录block,用于解释目录访问策略。其中定义了两个不同的目录,其中的配置分别对应Apache 2.2与Apache 2.4(我们运行的正是Apache 2.4版本)。

现在,默认配置拒绝一切来自服务器自身之外的访问。由于我们需要以远程方式操作服务器,因此我们需要修改其中几行以指定自己的家庭连接IP地址。

将任何包含Require ip 127.0.0.1或者Allow from 127.0.0.1内容的行变更为自己家庭网络连接的IP地址。如果大家需要获取家庭连接IP地址,请参考以下章节。本示例中,文件内共有四处需要进行修改:

. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .
Require ip your_workstation_IP_address
. . .
Allow from your_workstation_IP_address
. . .

完成之后,通过以下命令重启Apache Web服务器以应用变更:

sudo systemctl restart httpd.service

到这里,我们的phpMyAdmin安装已经可以正常起效了。要访问其界面,大家可以在浏览器中直接输入服务器域名或者公共IP地址,后面加上/phpMyAdmin:

http://server_domain_or_IP/phpMyAdmin

要进行登录,大家可以使用一条有效的MariaDB用户名/密码组合。作为示例,大家可以直接使用root用户以及MariaDB管理密码。现在,我们已经可以访问其管理界面了:

获取IP地址

要完成以上步骤,大家需要了解自己用于访问数据库的计算机的IP地址。这是一种安全预防措施,能够保证未经授权的外部人员无法连接至服务器。

注意:这里要获取的_不是_VPS的IP地址,而是家庭或者工作计算机的IP地址。

大家可以访问以下网站以获取自己当前设备的IP地址:

多比较几个站点来确保其返回同样的值,并将最终确定值应用于上述配置文件中。

第二步——保护我们的phpMyAdmin实例

到这里,我们安装在自己服务器上的phpMyAdmin实例已经可以直接使用了。不过在安装这套Web界面的同时,我们也将自己的MySQL系统暴露在了外部世界之下。

尽管包含验证机制,其仍不足以完全解决问题。由于phpMyAdmin包含有大量可直接访问的数据,因此这类安装方式很容易成为攻击者们的针对目标。

我们将采取两项简单战略以降低现有安装方案被针对及入侵的风险。我们首先将界面位置由/phpMyAdmin迁移至其它位置以规避某些自动bot的暴力尝试。另外,我们还将创建一套额外的Web服务器级验证网关,并保证其在phpMyAdmin登录屏幕出现前发挥作用。

变更应用的访问位置

为了让我们的Apache Web服务器能够与phpMyAdmin进行协作,我们的phhpMyAdmin Apache配置文件采用一条昵称以指向相关文件的目录位置。

要变更phpMyAdmin界面的访问URL,我们只需要重新命名该昵称即可。现在打开phpMyAdmin Apache配置文件:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

在该文件开头,大家会看到以下两行:

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

这两行正是我们的昵称,意味着如果我们在站点的域名或者IP地址之后添加/phpMyAdmin或者/phpmyadmin字样,那么返回内容则为/usr/share/phpMyAdmin。

我们希望禁用这些特殊昵称,因为它们很可能被bot以及恶意用户所针对。相反,我们应当使用自己的昵称。具体来讲,新昵称应该易于记忆但又很难被猜到。其不应指向现有URL位置。在本示例中,我们将使用/nothingtosee。

为了应用变更,我们应当删除或者注释现有行,并添加对应修改:

# Alias /phpMyAdmin /usr/share/phpMyAdmin
# Alias /phpmyadmin /usr/share/phpMyAdmin
Alias /nothingtosee /usr/share/phpMyAdmin

完成后保存并退出。

要应用各项变更,需要重启该Web服务:

sudo systemctl restart httpd.service

现在如果继续访问原本的phpMyAdmin安装位置,则会显示404错误:

http://server_domain_or_IP/phpMyAdmin

相反,我们的phpMyAdmin界面可通过新位置进行访问:

http://server_domain_or_IP/nothingtosee
设置Web服务器验证网关

接下来要实现的就是确保用户在进入phpMyAdmin登录屏幕之前,首先对其进行身份验证。

幸运的是,包括Apache在内的大部分Web服务器都提供此类原生功能。我们只需要修改Apache配置文件中的对应内容即可使用验证文件。

在文本编辑器内再次打开phpMyAdmin Apache配置文件:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

在/usr/share/phpMyAdmin目录block之内添加一条override指令,具体如下所示:

…
<Directory /usr/share/phpMyAdmin/>
AllowOverride All
<IfModule mod_authz_core.c>
…
</Directory>
…

如此一来,我们就能将额外的配置细节指定于一个名为.htaccess且位于phpMyAdmin目录之内的文件当中。我们将利用该文件以设置密码验证。

完成后保存并退出。

重启该Web服务以应用变更:

sudo systemctl restart httpd.service
创建.htaccess文件

现在我们已经在配置文件中添加了override指令,Apache将在/usr/share/phpMyAdmin目录当中寻找一个名为.htaccess的文件。如果找到这一文件,其将利用该指令对原本的配置数据进行补充。

下一步需要在该目录中创建.htaccess文件。使用文本编辑器创建该文件:

sudo nano /usr/share/phpMyAdmin/.htaccess

在此文件中,我们需要输入以下信息:

AuthType Basic
AuthName "Admin Login"
AuthUserFile /etc/httpd/pma_pass
Require valid-user

下面对其内容进行逐一解读:

  • AuthType Basic: 这一行用于指定我们所要实现的验证类型。Basic代表我们使用最基本的密码文件验证形式。
  • AuthName: 这一行用于设定验证对话框的显示信息。大家最好使用比较普通的表达,这样未授权用户就无法从中猜测受保护内容了。
  • AuthUserFile: 这一行设定用于验证的密码文件的保存位置。其具体位置应该在受保护目录之外。我们稍后再创建该文件。
  • Require valid-user: 这一行表示只有验证通过的用户可访问此资源,意味着未授权用户无法进入。

完成之后,保存并退出文件编辑。

为验证创建密码文件

现在我们已经利用.htaccess文件中的AuthUserFile命令指定了密码文件的所处位置,接下来要做的是创建并填充该密码文件。

大家可以使用htpasswd这一Apache命令完成这项任务。我们在希望创建该文件的位置调用这条命令,同时输入我们所要提供验证细节的用户名:

sudo htpasswd -c /etc/httpd/pma_pass username

其中-c代表其将创建一个初始文件。该目录位置将作为新文件的路径以及文件名。其中username则为我们需要添加的第一个用户。接下来,为该用户提交并确认一条密码。

如果大家希望添加更多验证用户,则可调用同一条命令但不再使用-c,并使用新的用户名:

sudo htpasswd /etc/httpd/pma_pass seconduser

有了我们所创建的密码文件,验证网关就能够立刻起效。此后我们访问站点时将看到密码输入界面:

http://server_domain_or_IP/nothingtosee

在输入了登录凭证后,我们才能进入正常的phpMyAdmin登录页面。这一额外保护层将保证我们的MySQL日志既无需处理验证尝试信息,又受到额外的安全保障。

总结

大家现在可以通过受到合理保护的Web界面管理自己的MySQL数据库了。这套UI提供大多数MySQL命令行所具备的功能。大家可以借此查看数据库与架构,执行查询并创建新的数据集与结构。

本文来源自DigitalOcean Community。英文原文:How To Install and Secure phpMyAdmin with Apache on a CentOS 7 Server By Justin Ellingwood

翻译:diradw

CentOS 7 + Nginx 安全部署 phpMyAdmin 5.0.4 实战指南 phpMyAdmin 是 MySQL/MariaDB 最主流的 Web 数据库管理工具,其部署本质是 LEMP(Linux + Nginx + MySQL + PHP)栈的工程实践。理解 Nginx 的事件驱动模型、PHP-FPM 的 Unix Socket 通信机制,是规避 502 错误与权限问题的关键;而 phpMyAdmin 5.0.4 因兼容 CentOS 7 默认 PHP 7.4、修复高危 CVE 漏洞且启动轻量,成为政企及教育类低配虚拟机(如 VMware CentOS 7 Minimal)的首 阅读详情

相关推荐

从流量到凭证:实战解析SMB协议中的NTLMv2/v1哈希提取与破解

本文详细解析了SMB协议中NTLMv2/v1哈希的提取与破解实战技巧。从流量捕获、哈希格式处理到Hashcat高效破解,提供了一套完整的操作指南。文章特别强调了NTLMv2和NTLMv1哈希的区别及处理要点,并分享了防护建议与检测方法,帮助安全人员提升渗透测试效率。

weixin_30642561的博客 118

centos 7 教你如何快速安装配置phpmyadmin

phpmyadmin是图形化的数据库,管理起来很方便,相较于命令行界面有利于初学者哦,下面由我带你们搭建如下环境吧。 第一步,挂载好自己的镜像,关闭防火墙和selinux,我以前的篇章已经做过讨论,这里就忽略了,首先安装apache的httpd服务,当然我的是远程连接工具xshell,你们也可以私信我要。 yum -y install httpd 用于提供网页服务,然后开启此服务。 systemctl restart httpd 访问默认站点没问题。 第二步,在安装mariadb也就是说是mysq

qq_51235445的博客 3660

24GHz雷达DIY呼吸监测仪:用树莓派+TI IWR6843搭建生命体征检测系统(附Python代码)

本文详细介绍了如何利用树莓派和TI IWR6843毫米波雷达模块DIY非接触式呼吸监测仪。通过硬件选型、信号处理流水线设计和实时可视化系统搭建,实现高精度的生命体征检测,特别适合医疗健康和运动监测场景。附带的Python代码帮助开发者快速复现该系统。

rl6adventurer的博客 986

CentOS7 安装 phpMyAdmin

最后,我们可以通过在浏览器的地址栏中输入服务器的 IP 地址来打开 phpMyAdmin 实用程序,例如:http://127.0.0.1/phpMyAdmin应该看到登录屏幕。1. 看下 Apache 的服务端口,默认是80,如果被占用可以修改为其他端口:修改 /etc/httpd/conf/httpd.conf 修改端口。您的用户名和密码将位于文件中 config.inc.php 该文件将位于 phpMyAdmin 安装目录中 /etc/phpMyAdmin。在浏览器地址栏中输入服务器的 IP 地址。

m0_73266628的博客 1012

量化交易如何利用涨停板策略收割散户

量化交易通过算法筛选特定特征的股票,在早盘建立底仓后,利用大单拉升制造抢筹假象,吸引散户跟风买入。这种策略利用了散户的认知偏差,如锚定效应和从众心理,导致次日低开闷杀。从技术实现来看,量化策略通过控制买入量、隐藏真实意图等手段,精准执行隔日砸策略。对于短线交易者而言,理解量化资金的运作逻辑和识别危险涨停板的特征至关重要,这包括观察封板时间、盘口挂单、量价关系等多维度数据。在算法主导的市场中,散户需要升级交易工具和策略,从预测走势转向应对走势,才能避免成为量化策略的牺牲品。

weixin_33046983的博客 295

360加固DEX解密与ELF修复技术解析

本文深入解析了360加固APK的逆向分析技术,重点探讨了其DEX解密与ELF文件修复的核心流程。通过动态调试与Frida脚本,详细拆解了壳的启动机制、反调试绕过、自实现Linker技术,并还原了基于RC4和自定义算法的多层DEX解密过程,为移动安全研究人员提供了实用的实战分析思路。

alice7model的博客 704

Centos8 stream系统编译安装phpMyAdmin教程。

以上是在CentOS 8 Stream系统上编译安装phpMyAdmin的基本教程。请注意,具体的配置和参数可能因您的需求而有所不同,您可以根据自己的情况进行调整。同时,请确保在执行任何操作之前备份重要的文件和配置。首先,确保您的CentOS 8 Stream系统已经安装了必要的软件和依赖项。这里假设您的Web服务器使用的是Apache,如果使用其他Web服务器,请相应地更改用户和组。在浏览器中打开phpMyAdmin,并使用MySQL服务器的凭据登录。根据您的MySQL服务器配置进行适当的修改。

高性价比服务器就选:蓝易云 394

本地大模型部署实战:LM Studio与Ollama的易用性与性能深度评测

本文对两款主流本地大模型部署工具LM Studio和Ollama进行了深度评测。LM Studio凭借图形化界面和内置模型库,为新手提供了开箱即用的便捷体验,并支持OpenAI兼容API,易于生态集成。Ollama则以命令行驱动,轻量高效,凭借其原生API和Modelfile自定义能力,在自动化集成和性能方面表现突出。文章从易用性、模型生态、性能及扩展性多维度对比,帮助用户根据自身技术背景和使用场景做出最佳选择。

weixin_29039773的博客 530

在Centos中安装并配置phpMyAdmin

近日JD译站将服务器环境更换成LNMP了,放弃之前用的WDCP面板,改用手动手动安装nginx、php-fpm、php、mysql等,发现没面板照样可以玩转,而且占用系统资源少,速度快,还额外的学习了些centos的命令操作,可谓一举多得,具体的LNMP环境的搭建方法及步骤可参考宁皓网的在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境 (link is external),教程很详实,但教程里并没有提及phpMyAdmin,对于我们这些Mysql菜鸟来说,

起跑线 MapGuru 972

unity shader 后处理实现水墨风格渲染「Low Poly 」变「水墨画 」

水墨风格渲染 这次学校的比赛打算做一个中国古代背景的游戏,所以尝试做了水墨风格的渲染。 主要按以下四步来实现的效果: 根据色调和饱和度调整饱和度。 对图像进行模糊 水墨风格的物体边缘 物体内画笔笔触的模拟 接下来我分别就这四步依次展开说明: 调整饱和度 这里我使用Post-Processing Stack 的Color Grading 来调节饱和度,通过使用Grading Curv...

九级铁甲蛹的博客 1万+

QT实现OPCUA服务端客户端(附完整源码)

QT实现OPCUA服务端客户端(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1824

Centos 安装 phpMyAdmin

给 Centos7 安装 phpMyAdmin 的来源 yum install -y epel-release yum –y update 安装 Apache Web Server yum install httpd -y 验证状态 service httpd status systemctl status httpd 安装 phpMyAdmin yum -y install phpmyadmin 修改配置信息 vim /etc/phpMyAdmin/config.inc.php.

wwlsm_zql的博客 1472

嵌入式AI实战:基于RK3588部署YOLOv11并集成OpenCV实现实时推理(全流程详解)

本文详细介绍了在RK3588芯片上部署YOLOv11目标检测模型的全流程,包括环境搭建、模型转换和实时推理实现。主要内容为:1)通过YOLOv11官方工具将PyTorch模型转为ONNX格式;2)使用RKNN Toolkit2将ONNX模型转换为适配RK3588的RKNN格式;3)在RK3588上结合OpenCV实现实时视频推理功能。教程提供了完整的代码示例和详细步骤说明,帮助开发者快速在边缘设备上部署目标检测模型,实现AI视觉应用的落地。

LXY_LOVE36的博客 214

在 CentOS 7 服务器上安装和保护 phpMyAdmin 与 Apache 的方法

像 MySQL 和 MariaDB 这样的关系型数据库管理系统是许多网站和应用程序所必需的。然而,并非所有用户都习惯于通过命令行来管理他们的数据。为了解决这个问题,创建了一个名为 phpMyAdmin 的项目,以提供基于 web 的管理界面作为替代方案。在本指南中,我们将演示如何在 CentOS 7 服务器上安装和保护 phpMyAdmin 配置。我们将在全球最流行的 Apache web 服务器上构建此设置。

rubys007的博客 1612

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

在 CentOS 6.4 VPS 上安装和保护 phpMyAdmin 的方法

许多网站和应用程序需要数据库来存储和管理大量信息。MySQL 和 MariaDB 是流行的数据库管理系统,因为它们具有灵活性、强大性和普及性。对于许多用户来说,通过命令行管理数据库是困难的。对于那些更喜欢使用 Web 界面的用户来说,phpMyAdmin是命令驱动管理的一个很好的替代方案。在本指南中,我们将介绍如何在 CentOS 6.4 VPS 上安装和配置 phpMyAdmin。该过程对于其他版本应该是相似的。

rubys007的博客 1593

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LAMP平台搭建-Centos7

LAMP平台搭建-Centos7

Liang_GaRy的博客 520

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

VM虚拟机(centos7.x)搭建LAMP环境

VM虚拟机(centos7.x)搭建LAMP环境 一、准备:更改配置文件开启网络二、安装LAMP环境(Linux+Apache+MariaDB(Mysql的分支取代Mysql)+PHP/PhpMyAmin)1.安装Apache2.安装PHP3.安装MariDB4.安装PhpMyAdmin    1). 运行以下命令准备phpMyAdmin数据存放目录    2).运行以下命令下载phpMyAdmin压缩包并解压 &nb

JL99341621的博客 990

linux wordpress mysql 配置_centos linux上安装apache php mysql环境,并安装wordpress以及配置虚拟主机环境...

wordpress程序是运行在php + mysql环境上的,所以我们需要先安装php mysql apache的运行环境。1. 我们使用yum install 命令安装php mysql apache这三个软件,命令分别是yum install apache #安装apacheyum install php #安装phpyum install mysql #安装mysql客户端yum in...

weixin_31539461的博客 184

在 RHEL/CentOS 7.0 中安装 LAMP

跳过 LAMP 的介绍,因为我认为你们大多数已经知道了。这个教程会集中在如何在升级到Apache 2.4 的 Red Hat Enterprise Linux 7.0 和 CentOS 7.0 中安装和配置 LAMP:Linux、Apache、MariaDB、 PHP/PhpMyAdmin。 前置要求 根据使用的发行版是 RHEL 还是 CentOS 7.0,按照下面的链接来进行最小化的系统安

php教程 648

安装并配置LAMP平台部署及应用

安装Apache服务 使用Linux.iso光盘 挂载光盘 [root@centos01~]# mount /dev/cdrom /mnt/ 进入mnt目录 [root@centos01~]# cd /mnt 复制到安装程序目录 [root@centos01mnt]# cp httpd-2.2.17.tar.gz /usr/src/ 进入到程序目录 [root@centos01]#cd /...

ai_hanghang的博客 467

CentOS搭建LAMP详细教程

第一部分:LAMP 是Linux、Apache、MySQL、PHP的首字母缩写,也就是在一台Linux服务器上安装带有PHP和Mysql支持的Apache网站服务器。1. 说明本文以BurstNET VPS主机为例,操作系统是CentOS5.5,独立服务器操作

lenardkwok的专栏 629

服务器架设:CentOS搭建LAMP详细教程

LAMP 是Linux、Apache、MySQL、PHP的首字母缩写,也就是在一台Linux服务器上安装带有PHP和Mysql支持的Apache网站服务器。 1. 说明 本文以BurstNET VPS主机为例,操作系统是CentOS5.5,独立服务器操作方法与VPS相同。域名请做好DNS指向。 2. 安装 Apache2 Apache2 已经包含在 CentOS 软件包中了,一般来说,系统

弈心逐梦 984

Multicraft开php,CentOS 6上的Multicraft(Minecraft Panel)

Multicraft PanelMulticraft是一个简单易用的基于网络的控制面板,用于Minecraft服务器,你可以通过在线控制面板创建,停止,启动,监视,配置,上传,下载和运行你的服务器,它包含以下功能:玩家监控文件配置轻松更改.jar内置FTP客户端Web控制台按照以下步骤在CentOS 6上安装Multicraft1.安装MySQLyum install mysql mysql-se...

weixin_30273813的博客 1113

新网linux服务器怎么使用,宝塔服务器管理助手Linux版详细安装教程

宝塔服务器管理助手提供了包括Windows和Linux系统平台下的服务器管理面板,免费使用,安装方便,界面直观。Linux版本支持CentOS6.x和7.x系统,安装的软件包括Nginx-Tengine、Nginx、Apache、PHP、MySQL、FTP和PHPMyadmin数据库管理等。本篇讲述的是Linux版的安装教程,Windows版本的可直接在服务器上下载,或者上传程序至服务器,进行视图...

weixin_39638188的博客 274

宝塔面板v7.7.0终极安装指南:从零开始快速搭建服务器管理平台

宝塔面板v7.7.0是一款功能强大的Linux服务器管理面板,能够帮助用户轻松管理服务器、部署网站、配置数据库等。作为官方原版v7.7.0版本的完整备份,这个版本提供了稳定可靠的服务器管理解决方案。无论你是服务器运维新手还是有经验的系统管理员,宝塔面板都能显著提升你的工作效率。 ## 📋 为什么选择宝塔面板v7.7.0? ### 🚀 核心功能优势 宝塔面板v7.7.0提供了全面的服务器管

gitblog_00794的博客 377

centos linux上安装apache php mysql环境,并安装wordpress以及配置虚拟主机环境

wordpress程序是运行在php + mysql环境上的,所以我们需要先安装php mysql apache的运行环境。 1. 我们使用yum install 命令安装php mysql apache这三个软件,命令分别是 yum install apache #安装apache yum install php #安装php yum install mysql #安装mysq...

weixin_30443075的博客 109
上一篇: Mevoco 1.8发布:管纳VMware,支持云路由
下一篇: 在Ubuntu 14.04的生产环境上部署一个Symfony应用
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值