LAMP环境搭建与配置

任务1 安装LAMP,基础配置解析PHP

前期环境

1.修改主机名
LAMP环境搭建与配置 - 图1
2.配置网络
LAMP环境搭建与配置 - 图2
3.重启网络之后测试网络
LAMP环境搭建与配置 - 图3
4.关闭防火墙
LAMP环境搭建与配置 - 图4
5.关闭selinux
LAMP环境搭建与配置 - 图5
6.挂载光驱
LAMP环境搭建与配置 - 图6
7.把其他repo文件移到/media
LAMP环境搭建与配置 - 图7
8.配置yum源
LAMP环境搭建与配置 - 图8
9.安装常用工具
vim是vi编译器的升级版
LAMP环境搭建与配置 - 图9
net-tools 自带两个命令
LAMP环境搭建与配置 - 图10
gcc是编译二进制源码包需要
LAMP环境搭建与配置 - 图11
tree以树状形式查看目录结构
LAMP环境搭建与配置 - 图12
rz快捷上传工具
LAMP环境搭建与配置 - 图13

1. 安装MySQL

1.上传mql压缩包并解压
LAMP环境搭建与配置 - 图14
2.移动mql到/usr/local下,这里是存放mql的信息并进行查看
LAMP环境搭建与配置 - 图15
3.建立mql用户,创建存放数据目录、更改权限以及查看用户组和用户权限
LAMP环境搭建与配置 - 图16
4.执行一个脚本,实现不需要重新编译完成mql的操作(指定参数user【定义数据库的所属组】、datadir【定义数据安装的位置】)
LAMP环境搭建与配置 - 图17
出现以上情况解决方法:安装autoconf,命令如下:
yum install -y autoconf
脚本为perl脚本,等待出现两个ok证明成功
LAMP环境搭建与配置 - 图18
LAMP环境搭建与配置 - 图19
再重新执行这条命令./scripts/mysql_install_db —user=mysql —datadir=/data/mysql
LAMP环境搭建与配置 - 图20
LAMP环境搭建与配置 - 图21
5.首先拷贝到/etc/my.cnf,接着修改mysql配置文件vim /etc/my.cnf
LAMP环境搭建与配置 - 图22
LAMP环境搭建与配置 - 图23
LAMP环境搭建与配置 - 图24
再拷贝启动脚本/etc/init.d下命名的mysqld,随后修改文件vim /etc/init.d/mysqld(修改的内容与上一个文件内容相对应)
LAMP环境搭建与配置 - 图25
LAMP环境搭建与配置 - 图26
LAMP环境搭建与配置 - 图27
6.设置开机自启
LAMP环境搭建与配置 - 图28
7.mysqld 启动成功
LAMP环境搭建与配置 - 图29
查看进程
LAMP环境搭建与配置 - 图30
查看设置的端口是否开启
LAMP环境搭建与配置 - 图31

2. 安装Apache

1.上传apache压缩包并解压
LAMP环境搭建与配置 - 图32
LAMP环境搭建与配置 - 图33
2.切换目录安装apr-1.5.1及进行编译
LAMP环境搭建与配置 - 图34
LAMP环境搭建与配置 - 图35
安装lib
LAMP环境搭建与配置 - 图36
再次执行./configure —prefix=/usr/local/apr
LAMP环境搭建与配置 - 图37
make安装
LAMP环境搭建与配置 - 图38
LAMP环境搭建与配置 - 图39
3.切换目录安装apr-util-1.5.4及进行编译
LAMP环境搭建与配置 - 图40
LAMP环境搭建与配置 - 图41
LAMP环境搭建与配置 - 图42
make安装
LAMP环境搭建与配置 - 图43
安装expat包
LAMP环境搭建与配置 - 图44
再进行make安装
LAMP环境搭建与配置 - 图45
LAMP环境搭建与配置 - 图46
4.查看所安装的
LAMP环境搭建与配置 - 图47
5. 切换目录httpd-2.4.33安装及进行编译
LAMP环境搭建与配置 - 图48
如果有依赖之类的报错,就安装这些依赖
LAMP环境搭建与配置 - 图49
LAMP环境搭建与配置 - 图50
再次执行./configure —prefix=/usr/local/apache2.4 —with-apr=/usr/local/apr —with-apr-util=/usr/local/apr-util —enable-so —enable-mods-shared=most
LAMP环境搭建与配置 - 图51
安装make
LAMP环境搭建与配置 - 图52
LAMP环境搭建与配置 - 图53
6.进行查看一些文件
LAMP环境搭建与配置 - 图54
LAMP环境搭建与配置 - 图55
LAMP环境搭建与配置 - 图56
LAMP环境搭建与配置 - 图57
LAMP环境搭建与配置 - 图58
7.加载模块
LAMP环境搭建与配置 - 图59

