一、定义及组成
LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写,具体内容如下:
LINUX操作系统
Apache,网页服务器
MySQL或MariaDB或数据库服务器
Perl或Python或PHP或脚本语言
二、搭建部署
本例将采用LINUX+Apache+MySQL+PHP搭建
注意:
LAMP搭建顺序对于Apache服务及MySQL两者之间没有要求,但是PHP一定是最后安装的,若你首先安装PHP,那么在连接数据库和web服务时,会产生一堆error。
(1)搭建web服务
所需软件包:apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz、httpd-2.4.29.tar.bz2
将上述三个软件包传至/opt目录下
[root@localhost ~]# cd /opt //进入opt目录中查看是否上传成功
[root@localhost opt]# ll
total 8020
-rw-r--r--. 1 root root 1071074 Sep 29 02:00 apr-1.6.2.tar.gz
-rw-r--r--. 1 root root 565507 Sep 29 02:00 apr-util-1.6.0.tar.gz
-rw-r--r--. 1 root root 6567926 Sep 29 02:00 httpd-2.4.29.tar.bz2
解压三个软件包
[root@localhost opt]# tar xf apr-1.6.2.tar.gz
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2
[root@localhost opt]# ll //再次查看,此时已完成解压
total 8032
drwxr-xr-x. 27 1001 1001 4096 Jun 9 2017 apr-1.6.2
-rw-r--r--. 1 root root 1071074 Sep 29 02:00 apr-1.6.2.tar.gz
drwxr-xr-x. 20 lhr lhr 4096 May 3 2017 apr-util-1.6.0
-rw-r--r--. 1 root root 565507 Sep 29 02:00 apr-util-1.6.0.tar.gz
drwxr-xr-x. 11 501 games 4096 Oct 17 2017 httpd-2.4.29
-rw-r--r--. 1 root root 6567926 Sep 29 02:00 httpd-2.4.29.tar.bz2
我们需要将两个apr开头的目录传至httpd-2.4.29的srclib源码目录中
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
接下来我们需要安装一些Apache所需要的环境
[root@localhost opt]# yum -y install \
> gcc \
> gcc-c++ \ //gcc与gcc-cc++为编译器
> make \ //转换成二进制文件的编译器
> pcre-devel \ //支持正则表达式
> expat-devel \
> perl
进入httpd-2.4.29目录下,准备配置模块(configure为httpd-2.4.29目录下的脚本文件)
[root@localhost opt]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \ //指定安装目录
--enable-so \ //启用核心功能模块
--enable-rewrite \ //启用网页地址重写功能
--enable-charset-lite \ //启动字符集支持
--enable-cgi //启用 CGI 脚本程序支持(通用网关接口缩写)
编译及安装
make编译成二进制文件,make install为安装编译后的二进制文件
make && make install
PS:三大文件
[root@localhost conf]# cd /usr/local/httpd/conf/
[root@localhost conf]# ll
-rw-r--r--. 1 root root 18401 Sep 29 02:32 httpd.conf //主配置文件
[root@localhost bin]# cd /usr/local/httpd/bin/
[root@localhost bin]# ll
-rwxr-xr-x. 1 root root 3431 Sep 29 02:28 apachectl //启动脚本,此目录下余下的文件皆为命令文件,不做展示
优化执行路径
[root@localhost bin]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
1)将启动脚本添加到service管理中
[root@localhost bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //将启动脚本拷贝至启动项中并且重命名
[root@localhost bin]# vim /etc/init.d/httpd //在这个文件中添加以下两行
# chkconfig: 35 85 21 //3和5级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server
[root@localhost init.d]# chkconfig --add httpd //将httpd脚本添加至启动列表中
[root@localhost init.d]# chkconfig --list //查看启动列表
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off //只有在3和5级别是启动的
chkconfig --level 35 httpd on //开机自启,等同于下面的systemctl enable httpd
2)建立httpd.service 配置文件添加系统给服务
[root@localhost ~]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
[root@localhost system]# systemctl start httpd.service //开启httpd服务
[root@localhost system]# systemctl enable httpd.service //开机自启
[root@localhost system]# systemctl is-enabled httpd.service //查看自启状态
以上是两种方法,可选其一。
然后我们去修改配置文件
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName www.lovechina.com:80 //将注释的#号去掉,保存退出
[root@localhost ~]# systemctl restart httpd //重启httpd服务
[root@localhost ~]# vi /usr/local/httpd/htdocs/index.html //htdocs目录下的index.html是首页
We love China! //显示内容自定义
现在就可以去浏览器里做测试了,记得关闭核心防护及防火墙,以下是我的测试结果