LAMP环境搭建笔记

6 篇文章 0 订阅
3 篇文章 0 订阅

最近在学习linux,刚好看到lamp服务器搭建这一块,所以写下这篇文章做笔记,方便他人学习和以后自己查阅。

本文所用linux发行版本为ubuntu16.04,apache+mysql+php均使用该版本包管理器源下载(即apt)。


安装apahce

使用以下命令安装apache2(ubuntu已经不再区分mpm-worker、mpm-prefork、mpm-event等软件包了,所以直接安装apache2这个软件包即可)

sudo apt-get install apache2 -y

安装完成之后呢,当然就是要配置apache了,下面的apache配置文件及目录的说明:

  • apache2.conf
    这个是apache2的全局配置文件,这个文件的配置,是不包含具体某个网站的配置指令的。所以,你一般情况不需要修改他。

  • ports.conf
    这个文件是用来配置apache httpd 要监听的IP地址和端口.

  • magic
    该文件的内容,是一些针对mod_mime_magic的配置,也就是针对不同的文件类型的配置。

  • envvars
    envvar 这个文件是关于环境变量的配置,该文件不需要修改

  • conf-available/
    如果你有额外的指令需要配置。那就把配置文件放到该目录下面,需要注意的是该配置文件需要以.conf结尾。建议在命名自己的配置文件时,全部以local-开头,以免和软件包自带的文件相混。该目录下的配置文件可以使用a2enconf和a2disconf命令来开启或者关闭配置

  • conf-enable/
    如果你使用a2enconf命令启用了conf-available下的某个配置文件,那么该配置文件会被连接到conf-enable目录下。和后面要介绍的mods-enable、sites-enabled目录一样,该目录下的文件,都会被全局配置文件apache2.conf读取。

  • mods-available/
    该目录下已经安装的可用模块,雷士上面提到的conf-available目录。有的模块下只有一个.load文件,有的既有.load文件也有.conf文件。.load文件包含的是加载该模块所需要的指令,对应的.conf文件是使用该模块所需要的指令。

  • mods-enable/
    该目录下是已经启用的模块,类似上面提到的conf-available目录。可以使用a2enmod和a2dismod来开启或者关闭模块。

  • sites-available/
    该目录下是可用的虚拟主机(即网站),和mods-available目录类似。

  • sites-enable/
    该目录下是已经启用的虚拟主机,和mods-enable目录类似。a2ensite 和 a2dissites命令来开启或者关闭网站。

需要新建站点的话可以先在/var/www/目录下先建立站点目录(/var/www/该目录是apache安装完之后的默认站点目录)。
建完站点目录之后,切换到/etc/apache2/目录下,该目录的结构在上面我已经有详细的说明了,所以接下来,进入site-available/目录复制 000-default.conf文件(该文件是默认的虚拟主机配置文件)复制完成之后用vim打开修改,配置完成之后使用a2ensite 命令开启虚拟主机配置即可。

下面是关于虚拟主机的配置详解:

  • <VirtualHost></VirtualHost>:定义虚拟主机的关键指令
  • ServerName:定义网站的域名
  • ServerAlias:定义网站的别名
  • DocumentRoot:定义网站的更目录
  • ServerAdmin:定义站长的邮箱地址
  • ServerPath:定义网站路径,一般和Rewrite指令搭配使用
  • <Directory></Directory> 指令是一对,他们中间所包含的指令,仅仅对指定目录有效
  • AllowOverride:该指令是针对.htaccess文件的
  • Order:用来控制访问状态以及Allow和Deny指令的生效顺序
  • Allow from:控制那些主机可以访问(通过设置主机名、IP地址IP范围)
  • Deny from:控制限制主机访问,参考上面的指令
  • ErrorLog:制定错误日志的位置
  • LogLevel:控制日志的详细程度级别。这些级别有:emerg、alert、crit、error、warn、notice、info、debug,每个级别所输出的信息都会包含上一级别的信息
  • ServerSignature:指定服务器生成页面的页脚
  • Alias:这个有点像是linux的Ln指令,即使某个目录不在documentRoot下,也可以通过alias指令设置路径使其可以访问

接下来是apache的性能优化:
第一步我们需要选择正确的MPM,apache提供有三个MPM,分别是prefork、worker、event,这里我个人推荐使用event。关于这三个MPM模块的优缺点我这里就不再细说了,大家可以自己百度谷歌。

下面是apache的配置优化:

1.关闭DNS查询
改配置项位于/etc/apache2/apache2.conf中,默认是Off状态,如果是开启状态,你需要关闭他因为开启这一项的话,每次请求apache都会去获取客户的域名,导致性能上的浪费

2.设置MaxRequesrWorkers
此项需要结合你的网站的访问量来设置,如果量大的话可以适当增大该值,值得一提的是,如果该值超过256,需要设置ServerLimit,且这两项的值为相等的

3.优化KeepAlive
这个指令制定了一段时间内让客户端和服务器保持在同一个连接,我推荐将KeepAliveTimeout改小,比如3秒~

4.开启压缩
此模块位于mods-available/目录下,使用a2enmod命令开启,有兴趣的话可以自行百度谷歌此模块的详细配置,这里就不再累赘了

5.缓存
与此项相关的模块是mod-cache-disk和mod-cache-socache,前者是缓存在磁盘,后者是缓存在内存中,我不太推荐开启这一项,因为缓存这种东西还是通过代码来完成比较还一点。。。

6.隐藏敏感信息
如果在请求的响应头信息中包换了你服务器太多信息显然是不安全的,最好只给请求返回apache,过多的服务器信息会让别有用心的人有机可乘。打开/etc/apache2/conf-enabled/security.conf,修改ServerTokens的值为prod

7.DDoS攻击防范

sudo apt-get install libapache2-mod-evarsive -y

安装此模块,修改配置文件,把注释去掉就OK了

至此,我已经把我所知道掌握的apache优化讲完了,接下来记得执行:

sudo service apache2 restart

配置生成之后,可以使用ab来进行压力测试:

sudo apt-get install apache2-utils -y

安装压力测试软件,完成之后使用

ab -n 20000 -c 200 -r -k 你的站点地址

进行压力测试,其中-n表总共会发出20000个请求,-c表每次会发出200个 -r -k 表无视中间请求出现的异常情况


安装php

关于php的运行有比较常见的五大模式,分别是:

  • cli
  • cgi
  • fast-cgi
  • 以模块的方式嵌入到服务器软件中
  • ISAPI

大家自行百度谷歌哈~
这里我们当然是使用第四种模式咯

sudo apt-get install libapache2-mod-php7.0

安装完之后apache会自动加载此模块,没有的话运行以下命令开启模块:

a2enmod php7.0

我在安装的时候遇到一个问题:apache的MPM被修改成prefork。。。貌似ubuntu收录的php7是非线程安全的。。。有点坑,如果你执意不想用mpm-prefork的话,那么你只能去php官网下载线程安全的安装包或者源码包了~

php这块基本没啥大问题的了,php.ini在/etc/php/7.0/apache2/目录下,自己更具需要配置


安装mysql

sudo apt-get install mysql-server php7.0-mysql -y

安装—-输入密码—-等待—-完成


到此lamp环境搭建完成,愉快的耍起来吧~^_^~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值