LAMP-web平台搭建(Linux+apache+mysql+php)

一、介绍

apache:实现网页共享传输
MySQL:数据存储
PHP:实现页面解析

浏览器仅能解析简单的HTML语言,无法直接解析PHP语言。

二、部署方式

yum 安装

优点:安装部署便捷,快速。
缺点:软件版本固定,且版本较低。

源码安装:

优点:版本可自选,可自定义性强。
缺点:难度大,维护相对困难。

三、环境准备

环境

关闭SELinux和防火墙

安装编译工具gcc、gcc-c++、make等。

yum -y install gcc gcc-c++ make

四、编译安装

1.LAMP依赖

apache
apr和apr-util
pcre
mysql
ncurses
bison和cmake
PHP
openssl和memcache
freetype
mcrypt
libmcrypt+ltdl
mhash
zlib
libpng
jpg和jpeg
...

PHP并不是完全依赖这些包,而实通过这些包才能提供一些功能
所以需要先安装这些包

注:每个源码包安装完成后,确认安装目录下是否生成安装文件(并确定目录是否正确)

注:建议将安装包路径指定为[–prefix = /usr/local/软件名]这种格式

2.安装libxml2

libxml2是一个xml c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT license的免费开源软件。它除了支持C语言版以外,还支持c+±php、pascal、Ruky、Tcl等语言的绑定,能在windows、Linux、Solaris、macOSX等平台上运行,因为很多软件配置文件都是以xml来写的,不安装xml解析器无法读取,读写解析。

安装两个依赖包
yum -y install libxml2-devel python-devel
在这里插入图片描述

进入源码包中./configure --prefix=/usr/local/libxml2/
在这里插入图片描述
检查依赖关系,编译工具,指定安装功能,指定路径等,./configure是编译前准备工具。

确定是否configure成功
在这里插入图片描述
为0则表示刚刚的操作是成功的。

make
在这里插入图片描述
make是将源码包转化为二进制,make转化内容和结果受configure的影响

make install
在这里插入图片描述
将make所产生的二进制文件,按照./configure指定的路径去进行粘贴复制。权限修改,制作链接等。

确认是否安装成功
在这里插入图片描述
查看有没有prifix的目录即可。

3.安装libmcrypt

libmcrypt是加密算法扩展库。支持DES、3DES、RIGNDAEL、Twofish、IDEA、GOST、cast-256、ARCFOUR、SERPENT、SAFER+等算法

同样步骤,解压源码包,进入解压出来的目录
cd libmcrypt
./configure --prefix=/usr/local/libmcrypt/
make
make install

注意,这里同样安装libltdl,同样在Libmcrypt源码包目录中。
cd /libmcrypt-x.x.x/libltdl
./configure --enable-ltdl-install
这里的意思是安装并开启此功能
make
make install

4.安装mhash

mhash是基于离散数学原理的不可逆向的PHP加密方式扩展库,其默认情况下不开启。mhash可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存,如保存密码等。

同样步骤
解压源码包
进入解压源码目录
,/configure
这里不指定安装目录,默认即可。
make
make install

5.安装mcrypt

mcrypt是PHP里面最重要的加密支持扩展库,mcrypt库支持20多种加密算法和8中加密模式

export LD_LIBRARY_PATH=/usr/locoal/libmcrypt/lib:/usr/local/lib
这是添加了一个环境变量,这个变量用于指定libmcrypt和mhash库的位置
在这里插入图片描述
随后再进行编译安装
./config --with-libmcrypt-prefix=/usr/local/libmcrypt
依托于libmcrypt安装包的意思
在这里插入图片描述

如果./configure报错
在这里插入图片描述
报错这个,就是export加的环境变量中给的地址不对,我刚才加的环境变量就有地址错误,所以我重新export一次就好了。

make
make install

6.安装zlib

zlib提供数据库压缩用的函数库,由Jean-loup Gailly与Mark Adler所开发,初版0.9在1995年5月1日发表。zlib使用deflate算法,最初是libpng函数库所写,后来普遍为许多软件所使用,此函数库为自由软件,使用zlib授权

安装方式一致
cd /zlib-x.x.x
./configure
不指定安装路径了
不过需要注意,zlib安装需要修改配置文件,否则无法正常安装。
vim Makefile
在这里插入图片描述
找到这行,再最后加入-fPIC,最后最好就一个空格,以前是版本由问题,32位就不用加,64位需要加。
:wq保存退出
make
make install

7.安装libpng

libpng软件包包含libpng库,这些库被其他程序用于解码png图片

cd /libpng
./configure --prefix=/usr/local/libpng/
make
make install

8.安装jpeg6

jpeg提供用于解码.jpg和.jpeg图片的库文件。
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/include
mkdir -p /usr/local/jpeg6man/man1
此软件不会默认自动创建所需目录,需要手动建立
yum -y install libtool*
cd /jpeg-x.x.x
cp -a /usr/share/libtool/config/config.sub ./
cp -a /usr/share/libtool/config/config.guess ./
jpeg本身由config.sub和config.guess,但是在64位系统中并不好用,所以我们这里用libtool里的。
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
指定目录并开启共享库和静态库
make
make install

