LAMP环境的搭建

LAMP环境的搭建
mysql安装
1.上传MySQL压缩包
2.tar -zvxf mysql… //解压MySQL压缩包
3.mv mysql… /usr/local/mysql 移动MySQL包到/usr/local/mysql:
4.useradd -s /sbin/nologin mysql //建立MySQL用户
5.cd /usr/local/mysql/ //进入mysql文件
6.mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql //创建一个存放数据库的文件,并将这个文件的所有这者所属组都设定为MySQL
7…/scripts/mysql_install_db --user=mysql --datadir=/data/mysql //执行一个块脚本,执行后无需自行编译。(-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录)出现错误,进行安装yum install -y perl-Module-Install无法安装,经将yum源移动回来后安装成功。
8…/scripts/mysql_install_db --user=mysql --datadir=/data/mysql //再次执行
9.cp support-files/my-default.cnf /etc/my.cnf //将拷贝文件放到etc下面,会询问是否覆盖,确认覆盖
10.vi /etc/my.cnf //修改配置内容

basedir = /usr/local/mysql

datadir = /data/mysql

port = 3306

server_id = 136

socket = /tmp/mysql.sock

11.cp support-files/mysql.server /etc//init.d/mysqld //拷贝启动脚本
12.vi /etc/init.d/mysqld //修改启动脚本
basedir=/usr/local/mysql
datadir=/data/mysql
13.chkconfig --add mysqld //将mysql加到服务项
14.chkconfig mysqld on //设定开机自启
15.service mysqld start //启动mysql 如果显示是SUCCESS则启动成功
16.ps -ef | grep msyqld //查看它的进程
17.netstat -ltunp | grep 3306 //查看它的端口
apache
18.上传压缩包
19.tar -zxvf tar… | httpd…解压压缩包
20.cd apr-1.6.5 //进入apr
./configure --prefix=/usr/local/apr //编译出make文件**注意是否会有报错如果有报错就进行安装一个依赖包 //除了依赖包可能出现错误意外还有可能出现无法编译的情况,如果出现:

就使用yum将gcc编译器进行安装:yum install -y gcc

  1. yum install -y libtool* //安装libtool依赖包
    22…/configure --prefix=/usr/local/apr //重新启动看是否出错
    23.make &&make install 安装
    24.cd /退出当前目录
    25.cd apr-util-1.6.1 //进入apr另一个文件夹
    26…/configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    27.make && make install //会报错xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
    28.yum install -y expat-devel //安装这个包
    29.make && make install //再次运行make就不会在报错了
    30.cd httpd… //进入httpd…文件中进行httpd的配置
    31…/configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most \执行./configure命令,命令运行结束后会出现报错,和之前的一样会显示缺少一个依赖包。
    32.yum install -y pcre-devel //进行安装这个包
    33…/configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most //再次执行确认报错是否消失
    34.echo $? //查看返回值是否为零
    35.make && make install //安装make !!这个地方可能会出错。
    36.解决方法一:将两个apr文件复制到httpd…文件中的srclib中(复制完成后进如httpd文件后进行make clean清理一下)
    cp -r apr-1.6.5 httpd-2.4.39/srclib/apr
    cp -r apr-util-1.6.1 httpd-2.4.39/srclib/apr-util
    之后再执行make && make install,如果还会出现错误就进行解决方法二
    37.解决方法二:
    ./configure --prefix=/usr/local/apache2.4 --enable-so --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
    38.再次执行make -j4 && make install
    39./usr/local/apache2.4/bin/apachectl -M 查看加载了那些模块。
    安装php
    40.进入src
    41.解压php压缩包
    42.cd进入php…
    43.先行安装一些包

yum install -y libxml2-devel

yum install -y openssl openssl-devel

yum install -y bzip2 bzip2-devel

yum install -y libpng libpng-devel

yum install -y freetype freetype-devel

yum install -y epel-release

yum install -y libmcrypt-devel

44…/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
45.make && make install
46.cp php.ini-production /usr/local/php/etc/php.ini
47.配置httpd支持php
vi /usr/local/apache2.4/conf/httpd.conf //开始进入编辑
//编辑 httpd 的主配置文件
搜索 ServerName,把 ServerName www.example.com:80 前#去掉;

AllowOverride none
Require all denied

改成:

AllowOverride none
Require all granted
//目的允许所有请求访问
搜 索 AddType application/x-gzip .gz .tgz , 在下面添加一行 AddType
application/x-httpd-php .php;

DirectoryIndex index.html

改成:

DirectoryIndex index.html index.php

48./usr/local/apache2.4/bin/apachectl -t //测试文件是否正确,如果正确则它的返回值是Syntax OK
49./usr/local/apache2.4/bin/apachectl start //启动httpd命令
50.netstat -lnp |grep httpd //查看是否启动,如果没有netstat命令就使用这个命令进行安装yum install -y net-tools
tcp6 0 0 :::80 ::😗 LISTEN 98479/httpd
51.curl localhost //除了使用net查看以外还可以使用curl进行查看。

It works!

52.#vi /usr/local/apache2.4/htdocs/1.php //测试呢个否正确解析php <? echo “php 解析正确” ?> //编写一个测试脚本 #curl localhost/1.php php 解析正确 //则PHP解析正确 53.vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //配置虚拟主机文件

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot “/data/wwwroot/www.123.com”
ServerName www.123.com

