LAMP httpd+mysql+php 环境安装及配置
一、LAMP介绍
LAMP指的 Linux(操作系统)、ApacheHTTP 服务器,MySQL(有时也指MariaDB,数据库软件) 和 PHP(有时也是指Perl或Python) 的第一个字母,一般用来建立 web 应用平台。
虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的免费和开源,这个组合开始流行(大多数Linux 发行版本捆绑了这些软件)。当一起使用的时候,它们表现的像一个具有活力的解决方案包。其他的方案包有苹果的WebObjects(最初是应用服务器),Java/J2EE和微软的 .NET 架构。
本文采用的软件版本:MySQL-5.6.39、Apache-2.4.27、PHP-7.0.27
二、MySQL部分
关于 MySQL 安装及配置部分,详情见 MySQL 二进制免编译安装
三、安装 Apache
Apache HTTP Server(简称Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。Apache HTTP 服务器是一个模块化的服务器,源于 NCSAhttpd 服务器,经过多次修改,成为世界使用排名第一的 Web 服务器软件。
与 LNMP 环境中的 PHP 不同,LAMP 中的 PHP 是作为 Apache 的一个模块存在,它们两个必须安装在一台服务器上,且 PHP 需要安装在 Apache 之后。
Apache 2.4 相较于之前的版本,需要手动编译安装 apr 和 apr-util 包。
1)、下载相关的包
cd /usr/local/src
apr:
wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.2.tar.gz
apr-util:
wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.0.tar.gz
apaceh2.4
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.27.tar.gz
如果不能下载,则是版本更新所致。
2)、解压
tar zxf apr-1.6.2.tar.gz
tar zxf apr-util-1.6.0.tar.gz
tar zxf httpd-2.4.27.tar.gz
3)、安装 apr
cd apr-1.6.2
./configure --prefix=/usr/local/apr
make && make install
4)、安装 apr-util
cd ../apr-util-1.6.0
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
报错:
make[1]: *** [xml/apr_xml.lo] 错误 1
make[1]: Leaving directory `/usr/local/src/apr-util-1.6.0'
make: *** [all-recursive] 错误 1
解决方法:
yum install -y expat-devel
5)、安装 httpd
cd ../httpd-2.4.27
./configure --prefix=/usr/local/apache24 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=mots
make && make install
报错:
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
解决方法:
yum install -y pcre pcre-devel
四、安装 PHP
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
官网地址:http://php.net/downloads.php
将下载好的 PHP 的源码包解压缩:
cd /usr/local/src/
tar zxf php-7.0.27.tar.gz
1)、编译安装:
cd php-7.0.27
./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache24/bin/apxs --with-config-file-path=/usr/local/php7/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --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 --with-gettext --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --enable-bcmath
make && make install
2)、问题报错
报错:
configure: error: jpeglib.h not found.
解决:
yum install -y libjpeg libjpeg-devel
报错:
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决:
yum install -y epel-release
yum install -y libmcrypt-devel
3)、复制配置文件
cp php.ini-production /usr/local/php7/etc/php.ini
五、配置 httpd 支持 PHP
1)、修改 httpd 主配置文件
vim /usr/local/apache24/conf/httpd.conf
找到ServerName 部分,取消如下注释:
ServerName www.example.com 80
然后是httpd的访问控制部分:
2.2版本这样修改:
# 找到
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
# 改为
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
2.4版本的这样修改:
# 找到
AllowOverride none
Require all denied
# 改为
AllowOverride none
Require all granted
解析PHP部分,找到如下内容:
AddType application/x-gzip .gz .tgz
# 在后面添加
AddType application/x-httpd-php .php
定义PHP服务的index,找到如下内容:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
# 修改为如下内容:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
检查配置文件是否有语法错误,然后启动 httpd 服务:
/usr/local/apache24/bin/apachectl -t
Syntax OK
/usr/local/apache24/bin/apachectl start
查看是否启动成功:
netstat -lnpt | grep httpd
#返回如下信息则成功:
tcp 0 0 :::80 :::* LISTEN 7667/httpd
2)、测试是否正确解析php
vim /usr/local/apache24/htdocs/1.php
添加如下内容:
<?php
echo "php解析正常";
?>
保存后,继续测试:
curl localhost/1.php
看是否能看到如下信息:
php解析正常
也可以通过修改物理机host文件,打开浏览器访问。
六、httpd 开机启动
vim /etc/rc.d/rc.local
添加如下配置:
/usr/local/apache24/bin/apachectl start