9.安装freetype

freetype库是一个完全免费的,高质量的可移植的字体引擎,它提供统一接口来访的多种字体格式文件,支持单色图,反走样位图的渲染。

cd /freetype
./configure --prefix=/usr/local/freetype/
make
make install

10.安装apache

源码包2.4.*版本中默认没有集成apr的依赖包,所以需要提前解决依赖问题
解压apr和apr-util源码包
直接整包复制到httpd源码包中
cp -a apr-1.7.0 httpd-2.4.46/srclib/apr
cp -a apr-util-1.6.1 httpd-2.4.46/srclib/apr-util
复制整个目录并取消版本号到httpd的/srclib下面,./configure回检测

apache默认需要依赖pcre软件,但由于apache软件版本较高,系统预安装的pcre无法使用,需认为手动安装合适版本
cd /pcre-8.x.x
./configure
make
make install

apache加密传输模块mod_ssl,需安装此软件
yum -y install openssl-devel

安装httpd
cd httpd-x.x.x
./configure --prefix=/usr/local/apache --sysconfdir=/usr/local/apache/etc --with-included-arp --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-ssl
在这里插入图片描述
sysconfdir是指定apache配置文件位置,不指定默认在conf目录下, 建议指定。
–with-included-arp指定arp
–enable-so,启用函数文件
–enable-deflate=shared,开启共享库
–enable-ssl,开启ssl模块
–enable-rewrite=shared,开启apache地址重写充能
make
make install

注意:若前面配置zlib时没有指定安装目录,apache配置时不要添加–with-z=/usr/local/zlib参数,–enable-ssl是为了实现https提前设置的参数。

注意:如果报错:xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
yum -y install expat-devel,安装expat-devel即可。

启动apache测试即可
/usr/local/apache/bin/apachectl start

报错提示:
httpd: Could not open configuration file /usr/apache/etc/httpd.conf: No such file or director
说明配置文件地址不对,可以启动脚本指定配置文件位置
./bin/apachectl -f /usr/local/apache/etc/httpd.conf -k start

报错提示:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
这是没有指定端口和地址
打开配置文件httpd.conf
搜索ServerName(大约200行左右)
改为ServerName localhost:80,如果有注释就去掉注释
在这里插入图片描述

验证程序是否成功运行
pa aux | grep httpd
在这里插入图片描述

验证端口是否开启使用
netstat -antp
在这里插入图片描述

浏览器访问验证:
http://服务器IP
在这里插入图片描述
显示这样就是apache在正常工作

/usr/local/httpd/bin/apachectl -t
可以检查配置文件httpd.conf的语法错误

11.安装ncurses(MYSQL)

ncurses提供一个字符终端处理库,包括面板和菜单。它提供了以涛控制光标,建立窗口,改变前景颜色以及处理鼠标操作的函数,使用户在字符终端下编写应用程序时先过了那些恼人的底层机制。简而言之,他是一个可以使应用程序直接控制终端屏幕现实的函数库。

yum -y install ncurses-devel
ncurses的依赖包
cd /ncurses-x.x
./configure --with-shared --without-debug --without-ada --enable-overwrite
make && make install
这里使make后马上make install的意思。
不安装ncurses,编译MySQL会报错。

12.安装cmake

MySQL在5.5以后,不再使用./configure工具,而实使用cmake工具进行编译安装。bison是一个自由软件,用户自动生成语法分析器程序,可用于所有常见系统。

我们这里直接yum就行
yum -y install cmake bison

13.安装MySQL

useradd -r -s /sbin/nologin mysql
创建一个mysql系统用户,不登陆。只为了运行mysql
cd /mysql-x.x.x
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARASETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_USER=mysql -DMYSQL_TCP_PORT=3306
make
make install

cmake选项详解
-DCMAKE_INSTALL_PREFIX=/use/local/mysql
指定安装位置
-DMYSQL_UNIX_ADDR=/tmp/mysql.scok
指定mysql的socket套接字文件位置
-DEXTAR_CHARSET=all
扩展字符支持
DDEFAULT_CHARSET=utf8
默认字符集
DDEFAULT_COLLATION=utf8_general_ci
默认字符校对
DWITH_MYISAM_STORAGE_ENGINE=1
安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
安装innodb存储引擎
-DWITH_MEMORY_STOAGE_ENGINE=1
安装memory存储引擎
-DWITH_READLINE=1
支持readline库
-DENABLED_LOCAL_INFILE=1
启用加载本地数据
-DMYSQL_USER=mysql
指定mysql运行用户
-DMYSQL_TCP_PORT=3306
指定mysql端口

注意:MySQL安装后需调整相应参数才能运行

a.修改MySQL目录的用户归属
cd /usr/local/mysql/
chown -R root .
chown -R mysql data