最后两段编辑为以上内容
54.测试:
mkdir -p /data/wwwroot/aming.com /data/wwwroot/www.123.com
echo “aming.com” > /data/wwwroot/aming.com/index.html
echo “123.com” > /data/wwwroot/www.123.com/index.html
/usr/local/apache2.4/bin/apachectl -t
Syntax OK
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80 www.123.com
123.com
curl -x127.0.0.1:80 www.abc.com
aming.com
55.vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //配置文件:
<VirtualHost *:80>
DocumentRoot “/data/wwwroot/www.123.com”
ServerName www.123.com
<Directory /data/wwwroot/www.123.com>
AllowOverride AuthConfig
AuthName “123.com user auth”
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user


56./usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd aming /设置密码
57./usr/local/apache2.4/bin/apachectl -t
58. /usr/local/apache2.4/bin/apachectl graceful
setenforce 0
59.systemctl stop firewalld
60.配置hosts文件 IP 地址
61.访问网页
域名跳转
62.配置域名跳转:vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost :80>
DocumentRoot “/data/wwwroot/www.123.com”
ServerName www.123.com
serverAlias 123.com
<Directory /data/wwwroot/www.123.com>
AllowOverride AuthConfig
AuthName “123.com user auth”
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user

63./usr/local/apache2.4/bin/apachectl -M|grep -i rewrite
64.vi /usr/local/apache2.4/conf/httpd.conf //搜索 rewrite,把前面#去掉
65./usr/local/apache2.4/bin/apachectl graceful
66./usr/local/apache2.4/bin/apachectl -M |grep -i rewrite : rewrite_module (shared)
67.
68.[root@localhost wwwroot]# curl -xlocalhost:80 123.com -I
HTTP/1.1 301 Moved Permanently
Date: Thu, 19 Nov 2020 01:15:16 GMT
Server: Apache/2.4.39 (Unix) PHP/5.6.30
Location: http://www.123.com/
Content-Type: text/html; charset=iso-8859-1
访问日志
69.vi /usr/local/apache2.4/conf/httpd.conf //这个是日志的配置文件
70.vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //编辑虚拟主机配置文件在其中加入下面的代码:
CustomLog “logs/123.com-access_log” common
71.完成后测试语法并重新加载:
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
setenforce 0
72.curl -xlocalhost:80 123.com -I //再次curl一下
73.tail /usr/local/apache2.4/logs/123.com-access_log //回车后会产生日志记录,可以再次访问网页再回到虚拟机上重新输出日志,会多出两行新的日志。
74.vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //对日志进行限制,
SetEnvIf Request_URI “..gifKaTeX parse error: Can't use function '\.' in math mode at position 45: …Request_URI ".*\̲.̲jpg" image-request
SetEnvIf Request_URI ".
.pngKaTeX parse error: Can't use function '\.' in math mode at position 45: …Request_URI ".*\̲.̲bmp” image-request
SetEnvIf Request_URI “..swfKaTeX parse error: Can't use function '\.' in math mode at position 45: …Request_URI ".*\̲.̲js" image-request
SetEnvIf Request_URI ".
.cssKaTeX parse error: Expected group after '^' at position 1960: …oCase Referer "^̲” local_ref
<filesmatch “.(txt|doc|mp3|zip|rar|jpg|gif)”>
Order Allow,Deny
Allow from env=local_ref


94./usr/local/apache2.4/bin/apachectl -t
95./usr/local/apache2.4/bin/apachectl graceful
96.curl -x127.0.0.1:80 -u aming:aming -I www.123.com/aming.jpg
访问控制
97.vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
</Directory /data/wwwroot/www.123.com/admin>
Order deny,allow
Deny from all
Allow from 127.0.0.1

98.mkdir /data/wwwroot/www.123.com/admin
99.echo “admin” >/data/wwwroot/www.123.com/admin/index.html
100.> /usr/local/apache2.4/logs/123.com-access_20201119.log
101.curl -x192.168.29.138:80 -I www.123.com/admin/index.html
HTTP/1.1 403 Forbidden
102.curl -x127.0.0.1:80 -uaming:aming -I www.123.com/admin/index.html
HTTP/1.1 200 OK
103.tail -l /usr/local/apache2.4/logs/123.com-access_20201119.log
104.将上传的目录直接禁止解析php代码
<Directory /data/wwwroot/www.123.com/upload>
php_admin_flag engine off

105./usr/local/apache2.4/bin/apachectl -t
106./usr/local/apache2.4/bin/apachectl graceful
107.cp /usr/local/apache2.4/htdocs/1.php /data/wwwroot/www.123.com/upload/
108.curl -A “123123” -uaming:aming -I -x127.0.0.1:80 www.123.com/upload/1.php
109.通过限制user_agent发挥防攻击的作用
vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
138./usr/local/php/bin/php -i |grep extension_dir //查看拓展模块存放路径//可以在php.ini中自定义目录
139.ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
140.vi /usr/local/php/etc/php.ini //将下面的代码添加到最后一行
extension = redis.so
141./usr/local/php/bin/php -i |grep redis
redis
142./usr/local/apache2.4/bin/apachectl graceful

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值