3.安装PHP

1.上传PHP压缩包并解压(安装bzip2)
LAMP环境搭建与配置 - 图60
LAMP环境搭建与配置 - 图61
LAMP环境搭建与配置 - 图62
2.切换目录到php-5.6.39查看及编译
LAMP环境搭建与配置 - 图63
3.安装库yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel epel-release libmcrypt-deve
并执行./configure —prefix=/usr/local/php —with-apxs2=/usr/local/apache2.4/bin/apxs —with-config-file-path=/usr/local/php/etc —with-mysql=/usr/local/mysql —with-libxml-dir—with-gd —with-jpeg-dir —with-png-dir—with-freetype-dir —with-iconv-dir—with-zlib-dir —with-bz2 —with-openssl—with-mcrypt —enable-soap—enable-gd-native-ttf —enable-mbstring—enable-sockets —enable-exif
LAMP环境搭建与配置 - 图64
LAMP环境搭建与配置 - 图65
4.安装make
LAMP环境搭建与配置 - 图66
5.模块验证
LAMP环境搭建与配置 - 图67
6.拷贝出配置文件
LAMP环境搭建与配置 - 图68

4. 配置httpd支持PHP

1.切换目录进行主配置文件
LAMP环境搭建与配置 - 图69
去掉注释符
LAMP环境搭建与配置 - 图70
修改成granted
LAMP环境搭建与配置 - 图71
增加一行
LAMP环境搭建与配置 - 图72
增加索引
LAMP环境搭建与配置 - 图73
2.修改完成进行测试apache服务,并进行加载
LAMP环境搭建与配置 - 图74
启动服务
LAMP环境搭建与配置 - 图75
有httpd服务占用80即可
LAMP环境搭建与配置 - 图76
3. 测试PHP解析是否正常
LAMP环境搭建与配置 - 图77
也可以通过浏览器访问
LAMP环境搭建与配置 - 图78
4.创建一个php文件
LAMP环境搭建与配置 - 图79
LAMP环境搭建与配置 - 图80
进行访问加指定路径
LAMP环境搭建与配置 - 图81
通过浏览器也可以访问
LAMP环境搭建与配置 - 图82

LAMP httpd配置

任务2 Apache配置

1. 默认虚拟主机

1.修改主配置文件
vim /usr/local/apache2.4/conf/httpd.conf
LAMP环境搭建与配置 - 图83
搜索httpd-vhost,去掉# 不然会访问默认的地址
LAMP环境搭建与配置 - 图84
再修改httpd-vhosts.conf这个文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
LAMP环境搭建与配置 - 图85
进行备份再修改vim httpd-vhosts.conf
LAMP环境搭建与配置 - 图86
最后两段改成这样
LAMP环境搭建与配置 - 图87
# 各个配置的作用
//ServerAdmin指定管理员邮箱,
//DocumentRoot为该虚拟主机站点的根目录,
//ServaerName为网站的域名
//ServerAlias为网站的第二域名 可以写多个,后面用空格隔开
//ErrorLog为站点的错误日志
//CustomLog为站点的访问日志

  1. 创建站点主目录
    mkdir -p /data/zzxroot/zhouzx.com /data/zzxroot/www.123.com
    echo “zhouzx.com” > /data/zzxroot/zhouzx.com/index.html
    echo “123.com” > /data/zzxroot/www.123.com/index.html
    LAMP环境搭建与配置 - 图88
    检查配置及重新加载
    /usr/local/apache2.4/bin/apachectl -t
    /usr/local/apache2.4/bin/apachectl graceful
    LAMP环境搭建与配置 - 图89

3.访问
curl -xlocalhost:80 zhouzx.com
curl -xlocalhost:80 zzx.com
curl -xlocalhost:80 www.123.com
LAMP环境搭建与配置 - 图90
测试curl 一个没有的域名,默认访问
curl -xlocalhost:80 www.abc.com
LAMP环境搭建与配置 - 图91

