当前位置:   article > 正文

LAMP环境搭建及部署信贷系统_lampp

lampp

目录

产品架构

XAMPP简介

服务器部署

LAMP部署信贷系统

服务器配置

数据库部署

PHPMyAdmin

1、配置远程访问

2、配置PHPMyAdmin密码

3、配置远程连接MySQL

4、修改MySQL用户密码

Apache访问控制

1、DocumentRoot

2、虚拟目录

3、AllowOverride

4、Options

5、Require

5、ACL


产品架构
  1.  (1)LAMPP:Linux + Apache + MySQL + PHP + Python
  2.  (2)LNMP:Linux + Nginx + MySQL + PHP(Python)
  3.  (3)Java:Linux + JDK + Tomcat + MySQL
  4.  (4)其他: DB:MySQL、MangoDB、Redis, 服务器:Apache、Nginx、Tomcat、JBoss、Weblogic、Webshpere、IIS
XAMPP简介
 Xampp是集合了LAMPP的完整的运行环境,相对来说比较适合于开发环境和调试环境,但相对来说,安全性配置不足。
 ​
 PHPStudy、Wampp,基于Xampp讲解,然后在Xampp上部署其他应用、在PHPStudy上部署类似环境。
 ​
 编程语言分为:编译型(将源代码编译为二进制,再执行二进制)、解释型(解释器直接执行源代码,效率偏低)。

1、部署基本环境

(1)Xampp默认启动后,Apache使用端口80,所以首先需要让防火墙放行80端口,且不允许关闭防火墙。

(2)http://192.168.112.188/dashboard/phpinfo.php 展示了所有运行环境参数,通常情况下,建议删除该页面。

(3)默认情况下, /opt/lampp/htdocs 目录是应用程序的根目录 (Document Root)/dashboard/phpinfo.php

(4)在/opt/lampp/htdocs目录下,创建二级目录 xindai,用于部署 小额信贷系统,并复制相应文件到该目录

(5)在MySQL的客户端环境中,导入 该系统的配套数据库:数据库名称叫什么?有什么要求?编码格式是什么?

(6)修改配置文件,进行数据库连接,进而实现系统和数据库的融合运行。

在Xampp 7.3的版本上,安装配置 小额信贷系统,运行后出现如下错误:

image-20210830152340987

以上错误是由于小额信贷无法兼容 Xampp的较新的版本,该版本是PHP7.3的版本,导致代码不兼容。

任何一套应用系统,与服务器环境进行整合时,必须要考虑其兼容性。

通常情况下,实验环境是比较乱的,各种应用可能都存在,但是在生产环境中,建议一个服务器做一件事情,装一个系统。

服务器部署

(1)确认服务器端口和服务是否正常启动,某些情况下,可能由于端口冲突或与操作系统或服务器环境不兼容,导致无法正常启动。

如果要修改端口号,则修改:/opt/lampp/etc/httpd.conf, 查找 :Listen 80, 修改为其他端口号。

如果出现与Linux内核版本不兼容的问题,则修改 /opt/lampp/lampp,将内核版本修改为 2.8.0及以上。

 export LD_ASSUME_KERNEL=2.8.0

(2)启动 Lampp 服务器:

  1.  /opt/lampp/lampp start
  2.  /opt/lampp/lampp stop/restart
  3.  /opt/lampp/lampp startmysql
  4.  /opt/lampp/lampp startapache

LAMP部署信贷系统

服务器配置

(1)解压 小额信贷 到 DocumentRoot 所在目录,此处为:/opt/lampp/htdocs,DocumentRoot所指向的目录在 httpd.conf中查看或修改。

 DocumentRoot "/opt/lampp/htdocs"

(2)安装unzip应用,用于解压ZIP文件: yum install unzip -y,并复制文件到 DocumentRoot中

  1.  unzip 小额借贷系统.zip -d ./
  2.  cd 小额借贷系统cp -r WWW新版/
  3.  /opt/lampp/htdocs/xindai

(3)此时,直接访问 :http://192.168.112.188/xindai/,如果不需要数据库支持、或者不需要特定权限,原则上是可以正常访问的.

image-20210830161651056

数据库部署

(1)配置MySQL数据库:

  1.  第一件事:修改 root 默认密码: 参考本教材第三节:三、PHPMyAdmin。
  2.  第二件事:配置可远程操作MySQL:要么配置 PHPMyAdmin 实现访问和操作 MySQL,要么在MySQL中新建一个支持远程登录的用户,于Navicat进行远程操作

(2)创建xindai数据库:

image-20210830161225082

如果出现上述错误,主要原因是“max_allowed_packet”设置过小,导致无法执行太大的SQL语句。修改:/opt/lampp/etc/my.cnf,将max_allowed_packet 设置更大,然后重启,再执行上述SQL用于创建数据库。

