Web安全-LAMP平台搭建
实验题:
制作本地YUM
源
- 1.放入系统光盘,重新挂载到
/media
- 手动
挂载光盘
到指定目录
umount /dev/sr0
mount /dev/sr0 /media
mount -o ro /dev/sr0 /mnt
- 开机
自动挂载
echo "mount -o ro /dev/sr0 /mnt">>/etc/rc.local
echo "dev/sr0 /mntiso9660 defaults,ro 0 0">>/etc/fstab
- 手动
-
将原有的
yum源文件
剪切备份
到别处
mkdir /root/repo-bak
mv /etc/yum.repos.d/* /root/repo-back
-
创建自己的
yum
源文件
vim /etc/yum.repos.d/test.repo
# 有时候打补丁,安装模块都用得到
[test]
一个文件可以包含多个yum
源地址,使用标签[]
进行区分name=test 源名称
baseurl = file:///media yum源路径
enable=1 # 开启该源
gpgcheck=1 关闭公钥验证
-
如果以前使用过其他
yum源
,需要清除缓存
yum clean all
yum make cache
yum list
查看当前可用yum源
中的软件列表
(被刷屏说明正常
)yum list installed
LAMP
LAMP 平台搭建
LAMP部署实验
LAMP= Linux + Apache + MySQL + PHP
- Linux 操作系统
Apache HTTP
服务,又名apache httpd
提供静态页面MySQL
数据库, 开源免费的关系型数据库,适用于中小型网站
MariaDB
可以视作MySQL 姐妹版
,使用方式,配置
文件高度相似
LANMP
集成环境安装工具phpstudy/小皮
宝塔(BT)
- Apache环境实验
- 搭建
动态网站架构
,安装论坛系统
。注意配置项与单独服务
部署略有不同。
- 搭建
实验过程1:安装apache软件实现httpd的80端口
访问
-
①卸载冲突软件
rpm -e httpd httpd-manual webalizer subversion mod_python mod_ssl mod_perl system-config-httpd php php-cli php-ldap php-common mysql dovecot --nodeps
-
②编译安装
tar zxf httpd-2.2.15.tar.gz -C /usr/src/
cd /usr/src/httpd-2.2.15/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charsetlite --enable-cgi
make && make install
-
③优化执行路径
ln -s /usr/local/httpd/bin/* /usr/local/bin/
-
④修改主配置文件默认站点名称
vim /usr/local/httpd/conf/httpd.conf
ServerName www.rfx.com
-
⑤开启服务
apachectl start
netstat -anpt | grep 80
-
浏览器输入
localhost
查看,当前显示如下表示正常启动
实验过程2:安装mysql
服务,测试3306端口
可用,可登录mysql
-
①确认系统没有
rpm
安装的mysql
组件,如果有请卸载rpm -q mysql-server mysql
-
②开始安装
mysql-5.5
的编译环境,首先在光盘安装包目录安装ncurses-devel
rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
-
③然后安装
cmake
工具tar zxf cmake-2.8.6.tar.gz
cd cmake-2.8.6
./configureg
make && gmake install
-
④创建
mysql
所用的程序账户groupadd -g 1500 mysql
useradd -u 49 -M -s /sbin/nologin -g mysql mysql
-
⑤解压缩
mysql
编译包tar zxf mysql-5.5.22.tar.gz -C /usr/src
cd /usr/src/mysql-5.5.22/
-
⑥配置
mysql
安装信息cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
- 如果报错
Curses library not found
异常 删除解压目录的CMakeCache.txt
然后yum
安装ncursesdevel
- 如果不能访问外部
yum
源,挂载老师给的centOS iso
,安装ncurses
系列软件包(需要卸载之前的)
-
⑦编译 && 编译安装
mysql
make && make install
-
⑧修改
mysql
安装目录的归属chown -R mysql:mysql /usr/local/mysql
-
⑨根据实际情况复制配置文件样板,我们以中型数据库为例
cp /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf
-
⑩初始化数据库信息
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
- 优化命令执行路径
ln -s /usr/local/mysql/bin/* /usr/local/bin/
- 添加开机启动和系统服务
cp /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
systemctl start mysqld
- 优化命令执行路径
- 登录
mysql
mysql -u root
- 退出数据库
quit
- 效果如下
实验过程3:安装PHP
支持环境
-
①卸载相关软件
rpm -e php php-cli php-ldap php-common php-mysql --nodeps
-
②安装3个PHP需要的加密环境
-
(一)
tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
cd /usr/src/libmcrypt-2.5.8/
./configure
make && make install
ln -s /usr/local/lib/libmcrypt.* /usr/lib/
-
(二)
tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
cd /usr/src/mhash-0.9.9.9/
./configure
make && make install
ln -s /usr/local/lib/libmhash* /usr/lib/
-
(三)
tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
cd /usr/src/mcrypt-2.6.8/
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./configure
make && make install
-
-
③安装PHP环境
yum -y install libxml2*
-
④安装PHP软件
tar zxf php-5.3.28.tar.gz -C /usr/src/
cd /usr/src/php-5.3.28/
./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-filepath=/usr/local/php5 --enable-mbstring
make && make install
-
⑤复制
PHP
主配置文件cp /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini
-
⑥检查
apache
中是否被写入PHP
信息vim /usr/local/httpd/conf/httpd.conf
-
⑦配置文件中是否存在
LoadModule php5_module con modules/libphp5.so
-
⑧在
AddType
出添加一行AddType application/x-httpd-php.php
-
⑨重启
httpd
服务apachectl restart
- 执行后报错如下:
httpd: Syntax error on line 54 of /usr/local/httpd/conf/httpd.conf: LoadModule takes two arguments, a module name and the name of a shared object file to load it from
vim /usr/local/httpd/conf/httpd.conf
注释掉54行代码
-
⑩添加
php
主页DirectoryIndex index.html index.php
- 编写
PHP
测试页面vim /usr/local/httpd/htdocs/test1.php
-
内容为
-
php脚本 -l
<?php phpinfo(); ?> 验证成功访问http://192.168.3.1/test1.php 编写数据库测试文件 vim /usr/local/httpd/htdocs/test2.php 内容 <?php $link=mysql_connect('localhost','bbsadmin',''); if($link) echo "gongxini,chengle!!"; mysql_close(); ?>
-
验证成功访问
http://192.168.3.1/test2.php
ln -s /usr/local/php5/bin/php /usr/bin/
-
添加链接到
/usr/bin
php -v
如果显示版本信息则安装成功
安装
论坛 //安装包为ISO文件
下发
见右侧
-
虚拟机拖拽
传送命令
rz -E
-
LAMP一键安装
会带有phpmyadmin
一个图形化管理页面
,有漏洞
-
mysql
登录命令 -
mysql -u root
-
-
设置数据库用户的密码
mysql -u root [-p] password
-
再输入新密码
- 否则密码会以
明文
显示在命令行
和history
- 否则密码会以
-
查看所有数据库
show databases
// 不区分大小写
-
为了方便阅读代码,通常用大写表示命令,其他用小写。
- 以“
;
”结尾表示命令输入结束。
- 以“
-
进入某个数据库
use
数据库;
-
查看
所有表
show tables
;
-
显示表的结构
describe
// 等价缩写命令desc
。输出每列的列名,数据类型,长度,默认值等。
-
数据库的创建和删除
-
创建数据库
CREATE DATABASE 数据库名
;
-
创建表
CREATE TABLE users (
id int not null,
names char(16) not null.pwd char(48) default ''
)
删除表
插入
记录修改
记录删除
记录
添加用户
修改
用户权限
设置
用户权限
- 给用户
haonan
开启dao.users
表的select
权限GRANT
权限列表ON
数据库名.表名TO
用户名@来源地址[ IDENTIFIED BY '密码' ]
GRANT
selectON
dao.usersTO
haonan’@‘localhost’ IDENTIFIEDBY '123.com'
- 给用户
bbsadmin
开启bbsdb
库下面全部表
的全部权限
GRANT all ON bbsdb.* TO 'bbsadmin'@'localhost' IDENTIFIED BY '123.com'