2. httpd的用户认证

1.进行主配置
LAMP环境搭建与配置 - 图92
1. 插入注释
(1)首先按键盘上的ESC进入命令行模式
(2)再按Ctrl+V进入VISUAL BLOCK模式
(3)利用上下左右键调整需要注释多少行以及行的宽度
(4)再按Shift+i或s进入插入模式
(5)输入代表注释的符号,比如#
(6)再次按ESC键,这时就可完成多行注释(可能需要等上一会,不要着急)
2. 去注释
前三步与加注释相同。
(1)首先按键盘上的ESC进入命令行模式
(2)再按Ctrl+V进入VISUAL BLOCK模式
(3)利用上下左右键调整需要去注释多少行以及行的宽度
(4)再按d即可完成去注释
注释后添加
LAMP环境搭建与配置 - 图93

AllowOverride AuthConfig
AuthName “www.123.com user auth”
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user

LAMP环境搭建与配置 - 图94
检查配置及重新加载
LAMP环境搭建与配置 - 图95
2. 设置用户:zzx密码:0
/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd zzx
LAMP环境搭建与配置 - 图96
LAMP环境搭建与配置 - 图97
修改hosts文件
C:\Windows\System32\drivers\etc\hosts
添加一行 我这里是:
192.168.200.155 www.123.com
打开浏览器 输入网址 www.123.com
LAMP环境搭建与配置 - 图98
LAMP环境搭建与配置 - 图99
LAMP环境搭建与配置 - 图100
用curl访问
curl -xlocalhost:80 -u zzx:0 www.123.com -I
LAMP环境搭建与配置 - 图101
还可以针对单个文件进行认证
LAMP环境搭建与配置 - 图102
添加

AllowOverride AuthConfig
AuthName “www.123.com user auth”
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user

LAMP环境搭建与配置 - 图103
检查配置及重新加载
LAMP环境搭建与配置 - 图104
重新生成一个密码:123
/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd zzx
LAMP环境搭建与配置 - 图105这时是不需要密码的
curl -xlocalhost:80 www.123.com -I
LAMP环境搭建与配置 - 图106
接着我们针对vim admin.php
LAMP环境搭建与配置 - 图107
必须加上-u 用户名和密码即可以访问成功
curl -xlocalhost:80 -u zzx:123 www.123.com/admin.php -I
LAMP环境搭建与配置 - 图108
浏览器访问
LAMP环境搭建与配置 - 图109
LAMP环境搭建与配置 - 图110

3. 域名跳转

1.编辑/usr/local/apache2.4/conf/extra下的vim httpd-vhosts.conf文件
注释后添加
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
LAMP环境搭建与配置 - 图111
LAMP环境搭建与配置 - 图112
添加

RewriteEngine on
rewriteCond %{HTTP_HOST} !^www.123.com$
RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L]

LAMP环境搭建与配置 - 图113
检查配置及重新加载
LAMP环境搭建与配置 - 图114
2.编辑主配置文件vim /usr/local/apache2.4/conf/httpd.conf
去掉注释符
LAMP环境搭建与配置 - 图115
重新加载
LAMP环境搭建与配置 - 图116
查看模块是否放开
/usr/local/apache2.4/bin/apachectl -M|grep -i rewritLAMP环境搭建与配置 - 图117
LAMP环境搭建与配置 - 图118
测试状态码返回301 成功
curl -xlocalhost:80 -I 123.com
LAMP环境搭建与配置 - 图119

4. 配置访问日志

  1. 打开主配置文件,搜索LogFormat可以找到日志文件
    vim /usr/local/apache2.4/conf/httpd.conf
    LAMP环境搭建与配置 - 图120
    LAMP环境搭建与配置 - 图121
    访问日志
    vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    LAMP环境搭建与配置 - 图122
    主要是增加这一行
    CustomLog “logs/123.com-access_log” combined
    LAMP环境搭建与配置 - 图123
    日志格式解读:
    LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
    LogFormat “%h %l %u %t \”%r\” %>s %b” common
    %h为访问网站的IP、
    %l为远程登陆名,字段基本为“-”
    %u 为用户名
    %t 为时间
    %r 为请求动作
    %s 为请求的状态码,写成%>s为最后的状态码
    %b为传输数据的大小
    “%{Referer}i 为referer信息(请求本次地址上一次的地址就为referer),从哪跳转来的,,就显示哪里
    “%{User-Agent}i 为浏览器标识。
    2.检查配置及重新加载
    LAMP环境搭建与配置 - 图124