(8)修改 信贷系统 的数据库连接信息,确保PHP和MySQL互相通信正常。修改:/opt/lampp/htdocs/xindai/App/Conf/config.db.php

  1.  <?php
  2.  return array(
  3.     'DB_TYPE'       => 'mysql', // 数据库类型
  4.     'DB_HOST'       => 'localhost', // 服务器地址
  5.     'DB_NAME'       => 'xindai', // 数据库名
  6.     'DB_USER'       => 'root', // 用户名
  7.     'DB_PWD'       => '123456', // 密码
  8.     'DB_PORT'       => 3306, // 端口
  9.     'DB_PREFIX'     => '', // 数据库表前缀
  10.     'cfg_adminkey' => '26XBAmVMs+n_',
  11.  );

(9)重启,访问:http://192.168.112.188/xindai/,结果:

image-20210830161814184

(10)修改 /opt/lampp/htdocs/xindai/Temp 目录,授权可写:chmod -R 777,再次访问:

image-20210830162123328

(11)登录后台:http://192.168.112.188/xindai/admin.php 账号:admin 密码:zye.cc888

image-20210830162228206

其他注意事项

(1)任何一个URL地址,一定要指定到具体的文件才可以访问,如果没有指定,则会访问默认文件:默认首页。在httpd.conf文件中:

  1.  <IfModule dir_module>
  2.     #DirectoryIndex index.html
  3.     # XAMPP
  4.     DirectoryIndex index.html index.html.var index.php index.php3 index.php4 main.php
  5.  </IfModule>

(2)默认情况下,任何一个目录,如果只输入目录名而不输入文件名去访问,该目录必须要有一个默认主文件,比如 index.html, index.php, index.jsp 或 default.php main.php等,否则将无法访问到该页面。如果目录权限配置不成功,则可能出现目录浏览页面:

image-20210830181435022

(3)修改配置文件:httpd.conf,设置 Options None,取消目录浏览权限

  1.  <Directory "/opt/lampp/htdocs">
  2.     #Options Indexes FollowSymLinks
  3.     # XAMPP
  4.     #Options Indexes FollowSymLinks ExecCGI Includes
  5.     #配置针对当前根目录,没有任何浏览的权限
  6.     Options None
  7.  ……

最终正常的效果:

image-20210830181904355

PHPMyAdmin
1、配置远程访问

PHPMyAdmin是一个网页版本的MySQL管理端,可以完成跟Navicat几乎类似的功能:建库、建表、建对象、备份、执行SQL等。但是为了安全,默认情况下,是禁止远程访问,

image-20210830104844701

请查阅资料,配置PHPMyAdmin可以远程访问。

2、配置PHPMyAdmin密码

修改:/opt/lampp/phpmyadmin/

3、配置远程连接MySQL

在MySQL中创建远程连接用户,并同步设置密码:

  1.  先切换到可执行目录:cd /opt/lampp/bin    
  2.  再运行 ./mysql -u root 进入 MySQL命令行执行以下两条指令:
  3.  GRANT ALL PRIVILEGES ON *.* TO 'qiang'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
  4.  flush privileges;
  5.  再利用Navicat等其他工具远程连接,确认远程连接开通
  6.  也可以通过MySQL命令行进入,然后
  7.  use mysql;    
  8.  select User,Password,Host from user;
  9.  查看数据库用户信息来确认新用户信息
4、修改MySQL用户密码

针对已经存在的用户,可以使用以下几种方式修改密码:

(1)直接在Navicat中通过UI界面来修改密码,在如下界面:

image-20210830143354645

(2)在MySQL命令行中执行以下指令:

  1.  set password for 用户名@localhost = password('新密码');
  2.  例如:
  3.  set password for root@localhost = password('123456');

(3)使用mysqladmin命令:

  1.  语法:mysqladmin -u用户名 -p旧密码 password 新密码
  2.  cd /opt/lampp/bin
  3.  ./mysqladmin -uroot -p123456 password 654321

(4)直接修改mysql数据库的user表:

  1.  首先登录MySQL。  
  2.  mysql> use mysql;  
  3.  mysql> update user set password=password('123456') where user='root' and host='localhost';  
  4.  mysql> flush privileges;
Apache访问控制
1、DocumentRoot

指定Web服务器的主目录,那么如果不配置虚拟目录的情况下,所有的Web应用都应该放置于本目录下。

  1.  DocumentRoot "/opt/lampp/htdocs/"  
  2.  <Directory "/opt/lampp/htdocs/">
  3.     …………
  4.  </Directory>

如果让 DocumentRoot “/opt/lampp/htdocs/xindai”,则访问时直接访问 http://192.168.112.188/ 就可以访问到信贷系统

2、虚拟目录

即使Web应用没有放置于DocumentRoot下,只要通过配置虚拟目录,也可以实现访问,比如PHPMyAdmin应用程序就没有放到DocumentRoot下,也能实现访问,那是因为系统为它配置了虚拟目录,其配置文件在 /opt/lampp/etc/extra/http-xampp.conf中。

  1.  Alias /phpmyadmin "/opt/lampp/phpmyadmin"
  2.  # since XAMPP 1.4.3
  3.  <Directory "/opt/lampp/phpmyadmin">
  4.     AllowOverride AuthConfig Limit
  5.     Require all granted
  6.     ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
  7.  </Directory>

上述虚拟目录配置文件,必须要在 httpd.conf 中进行引用:Include etc/extra/httpd-xampp.conf