b.生成配置文件,并初始化授权表
cp -a /lamp/mysql-x.x.x/support-files/my-medium.cnf /etc/my.cnf
复制mysql配置文件到指定位置,覆盖掉系统自带文件
cd /usr/local/mysql
./script/mysql_install_db --user=mysql
创建数据库授权表,初始化数据库,相当于安装完操作系统后的引导设置(添加第一个用户)

错误提示:FATAL ERROR:could not find./bin/my_print_default
mysql_install_db初始化调用的文件是相对路径,路径不在/usr/local/mysql时,无法调用my_print_default文件并初始化成功的。

c.启动MySQL服务
用原本的源代码方式去使用和启动mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
启动并用mysql用户后台运行mysql

d.设定MySQL密码
/usr/local/mysql/bin/mysqladmin -u root -password lrq3547
如果报错则直接登录MySQL改密码,这时候是没有密码的状态
#/usr/local/mysql/bin/mysql -u root -p
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON . TO root@“%” IDENTIFIED BY “123456”;
mysql> update user set Password = password(‘123456’) where User=‘root’;
mysql> flush privileges;
mysql> exit;

e.测试登录MySQL
/usr/local/mysql/bin/mysql -u root -p

14.安装PHP

cd /php-x.x.x
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc/ --with-apx52=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-mcrypt=/usr/local/libmcrypt --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all --enable-soap --enable-sockerts --with-pdo-mysql=/usr/local/mysql --with-gd --without-pear
make
make install

错误提示:遇到缺失 No package ‘sqlite3’ found
yum -y install sqlite-devel

错误提示:出现No package ‘oniguruma‘ found
在’–enable-mbstring’参数后添加’–disable-mbregex’参数,意为不使用mbstring的正则功能,不再需要oniguruma库。
或者使用源码安装oniguruma库
./configure --prefix=/usr --libdir=/lib64

选项解析
–with-xxx-dir=…
指定开启支持的依赖包位置
–with-mbstring=all
支持多字节,支付穿
–with-gd
启用gd库
–with-pdo-mysql=/…
启动mysql的pdo模块支持
–enable-soap
支持soap服务
–with-pear
不安装pear(安装pear需联网)
–enable-sockets
支持套接字

PHP安装后需要调整相应配置文件和参数才能正常运行

a.生成PHP配置文件
mkdir /usr/local/php/etc
目录原本不存在
cp /usr/lamp/php-7.x.x/php.ini-production /usr/local/php/etc/php.ini

b.修改apache配置文件,使其识别*.php文件,并能通过php模块调用php进行页面解析
vim /usr/local/apache/etc/httpd.conf
添加以下两句
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
在这里插入图片描述
重启apache
/usr/local/apache/bin/apachectl restart

c.测试php网页是否能够正常解析(apache和php连通性)
vim /usr/local/apache/htdocs/test.php

<?php
phpinfo();
?>

通过浏览器访问:http://apache服务器地址/test.php

15.为PHP安装openssl模块

模块需通过PHP本身使用,所以后安装。

openssl是一个强大的安全套接字层密码库,囊括主要的密码算法,常用的密钥和证书封装管理功能及ssl协议,并提供丰富的应用程序供测试或其他目的使用。
cd /php-x.x.x/ext/openssl
mv config0.m4 config.m4
/usr/local/php/bin/phpize
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
make
make install

16.为PHP安装memcache模块

memcache是一个高性能的分布式内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单说来就是将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。

我这里是zip包,所以用unzip解包
unzip pecl-memcache-phpx.zip
cd pecl-memcache-phpx.x
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

17.修改php配置文件,使其识别并调用openssl和memcache两个模块。

vim /usr/local/php/etc/php.ini

extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20151012/”
取消注释,并添加以上目录(此路径来自模块安装命令的结果),此目录在make install完之后有提示
extension = “openssl.so”;
extension = “memcache.so”;
添加以上两个库的调用

重启apache,刷新phpinfo页面,并查看是否有两个新增模块。

18.安装memcache服务

安装了memcache模块,但是本身软件是没有安装的,而openssl是默认安装的。
yum -y install libevent-devel
先安装依赖
cd /memcachedx.x.x
./configure --prefix=/usr/local/memcached
make
make install

useradd -r -s /sbin/nologin memcache
添加用户,用作运行memcache服务
/usr/local/memcached/bin/memcached -u memcached &
启动服务,后台运行 -u指定用户

netstat anpt | grep 11211
检查端口是否开启,并监听11211端口

19.安装phpMyadmin(能成功就完成)

phpMyAdmin是一个以PHP为基础,以web-Base方式架构在网站主机上的MySQL数据库管理工具,让管理者可用web接口管理MySQL数据库
cp -a /phpMyAdmin -x.x /usr/local/apache/htdocs/phpmyadmin
cd /usr/local/apache/htdocs/phpmyadmin
ap -a config.sample.inc.php config.inc.php
vim config.inc.php

$cfg['Server'][$i]['auth_type'] = 'cookie';
$cfg['Server'][$i]['auth_type'] = 'http';
设置auth_type为http,即设置HTTP身份认证模式(新增即可)

http://apache服务器地址/phpmyadmin/index.php 用户名密码为数据库账号密码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值