5. 访问日记不记录静态文件

1.编辑/usr/local/apache2.4/conf/extra下的vim httpd-vhosts.conf文件
先定义一个img环境变量,把常用的静态格式文件全部归类到img当中,后面env=!img 取反, 意思是把img以外的类型文件记录到日志。
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
SetEnvIf RequestURI “..gif$” img
SetEnvIf Request_URI “.
.jpg$” img
SetEnvIf Request_URI “..png$” img
SetEnvIf Request_URI “.
.bmp$” img
SetEnvIf Request_URI “..swf$” img
SetEnvIf Request_URI “.
.js$” img
SetEnvIf Request_URI “.*.css$” img
CustomLog “| /usr/local/apache2.4/bin/rotatelogs -l logs/123
.com-access
%Y%m%d.log 86400” combined env=!img
LAMP环境搭建与配置 - 图125
2. 日志切割测试
LAMP环境搭建与配置 - 图126
生成一个带时间戳的日志即表示日志切割功能实现。
ls /usr/local/apache2.4/logs/
LAMP环境搭建与配置 - 图127
3、静态文件不记录日志 测试
touch /data/zzxroot/www.123.com/zzx.txt
touch /data/zzxroot/www.123.com/zzx.jpg
curl -xlocalhost:80 www.123.com/zzx.txt
curl -xlocalhost:80 www.123.com/zzx.jpg
LAMP环境搭建与配置 - 图128
从日志可以看到,我们访问了txt文件和jpg文件,日志只记录了txt的记录。
LAMP环境搭建与配置 - 图129

6. 静态元素过期时间

  1. 配置vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    添加配置

    ExpiresActive on
    ExpiresByType image/gif “access plus 1 days”
    ExpiresByType image/jpeg “access plus 24 hours”
    ExpiresByType image/png “access plus 24 hours”
    ExpiresByType text/css “now plus 2 hour”
    ExpiresByType application/x-javascript “now plus 2 hours”
    ExpiresByType application/javascript “now plus 2 hours”
    ExpiresByType application/x-shockwave-flash “now plus 2 hours”
    ExpiresDefault “now plus 0 min”

    LAMP环境搭建与配置 - 图130
    检查配置及重新加载
    LAMP环境搭建与配置 - 图131
    LAMP环境搭建与配置 - 图132
    放开这一行注释
    LAMP环境搭建与配置 - 图133
    /usr/local/apache2.4/bin/apachectl -M |grep -i expires
    LAMP环境搭建与配置 - 图134
    2.测试
    访问jpg文件,发现max-age=86400 表示缓存一天
    curl -xlocalhost:80 -I www.123.com/zzx.jpg
    LAMP环境搭建与配置 - 图135
    访问txt 发现 max-age=0 表示没有缓存
    curl -xlocalhost:80 -I www.123.com/zzx.txt
    LAMP环境搭建与配置 - 图136

7. 配置防盗链

  1. 配置vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    注释
    LAMP环境搭建与配置 - 图137
    LAMP环境搭建与配置 - 图138
    添加

    SetEnvIfNoCase Referer “http://www.123.com“ local_ref
    SetEnvIfNoCase Referer “http://123.com“ local_ref
    SetEnvIfNoCase Referer “^$” local_ref

    Order Allow,Deny
    Allow from env=local_ref


    LAMP环境搭建与配置 - 图139
    referer介绍: 从a网站去访问b网站,那么b网站的referer就是a网站的地址。
    LAMP环境搭建与配置 - 图140
    2、测试
    使用-e 定义referer,这个referer一定要以http://开头
    从被允许的网站跳转被允许访问
    LAMP环境搭建与配置 - 图141
    使用非允许的referer 报错403
    LAMP环境搭建与配置 - 图142
    访问html文件可以被访问
    LAMP环境搭建与配置 - 图143

8. 访问控制-Diretory\FileMatch

1.配置vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
访问控制
注释
LAMP环境搭建与配置 - 图144
添加
CustomLog “| /usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400” combined

Order deny,allow
Deny from all
Allow from 192.168.200.155

LAMP环境搭建与配置 - 图145
LAMP环境搭建与配置 - 图146
配置限制文件