3、AllowOverride

通常利用Apache的rewrite模块对 URL 进行重写的时候, rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。这就是AllowOverride的作用。

(1)AuthConfig:允许使用所有的权限指令,他们包括AuthDBMGroupFile AuthDBMUserFile AuthGroupFile AuthName AuthTypeAuthUserFile和Require

(2)FileInfo:允许使用文件控制类型的指令。它们包括AddEncoding AddLanguage AddType DEfaultType ErrorDocument LanguagePriority

(3)Indexes:允许使用目录控制类型的指令。它们包括AddDescription AddIcon AddIconByEncoding AddIconByType DefaultIcon DirectoryIndex FancyIndexing HeaderName IndexIgnore IndexOptions ReadmeName

(4)Limit:允许使用权限控制指令。它们包括Allow Deny和Order

4、Options

Options指令是Apache配置文件中一个比较常见也比较重要的指令,Options指令可以在Apache服务器核心配置(server config)、虚拟主机配置(virtual host)、特定目录配置(directory)以及.htaccess文件中使用。Options指令的主要作用是控制特定目录将启用哪些服务器特性。

Options指令的完整语法为:Options [+|-]option [[+|-]option] ...。简而言之,Options指令后可以附加指定多种服务器特性,特性选项之间以空格分隔。

(1)All 准许以下除MultiViews以外所有功能

(2)MultiViews 允许多重内容被浏览,如果你的目录下有一个叫做foo.txt的文件,那么你可以通过/foo来访问到它,这对于一个多语言内容的站点比较有用

(3)Indexes 若该目录下无index文件,则准许显示该目录下的文件以供选择

(4)IncludesNOEXEC 准许SSI,但不可使用#exec和#include功能

(5)Includes 准许SSI

(6)FollowSymLinks 在该目录中,服务器将跟踪符号链接。注意,即使服务器跟踪符号链接,它也不会改变用来匹配不同区域的路径名,如果在;标记内设置,该选项会被忽略

(7)SymLinksIfOwnerMatch 在该目录中仅仅跟踪本站点内的链接

(8)ExecCGI 在该目录下准许使用CGI

5、Require

Apache2.4中开始使用mod_authz_host这个新的模块来进行访问控制和其他的授权检查。原来在Apache2.2版本下用以实现网站访问控制的Order,Allow,Deny指令需要替换为新的Require访问控制指令。

  1.  允许所有:Require all granted
  2.  拒绝所有:Require all denied
  3.  只允许特定域名主机的访问请求:Require host google.com
  4.  允许匹配环境变量中任意一个:Require env env-var [env-var] ...
  5.  允许特定的HTTP方法(GET/POST/HEAD/OPTIONS):Require method http-method [http-method] ...
  6.  允许,表达式为true:Require expr expression
  7.  允许特定用户:Require user userid [ userid ] ...
  8.  允许特定用户组:Require group group-name [group-name] ...
  9.  允许,有效用户:Require valid-user
  10.  允许特定IP或IP段,多个IP或IP段间使用空格分隔:Require ip 192.100 192.168.100 192.168.100.5

以下示例:允许所有访问请求,但拒绝来自特定IP或IP段的访问请求(阻止恶意IP或恶意爬虫网段的访问)

  1.  <Directory xxx/www/yoursite>
  2.     <RequireAll>
  3.         Require all granted
  4.         Require not ip 192.168.1.1
  5.         Require not ip 192.120 192.168.100
  6.     </RequireAll>
  7.  </Directory>
5、ACL

从网络角度来说,距离网络入口(边界)越近,所防御的范围越广,同样,要考虑的通用性越强。

image-20210830174605581

https://www.cnblogs.com/nul1/p/8835264.html

6、配置好 Xampp 允许远程访问后,由于MySQL修改了密码,所以导致PHPMyAdmin出现错误:

image-20210830175444297

修改: /opt/lampp/phpmyadmin/config.inc.php 文件,然后重启

  1.  /* Authentication type */
  2.  $cfg['Servers'][$i]['auth_type'] = 'config';
  3.  $cfg['Servers'][$i]['user'] = 'root';              
  4.  $cfg['Servers'][$i]['password'] = '123456';    
  5.  /* Server parameters */
  6.  //$cfg['Servers'][$i]['host'] = 'localhost';
  7.  $cfg['Servers'][$i]['compress'] = false;
  8.  $cfg['Servers'][$i]['AllowNoPassword'] = true;

此时,可以远程访问:http://192.168.112.188/phpmyadmin/,进而实现对MySQL的操作。

但是,用户不需要输入任何密码,直接可以访问,毫无安全可言,解决方案如下:

(1)为PHPMyAdmin设置访问密码

(2)禁用PHPMyAdmin,在httpd.conf中,注释掉 httpd-xampp.conf 的包含文件,并删除 phpmyadmin 目录

(3)管理数据库,使用数据库,为什么必须要在同一个应用或者同一个Apache里面呢?

(4)使用 knock 进行端口隐藏,并且只在需要的时候短暂打开端口,用完就关闭。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/855368
推荐阅读
相关标签
  

闽ICP备14008679号