LAMP环境搭建
文章目录
1、LAMP是什么?
LAMP是协同工作的一整套系统和相关软件,能够提供动态Web站点服务以及应用开发环境,是目前最为成熟也是比较传统的一种企业网站应用模式。
LAMP 环境搭建指的是在 Linux 操作系统中分别安装 Apache 网页服务器、MySQL 数据库服务器和 PHP 开发服务器,以及一些对应的扩展软件。
2、为什么需要LAMP?
手动逐个编译安装各个组件,需要输入各种命令,且有可能会中途出错。
对于想要成功搭建 LAMP 建站环境来说,可以节约大量时间和精力。
3、LAMP有什么优点?
LAMP 环境是当前极为流行的搭建动态网站的开源软件系统,拥有良好的稳定性及兼容性。而且随着开源软件的蓬勃发展,越来越多的企业和个人选择在 LAMP 开发平台上搭建自己的网站。
主要体现在以下五个方面:
(1)成本低廉: 开源,可快速获得免费使用;
(2)可定制: 拥有大量的额外组件和扩展功能模块,可以根据需要定制或者自行开发添加新功能;
(3)易于开发: 代码简洁,与HTML语言结合度高,容易修改网页代码;
(4)方便易用: PHP、Perl属于解释性语言,开发的程序不需要编译,可以直接移植使用;
(5)安全和稳定: 开源优势,发现问题能够很快解决。
4、各组件的主要作用:
(平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。
(前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。
(后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。
(中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。
5、LAMP环境搭建的前期准备:
(1) 搭建方式:采用源码包方式搭建 LAMP 环境。
我们知道,如果我们安装的是应用服务软件,这个软件是给外网用户访问和使用的,那么应该使用源码包安装,因为源码包安装的软件经过了本机编译,性能更好。
(2) 获取源码包:
软件包 | 说 明 | 下载地址 |
---|---|---|
httpd-2.4.7.tar.gz | Apache 包 | http://www.apache.org/ |
mysql-5.5.23.tar.gz | MySQL数据库 | http://dev.mysql.com/downloads/ |
php-5.4.25.tar.gz | PHP语言 | http://www.php.net/downloads.php |
phpMyAdmin-4.1.4-all-languages.iar.gz | Web方式的MySQL管理工具 | http://www.phpmyadmin.com/ |
libxml2_2.9.1.tar.gz | 用来解析XML文档的函数库 | http://www.linuxfromscratch.org/blfs/view/svn/general/libxml2.html |
libmerypt-2.5.8.tar.gz | 加密算法扩展库 | http://prdownloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?use_mirror=peterhost |
mhash-0.9.9.9.tar.gz | 加密算法扩展库 | http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/ |
mcrypt-2-6.8-tar.gz | 加密算法扩展库 | http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/ |
zlib-1.2.3.tar.gz | 数据压缩函数库 | http://www.zlib.net/ |
gd-2.0.35.tar.gz | PHP处理用形的扩展库 | https://bitbucket.org/libgd/gd-libgd/downloads |
freetype-2.3.5-tar-gz | 字体引擎库 | http://download.savannah.gnu.org/releases/freetype/ |
libpng-1.2.31.tar.gz | 用于解码.png格式的图片 | ftp://ftp.simplesystems.org/pub/libpng/png/src/ |
jpegsrc.v6b.tar.gz | 用于解码.jpg和.jpeg格式的图片 | http://www.ijg.org/files/jpegsrc.v6b.tar.gz |
apr-1.4.6.tar.gz | Apache支持镆块 | http://archive.apache.org/dist/apr/ |
apr-util-1.4.1.tar.gz | Apache支持模块 | http://archive.apache.org/dist/apr/ |
pcre-8.34.tar.gz | Apache支持模块,使Apache支持pcre正则表达式规则 | http://sourceforge.net/projects/pcre/files/pcre/8.34/pcre-8.34.tar.gz/stats/map |
ncurses-5.9.tar.gz | 使应用程序直接控制终端屏幕显示的函数库 | http://ftp.gnu.org/pub/gnu/ncurses/ |
memcache-3.0.8.tgz | memcache函数库(客户端) | http://pecl.php.net/package/memcache |
memcached-1.4.17.tar.gz | memcached服务器端 | http://memcached.org/ |
(3) 源码快捷获取:网盘分享
由于自己一个一个的去获取源码比较麻烦且浪费时间,这里博主良心的为大家准备了源码。
百度连接及提取码:
链接:https://pan.baidu.com/s/1Kc-cUrUJlM9Lk3ZbfYaIrw
提取码:swl0
下载下来后有LAMP搭建的源码包及相关代码;
(4) 把软件包传送到Linux服务器上:
我们要把下好的软件包从win10上拖到Linux上,也可以利用小工具上传,这里我们直接拖拽更简单;
这里先亮亮图,具体操作在后面的代码;
6、LAMP平台搭建:
(1)安装顺序:
Linux系统——Apache服务器——Mysql数据库——PHP环境
(PHP一般放在最后,其他的没有严格要求)
(2)安装Linux系统,可以参考下面这篇博客,只需要把磁盘,处理器内核及内存改下即可;
https://blog.csdn.net/weixin_53060366/article/details/118977419?spm=1001.2014.3001.5502
注意事项:
Linux系统安装时,磁盘要不小于60G,内存大于等于4G,处理器内核最好大于4个。
这里注意:你的虚拟机处理器内核不能大于真机的处理器内核;
真机处理器内核在任务管理器中查看;
(3)关闭防火墙和selinux:
[root@localhost ~]#systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]#setenforce 0 #关闭selinux
(4)安装Apache服务器软件:
1、上传软件压缩包
[root@localhost ~]#cd /opt #cd到/opt目录下
[root@localhost opt]#ls
rh
[root@localhost opt]#rm -rf * #清空/opt目录
#接下来把软件压缩包拖进来
[root@localhost opt]#ls
apr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 php-5.6.11.tar.bz2
2、安装Apache:
[root@localhost opt]#tar -zxf apr-1.6.2.tar.gz #解压文件
[root@localhost opt]#tar -zxf apr-util-1.6.0.tar.gz
[root@localhost opt]#tar -jxf httpd-2.4.29.tar.bz2
[root@localhost opt]#ls
apr-1.6.2 apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
apr-1.6.2.tar.gz Discuz_X2.5_SC_UTF8.zip mysql-5.6.26.tar.gz
apr-util-1.6.0 httpd-2.4.29 php-5.6.11.tar.bz2
[root@localhost opt]#cd httpd-2.4.29/
[root@localhost httpd-2.4.29]#ls
ABOUT_APACHE buildconf httpd.dsp libhttpd.mak README.cmake
acinclude.m4 CHANGES httpd.mak LICENSE README.platforms
Apache-apr2.dsw CMakeLists.txt httpd.spec Makefile.in ROADMAP
Apache.dsw config.layout include Makefile.win server
apache_probes.d configure INSTALL modules srclib
ap.d configure.in InstallBin.dsp NOTICE support
build docs LAYOUT NWGNUmakefile test
BuildAll.dsp emacs-style libhttpd.dep os VERSIONING
BuildBin.dsp httpd.dep libhttpd.dsp README
#移动并改名apr相关文件并改名
[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
#安装一下编译器,perl的接口开发包,用于支持网站解析HTML、XML文件
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
[root@localhost opt]#cd httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
#进行make编译
[root@localhost httpd-2.4.29]#make && make install -j6
#优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
[root@localhost httpd-2.4.29]#ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@localhost httpd-2.4.29]#ln -s /usr/local/httpd/bin/* /usr/local/bin/
#便于service管理
[root@localhost httpd-2.4.29]#cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.4.29]#vim /etc/init.d/httpd #将下面两个注释信息放进去
# chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server
[root@localhost httpd-2.4.29]#chkconfig --add httpd #将httpd加入到SERVICE管理器
[root@localhost httpd-2.4.29]#vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.111.128:80 #第52行
ServerName www.apple.com:80 #域名第197行
#检查语法
[root@localhost httpd-2.4.29]#httpd -t
Syntax OK
[root@localhost httpd-2.4.29]#service httpd start #开启httpd服务
[root@localhost httpd-2.4.29]#netstat -anpt | grep 80 #查看80端口
tcp 0 0 192.168.111.128:80 0.0.0.0:* LISTEN 84221/httpd
测试一下,看看Apache服务是否安装成功:
上面的文字还可以修改,配置文件在 /usr/local/httpd/htdocs/ 下
#cd到修改HTML页面的文件
[root@localhost srclib]#cd /usr/local/httpd/htdocs/
[root@localhost htdocs]#ls
index.html
#下面HTML最好不要写中文,会乱码
[root@localhost htdocs]#vim index.html
<html><body><h1>good good study,day day up!</h1></body></html>
(5)安装MySQL服务
提供持久化存储
#安装相应的软件包
[root@localhost htdocs]#yum install -y ncurses-devel autoconf cmake
#cd 到/opt下解MySQL压缩包
[root@localhost htdocs]#cd /opt
#解压数据库相关包
[root@localhost opt]#tar -zxf mysql-5.6.26.tar.gz
[root@localhost opt]#ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 php-5.6.11.tar.bz2
Discuz_X2.5_SC_UTF8.zip mysql-5.6.26
[root@localhost opt]#cd mysql-5.6.26/
[root@localhost mysql-5.6.26]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
[root@localhost mysql-5.6.26]#make && make install -j6
... 这里要经过漫长的等待
[root@localhost mysql-5.6.26]#cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@localhost mysql-5.6.26]#cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6.26]#chmod 755 /etc/init.d/mysqld
[root@localhost mysql-5.6.26]#chkconfig --add /etc/init.d/mysqld
[root@localhost mysql-5.6.26]#chkconfig mysqld --level 35 on
#设置环境变量,申明/宣告mysql命令便于系统识别
[root@localhost mysql-5.6.26]#echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.6.26]#
[root@localhost mysql-5.6.26]#source /etc/profile
[root@localhost mysql-5.6.26]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
#创建普通用户管理mysql
[root@localhost mysql-5.6.26]#useradd -s /sbin/nologin mysql
#更改属主/和所属组
[root@localhost mysql-5.6.26]#chown -R mysql:mysql /usr/local/mysql/
#初始化数据库
[root@localhost mysql-5.6.26]#/usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \
> --datadir=/home/mysql
[root@localhost mysql-5.6.26]#vim /etc/init.d/mysqld
#46-47行
basedir=/usr/local/mysql
datadir=/home/mysql
[root@localhost mysql-5.6.26]#service mysqld start
Starting MySQL.. SUCCESS!
[root@localhost mysql-5.6.26]#netstat -anpt | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 99772/mysqld
#
[root@localhost mysql-5.6.26]#mysqladmin -u root -p password "root"
#这里回车即可
(6)安装PHP服务:
php 处理动态请求,在此处他是一个后台的代码程序,不是一个服务(所以不需要启动脚本)
#cd 到/opt目录下
[root@localhost mysql-5.6.26]#cd /opt
#
[root@localhost opt]#yum -y install \
> gd \
> libpng \
> libpng-devel \
> pcre \
> pcre-devel \
> libxml2-devel \
> libjpeg-devel
#解压相关文件
[root@localhost opt]#tar -jxf php-5.6.11.tar.bz2
[root@localhost opt]#ls
apr-1.6.2.tar.gz httpd-2.4.29 mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 php-5.6.11
Discuz_X2.5_SC_UTF8.zip mysql-5.6.26 php-5.6.11.tar.bz2
[root@localhost opt]#cd php-5.6.11/
[root@localhost php-5.6.11]#./configure \
> --prefix=/usr/local/php5 \
> --with-gd \
> --with-zlib \
> --with-apxs2=/usr/local/httpd/bin/apxs \
> --with-mysql=/usr/local/mysql \
> --with-config-file-path=/usr/local/php5 \
> --enable-mbstring
[root@localhost php-5.6.11]#make && make install -j6
[root@localhost php-5.6.11]#cp php.ini-development /usr/local/php5/php.ini
#优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
[root@localhost php-5.6.11]#ln -s /usr/local/php5/bin/* /usr/local/bin/
#修改Apache配置文件让Apache支持PHP
[root@localhost php-5.6.11]#vim /etc/httpd.conf
#添加index.php
255 <IfModule dir_module>
256 DirectoryIndex index.html index.php
257 </IfModule>
#在393行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
[root@localhost php-5.6.11]#vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
#重启服务
[root@localhost php-5.6.11]#service httpd stop
[root@localhost php-5.6.11]#service httpd start
接下来在网页测试:http://192.168.111.128/index.php
(7)安装论坛:
#进入数据库,创建一个数据库
[root@localhost php-5.6.11]#mysql -u root -p
Enter password:
mysql> CREATE DATABASE swl; #创建数据库swl
Query OK, 1 row affected (0.00 sec)
mysql> GRANT all ON swl.* TO 'swluser'@'%' IDENTIFIED BY '1234'; #把swl数据库里面所有表的权限授予给swluser,并设置密码
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; #刷新数据库
Query OK, 0 rows affected (0.00 sec)
mysql> show databases; #查看数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| swl |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> quit #退出
Bye
[root@localhost mysql-5.6.26]#cd /opt
#解压相关文件
[root@localhost opt]#unzip Discuz_X2.5_SC_UTF8.zip -d /opt/dis
[root@localhost opt]#cd dis
[root@localhost dis]#cp -r upload/ /usr/local/httpd/htdocs/swl
[root@localhost dis]#cd /usr/local/httpd/htdocs/swl
这时候我们去网页看看:http://192.168.111.128/swl
因为swl目录下的文件都是 root属主,root所属组,所以上面显示红叉叉。
这里我们要改下文件属主,如下所示:
[root@localhost swl]#chown -R daemon ./config
[root@localhost swl]#chown -R daemon ./data
[root@localhost swl]#chown -R daemon ./uc_client
[root@localhost swl]#chown -R daemon ./uc_server/data
到这里,LAMP实验成功完成,有不会的小伙伴可以多看几遍哦,耐心做实验,才能体会其中的乐趣。
总结:
1、实验要理清思路,按照步骤一步一步走,耐心仔细,理解每一步的作用,相信你一定有超大的收获。
2、注意实验中的易错点,像做软连接,改文件内容等,一定要细心仔细,不可马虎。
3、最重要的还是自己动手做实验,光看看收获不大,只有自己尝试了才能体会其中的快乐,这样记忆也深刻。
4、好好学习,好好生活。。。come on!
靓仔,喜欢的话,别忘点赞评论哦!