Order deny,allow
Deny from all
Allow from 127.0.0.1


2.测试限制目录
创建目录,模拟网站后台
LAMP环境搭建与配置 - 图147
清空日志
LAMP环境搭建与配置 - 图148
LAMP环境搭建与配置 - 图149

10. 访问控制-禁止解析PHP

  1. 配置vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    注释
    LAMP环境搭建与配置 - 图150
    添加

    php_admin_flag engine off

    LAMP环境搭建与配置 - 图151
    2.测试
    LAMP环境搭建与配置 - 图152
    创建目录、模拟网站上传目录
    mkdir /data/zzxroot/www.123.com/upload
    cp /usr/local/apache2.4/htdocs/test.php /data/zzxroot/www.123.com/upload
    curl -xlocalhost:80 www.123.com/upload/test.php
    LAMP环境搭建与配置 - 图153

11.访问控制-user_agent

1.配置vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
注释
LAMP环境搭建与配置 - 图154
添加

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .curl. [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .baidu.com. [NC]
RewriteRule .* - [F]

LAMP环境搭建与配置 - 图155
2.测试
LAMP环境搭建与配置 - 图156
LAMP环境搭建与配置 - 图157
LAMP环境搭建与配置 - 图158
curl的-A选项指定 user_agent。第一个请求, user agent为“curl/7.29.0”匹配了第一个条件,所以会403;第二个请求, user_agent为自定义的“123123”没有匹配任何条件,所以状态码为200。

任务3 PHP配置

1 PHP基础配置

1.查看PHP配置文件所在位置
/usr/local/php/bin/php -i| grep -i “loaded configuration file”
LAMP环境搭建与配置 - 图159
LAMP环境搭建与配置 - 图160
去掉注释符修改地区时间
LAMP环境搭建与配置 - 图161
再一次执行警告就没有了
LAMP环境搭建与配置 - 图162
2.配置
加入函数
LAMP环境搭建与配置 - 图163
disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close phpinfo
LAMP环境搭建与配置 - 图164
重启生效
/usr/local/apache2.4/bin/apachectl graceful
LAMP环境搭建与配置 - 图165

2 日志相关配置

1.修改配置
LAMP环境搭建与配置 - 图166
LAMP环境搭建与配置 - 图167
LAMP环境搭建与配置 - 图168
LAMP环境搭建与配置 - 图169
很难找搜这个error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
LAMP环境搭建与配置 - 图170
LAMP环境搭建与配置 - 图171
2.测试
vim /data/wwwroot/www.123.com/test.php
LAMP环境搭建与配置 - 图172
LAMP环境搭建与配置 - 图173
出现了状态码500 ,说明我们访问的页面是存在错误的,需要查看php 的错误日志
LAMP环境搭建与配置 - 图174
通过日志可以判断是test.php第三行少了分号。
LAMP环境搭建与配置 - 图175

3 配置open_basedir

1.修改配置
vim /usr/local/php/etc/php.ini
LAMP环境搭建与配置 - 图176
2.测试
cp /usr/local/apache2.4/htdocs/test.php /data/zzxroot/zhouzx.com/
LAMP环境搭建与配置 - 图177

4.虚拟主机配置open_basedir

1.配置vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加
php_admin_value open_basedir “/data/zzxroot/www.123.com/:/tmp
/“
起作用的是php_admin_value,它定义了php.ini的参数

LAMP环境搭建与配置 - 图178

任务4 PHP扩展模块安装

1.配置
查看PHP加载的模块
LAMP环境搭建与配置 - 图179
上传并解压
LAMP环境搭建与配置 - 图180
LAMP环境搭建与配置 - 图181
生成configure文件
LAMP环境搭建与配置 - 图182
./configure —with-php-config=/usr/local/php/bin/php-config
LAMP环境搭建与配置 - 图183
make
LAMP环境搭建与配置 - 图184
make install
LAMP环境搭建与配置 - 图185
查看扩展模块所在目录
/usr/local/php/bin/php -i |grep extension_dir
LAMP环境搭建与配置 - 图186
可以看到redis
LAMP环境搭建与配置 - 图187
修改配置文件vim /usr/local/php/etc/php.ini
增加一行配置extension = redis.so,我放在了最后LAMP环境搭建与配置 - 图188
LAMP环境搭建与配置 - 图189
重启httpd服务即可
LAMP环境搭建与配置 - 图190