Linux运维知识之Linux下源码安装LAMP(CentOS 6.8 + Apache2.4 + MySQL5.5 + PHP7)环境
小标 2018-11-07 来源 : 阅读 947 评论 0

摘要:本文主要向大家介绍了Linux运维知识之Linux下源码安装LAMP(CentOS 6.8 + Apache2.4 + MySQL5.5 + PHP7)环境,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之Linux下源码安装LAMP(CentOS 6.8 + Apache2.4 + MySQL5.5 + PHP7)环境,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

一、简介

PHP已经走过了20年的历史,PHP7对于上一版本的PHP5.*,在性能方面有了跨越式的提升,当然也有一些新增的特性和改变,具体大家可以参考网上更为详细的相关资料文档。
   

二、系统环境

系统平台:CentOS release 6.8 (Final)

Apache版本:httpd-2.4.6.tar.gz

MySQL 版本:mysql-5.5.53.tar.gz

PHP版本:php-7.1.0.tar.gz

三、安装前准备

1、库文件准备

在安装PHP之前,应先安装PHP需要的最新版本库文件,例如libxml2、libmcrypt以及GD2库等文件。安装GD2库是为了让PHP支持GIF、PNG和JPEG等图片格式,所以在安装GD2库之前还要先安装最新的zlib、libpng、freetype和jpegsrc等库文件。而且中间还会穿插安装一些软件,读者可以按照本节提供的顺序安装。

autoconf-2.69.tar.gz

freetype-2.3.5.tar.gz

libgd-2.1.0.tar.gz

jpegsrc.v7.tar.gz

libmcrypt-2.5.8.tar.gz

libpng-1.2.31.tar.gz

libxml2-2.7.8.tar.gz

zlib-1.2.7.tar.gz

apr-1.5.2.tar.gz

apr-util-1.3.8.tar.gz

pcre-8.32.tar.gz

curl-7.52.1.tar.gz

2、安装系统所需要的相关库文件

 如果没有安装则用 yum

# yum -y install make gcc gcc-c++ libaio

3、卸载默认的低版本环境

目前发行的Linux操作系统,如果选择默认全部安装,就已经安装好了LAMP环境,但是相对版本都比较低。

a. 卸载Apache

# rpm -qa |grep httpd

说明:检查是否已经安装了httpd软件包


# rpm -e httpd-2.2.3-63.el5.centos  --nodeps

说明:卸载软件包, --nodeps 如果有依赖关系,也强制卸载

# rm -rf /etc/httpd

说明:到原来的apache安装目录下,将其所有的安装目录和文件都删掉

b. 卸载Mysql

# rpm -qa | grep mysql

说明:卸载mysql

c. 卸载Php

# rpm -qa | grep php

说明:卸载PHP

4、关闭selinux,清空防火墙规则

5、使用ssh shell将windows下的13个源码包上传到/usr/local/src 目录下

6、将*.tar.gz源码包逐一解压


四、安装LAMP

1、安装libxml2

# cd /usr/local/src/libxml2-2.7.8

# ./configure --prefix=/usr/local/libxml2
# make && make install

2、安装libmcrypt

# cd /usr/local/src/libmcrypt-2.5.7

# ./configure --prefix=/usr/local/libmcrypt
# make && make install

3、安装zlib

# cd /usr/local/src/zlib-1.2.7

# 如果是64位的系统、会出现如下错误:

/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

解决办法:

需要在编译的时候加上  CFLAGS="-O3 -fPIC" ./configure   //使用64位元的方法进行编译

# ./configure --prefix=/usr/local/zlib

# make && make install

4、安装libpng

# cd /usr/local/src/libpng-1.2.10

# ./configure --prefix=/usr/local/libpng
# make && make install

如果报错找不到zlib库,可以执行以下命令

#  export LDFLAGS="-L/usr/local/zlib/lib"

#  export CPPFLAGS="-I/usr/local/zlib/include"

# make

# make install

5、安装jpeg7

这个软件包安装有些特殊,其它软件包安装时如果目录不存在,会自动创建,但这个软件包安装时需要手动创建。

# mkdir /usr/local/jpeg7
# mkdir /usr/local/jpeg7/bin
# mkdir /usr/local/jpeg7/lib
# mkdir /usr/local/jpeg7/include
# mkdir -p /usr/local/jpeg7/man/man1

# cd /usr/local/src/jpeg-7

# ./configure --prefix=/usr/local/jpeg7/ --enable-shared --enable-static
# make && make install

6、安装freetype

# cd /usr/local/src/freetype-2.3.5

# ./configure --prefix=/usr/local/freetype

# make

# make install

7、安装autoconf

# cd /usr/local/src/autoconf-2.69

# ./configure

# make && make install

8、安装GD库

# cd /usr/local/src/libgd-2.1.0

# ./configure -prefix=/usr/local/gd2  \

--enable-m4_pattern_allow \

--with-jpeg=/usr/local/jpeg7 \

--with-png=/usr/local/libpng/  \

--with-zlib=/usr/local/zlib/  \

--with-freetype=/usr/local/freetype

# make

#make install

9、安装xpm

# yum -y install libXpm-devel.x86_64

10、安装apr

# cd apr-1.5.2

# ./configure --prefix=/usr/local/apr

# make

# make install

如果报错:

config.status: executing libtool commands
rm: cannot remove `libtoolT': No such file or directory
config.status: executing default commands


# yum -y install libtool

11、安装apr-util

# cd apr-util-1.3.8

# ./configure  --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make

# make install

12、安装pcre

# cd pcre-8.32

# ./configure --prefix=/usr/local/pcre

# make

# make install

13、安装curl

# cd curl-7.52.1

# ./configure  --prefix=/usr/local/curl

# make

# make install

14、安装Apache

# cd /usr/local/src/httpd-2.4.6

# ./configure --prefix=/usr/local/data/apache2 \

# --enable-deflate \

# --enable-speling \

# --enable-cache \

# --enable-file-cache \

# --enable-disk-cache \

# --enable-mem-cache \

# --enable-so \

#--enable-expires \

#--enable-rewrite \

#--enable-proxy \

#--with-z=/usr/local/zlib/ \

#--with-apr=/usr/local/apr \

#--with-apr-util=/usr/local/apr-util \

#--with-pcre=/usr/local/pcre \

#--enable-ssl \

#--with-ssl=/usr/local/openssl

# make

# make install

15、配置Apache

a.设置apache

根目录:ServerRoot "/usr/local/apache2"

管理员邮箱:ServerAdmin admin@example.com

域名设置:ServerName 127.0.0.0    注:写服务器真实IP地址

b.修改所有文件的权限

 <Directory />

    Options FollowSymLinks

    AllowOverride All

    Order deny,allow

    Allow from all

     Satisfy all

 </Directory>

 <Directory "/usr/local/apache2/cgi-bin">

    AllowOverride None

    Options None

    Order allow,deny

    Allow from all

  </Directory>

c.配置根目录

DocumentRoot "/usr/local/apache2/htdocs"

d.配置根目录的权限

  <Directory "/usr/local/apache2/htdocs">

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from all

    Require all granted

  </Directory>

e.配置欢迎页(首页)

 <IfModule dir_module>

    DirectoryIndex index.php index.html

 </IfModule>

f.加载PHP模块和开启其他扩展

 AddType application/x-compress .Z

 AddType application/x-gzip .gz .tgz

 Addtype application/x-httpd-php .php .phtml

16、安装MySQL

MySQL自5.5版本以后,就开始使用cmake编译工具了。

tar.gz形式源码编译安装mysql时间要很久,但是用户可以自定义目录结构。


a. 安装系统所需要的库文件及MySQL所依赖的库文件

# yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*

b. 安装cmake 

# wget //www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz

# yum -y install cmake

c. 编译安装MySQL 5.5.53 

# /usr/sbin/groupadd mysql

# /usr/sbin/useradd -g mysql mysql

# tar -zxvf mysql-5.5.53.tar.gz

# cd mysql-5.5.53

# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

# -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

# -DEXTRA_CHARSET=all \

#-DDEFAULT_CHARSET=utf8 \

#-DDEFAULT_COLLATION=utf8_general_ci \

#-DWITH_MYISAM_STORAGE_ENGINE=1 \

#-DWITH_INNOBASE_STORAGE_ENGINE=1 \

#-DWITH_READLINE=1 \

#-DENABLED_LOCAL_INFILE=1 \

#-DMYSQL_DATADIR=/usr/local/mysql/data \

#-DWITH_SSL=yes -DMYSQL_USER=mysql


d. 执行安装,需要等待较长时间

# make

# make install


e. 改变目录拥有者和所属组

# chmod +w /usr/local/mysql

# chown -R mysql:mysql /usr/local/mysql

# ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16

# cd support-files

# cp my-large.cnf /etc/my.cnf  #复制默认配置文件,适合大型服务器

# cp mysql.server /etc/init.d/mysqld    # 复制启动文件


17、配置并启动MySQL

# vi /etc/my.cnf

a.在[mysqld]下面添加

socket          = /usr/local/mysql/mysql.sock

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

log-error = /usr/local/mysql/mysql_error.log

pid-file = /usr/local/mysql/data/mysql.pid

tmpdir = /tmp

user = mysql


b.在[client]下面添加

socket          = /usr/local/mysql/mysql.sock

c.初始化mysql

# /usr/local/mysql/scripts/mysql_install_db \

# --basedir=/usr/local/mysql \

# --datadir=/usr/local/mysql/data \

# --user=mysql

d.将mysql加入服务,开机自启动

# chmod +x /etc/init.d/mysqld

# vi /etc/init.d/mysqld (查找并修改以下内容)

basedir=/usr/local/mysql

datadir=/var/mysql/data

# chkconfig --add mysqld

# chkconfig --level 345 mysqld on

e.为MySQL配置环境变量,方便以后的使用

# export PATH=/usr/local/mysql/bin:$PATH

f.启动 mysql

# service mysqld start

g.为MySQL设置密码

# mysql_secure_installation


18、安装PHP

# cd /usr/local/src/php-7.1.0

# ./configure \

# --prefix=/usr/local/data/php \

# --with-config-file-path=/usr/local/data/php/etc \

# --with-apxs2=/usr/local/data/apache2/bin/apxs \

# --with-mysql=/usr/local/data/mysql \

# --with-mysqli=/usr/local/data/mysql/bin/mysql_config \

# --with-libxml-dir=/usr/local/libxml2 \

# --with-png-dir=/usr/local/libpng \

# --with-jpeg-dir=/usr/local/jpeg7 \

# --with-freetype-dir=/usr/local/freetype \

# --with-gd=/usr/local/gd2 \

# --with-zlib-dir=/usr/local/zlib \

#--with-mcrypt=/usr/local/libmcrypt \

#--with-xpm-dir=/usr/lib64 \

#--enable-soap \

#--enable-mbstring=all \

#--enable-sockets

如果MySQL 与 Web 不在同一台服务器,则需要添加如下选项

# --with-mysql=mysqlnd  

# --with-mysqli=mysqlnd

# make

# make install

19、创建配置PHP文件

# cp -p php.ini-development  /usr/local/php/lib/php.ini   #复制配置文件,适合开发者


五、测试

1、编写info.php文件,查看php配置详细

# vi /usr/local/apache2/htdocs/info.php

<?php
  phpinfo();
?>

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程