最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

自己编译 LAMP Centos 7.2+Apache2.4+ Mysqlnd 5.6+PHP 7 详解

LINX xiaoli 6250浏览

LAMP 环境搭建索引

1 LAMP 环境安装
1.1 LAMP 简要介绍
1.2 LAMP 源码包安装
1.2.1 安装前准备
1.2.2 安装libxml2 最新库文件
1.2.3 安装libmcrypt最新库文件
1.2.4 安装zlib 最新库文件 5
1.2.5 安装libpng 最新库文件
1.2.6 安装jpeg9 最新库文件
1.2.7 安装freetype 最新库文件
1.2.8 安装autoconf 最新库文件
1.2.9 安装最新的GD 库文件 9
1.2.10 安装最新的Apache 服务器
1.2.11 安装Mysql 数据库管理系统
1.2.12 安装最新版本的PHP 模块
1 LAMP 环境安装

1.1 LAMP 简要介绍

LAMP环境安装顺序,首先安装Apache、Mysql、PHP最后安装,因为PHP要调用mysql和apache的一些参数和数据。
Linux 版本号: Linux version 3.10.0-327.el7.x86_64
CentOS Linux release 7.2.1511 (Core)
Apache 版本号: Apache/2.4.18 (Unix)
MySql 版本号: Mysqlnd 5.6.10
PHP 版本号: PHP 7.0.3
源码包列表:
image1

图 1 LAMP 源码包列表

1.2 LAMP 源码包安装

1.2.1 安装前准备
1) 获取源码包
2) 检查安装时使用的编译工具是否存在
gcc 、cmake
3) 卸载默认的低版本环境
1.2.2 安装libxml2 最新库文件
参考:细说php

cd /usr/local/src
tar --zxvf  libxml2-2.7.2.tar.gz
cd libxml2-2.7.2
./configure --prefix=/usr/local/libxml2

make && make install

1.2.3 安装libmcrypt最新库文件

cd /usr/local/src/
tar --zxvf  libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt
make && make install
cd /usr/local/src/libmcrypt-2.5.8/libltdl
./configure --enable-ltdl-install
make && make install

1.2.4 安装zlib 最新库文件

cd /usr/local/src/
tar --zxvf  zlib-1.2.8.tar.gz
cd  zlib-1.2.8
./configure --prefix=/usr/local/zlib

make && make install

1.2.5 安装libpng 最新库文件

cd /usr/local/src/
tar --zxvf  libpng-1.6.21.tar.gz
cd  libpng-1.6.21
./configure --prefix=/usr/local/libpng
make && make install

bug:

configure: error: ZLib not installed

解决办法:

export LDFLAGS="-L/usr/local/zlib/lib"
export CPPFLAGS="-I/usr/local/zlib/include"

1.2.6 安装jpeg9 最新库文件

mkdir /usr/local/jpeg9
mkdir /usr/local/jpeg9/bin
mkdir /usr/local/jpeg9/lib
mkdir /usr/local/jpeg9/include
mkdir --p /usr/local/jpeg9/man/man1
cd /usr/local/src/
tar --zxvf  jpegsrc.v9b.tar.gz
cd  jpeg-9b
./configure \
--prefix=/usr/local/jpeg9 \
--enable-shared \
--enable-static

make && make install

1.2.7 安装freetype 最新库文件

cd /usr/local/src/
tar --zxvf  freetype-2.4.0.tar.gz
cd  freetype-2.4.0
./configure –prefix=/usr/local/freetype
make && make install

1.2.8 安装autoconf 最新库文件

cd /usr/local/src/

先安装这个文件

tar -zvxf m4-1.4.17.tar.gz
cd m4-1.4.17
./configure
make
make install
tar –zxvf  autoconf-2.69.tar.gz
cd  autoconf-2.69
./configure
make && make install

bug:

	GNU M4 1.4.6 or later is required; 1.4.13 is recommend
	

解决办法

wget -O m4-1.4.9.tar.gz http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
tar -zvxf m4-1.4.9.tar.gz
cd m4-1.4.9
./configure
make
make install

1.2.9 安装最新的GD 库文件

cd /usr/local/src
(先安装这一个libXpm 防止后面安装php7.0.3 出现bug)
yum install libXpm-devel.x86_64
tar -zxvf  libgd-2.1.1.tar.gz
cd  libgd-2.1.1
./configure \
--prefix=/usr/local/gd2/ \
--with-zlib=/usr/local/zlib/ \
--with-jpeg=/usr/local/jpeg9/ \
--with-png=/usr/local/libpng/ \
--with-freetype=/usr/local/freetype/

make && make install

1.2.10 安装最新的Apache 服务器

1) 安装Apache 组件apr

cd /usr/local/src

tar –zxvf  apr-1.5.2.tar.gz

cd  apr-1.5.2

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

make && make install

2) 安装Apache 组件apr-util:

cd  /usr/local/src
tar –zxvf  apr-util-1.5.4.tar.gz
cd  apr-util-1.5.4
./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
make && make install

3) 安装Apache 组件Pcre

cd  /usr/local/src
tar –zxvf  pcre-8.38.tar.gz
cd  pcre-8.38
./configure –prefix=/usr/local/pcre
make && make install

4) 安装openssl
centos7自带版本openssl1.0.1e,不卸载系统自带openssl,直接源码编译openssl1.0.1r

tar  -zxvf openssl-1.0.1r.tar.gz
cd openssl-1.0.1r
./config --prefix=/usr/local/openssl -fPIC  enable-shared
make && make install
mv  /usr/bin/openssl  /usr/bin/openssl.1.0.1e
ln  –s  /usr/local/openssl/bin/openssl  /usr/bin/openssl

5) 安装apache

cd  /usr/local/src
tar –zxvf  httpd-2.4.18.tar.gz
cd  httpd-2.4.18
./configure  
--prefix=/usr/local/apache 
--sysconfdir=/etc/httpd 
--enable-so --enable-cgi  
--enable-ssl --enable-rewrite   
--with-ssl=/usr/local/openssl 
--with-pcre=/usr/local/pcre 
--with-z=/usr/local/zlib 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util 
--enable-modules=most 
--enable-mpms-shared=all 
--with-mpm=event 
--disable-userdir 
--enable-deflate=shared 
--enable-expires=shared 
--enable-rewrite=shared 
--enable-static=support
make && make install
systemctl stop firewalld.service
systemctl disable firewalld.service
/usr/local/apache/bin/apachectl start

image3
图2 Apache 安装成功测试

1.2.11 安装Mysql 数据库管理系统

cd /usr/local/src
groupadd mysql
useradd -g mysql mysql -s /sbin/nologin
tar –zxvf  mysql-5.6.10.tar.gz
cd mysql-5.6.10
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DSYSCONFDIR=/etc/my.cnf
make && make install
cp  ./support-files/my-defautl.cnf  /etc/my.cnf
chmod 755 /usr/local/mysql/scripts/mysql_install_db
chown -R mysql.mysql /usr/local/mysql/
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
/usr/local/mysql/bin/mysqld_safe ?--user=mysql &
/usr/local/mysql/bin/mysqladmin -uroot password root
/usr/local/mysql/bin/mysql -uroot –proot
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >>/etc/rc.local
echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
source /etc/profile

Mysql 安装完成后,可执行如下操作

参考资料:http://stackoverflow.com/questions/1559955/host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server
CREATE USER  ‘magento’@'localhost' IDENTIFIED BY 'magento123';
GRANT ALL PRIVILEGES ON *.* TO 'magento'@'localhost' with grant option;
CREATE USER 'magento'@'%' IDENTIFIED BY ‘magento123’;
GRANT ALL PRIVILEGES ON *.* TO 'magento'@'%' WITH GRANT OPTION;

image4
图3 Mysql 以及PhpMyadmin 安装成功后界面

1.2.12 安装最新版本的PHP 模块

cd /usr/local/src/
tar –zxvf  php-7.0.3.tar.gz
cd  php-7.0.3

./configure 
--prefix=/usr/local/php 
--with-config-file-path=/usr/local/php/etc 
--with-apxs2=/usr/local/apache/bin/apxs 
--with-mysql=/usr/local/mysql/ 
--with-libxml-dir=/usr/local/libxml2/ 
--with-png-dir=/usr/local/libpng/ 
--with-jpeg-dir=/usr/local/jpeg9/ 
--with-freetype-dir=/usr/local/freetype/ 
--with-gd=/usr/local/gd2/ 
--with-zlib-dir=/usr/local/zlib/ 
--with-mcrypt=/usr/local/libmcrypt/ 
--with-mysqli=/usr/local/mysql/bin/mysql_config 
--with-iconv=/usr/local/lib/libiconv 
--enable-soap --enable-mbstring=all 
--enable-sockets 
--enable-fpm 
--enable-mysqlnd 
--with-pdo-mysql=mysqlnd  
--with-curl 
--enable-bcmath 
--enable-pcntl 
--enable-ftp 
--enable-exif  
--enable-calendar 
--enable-sysvmsg 
--with-iconv 
--enable-sysvmsg
make && make install
cp ./ php.ini-development /usr/local/php/etc/php.ini
vi /etc/httpd/httpd.conf
#(在AddType application/x-zip .gz .tgz) 下面添加如下一条:
AddType application/x-httpd-php .php .phtml
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
#在/usr/local/apache/htdocs 目录下建立一个phpinfo.php 的文件
<?php
	phpinfo();
?>

由于我服务器的ip 地址为192.168.1.27,故url: http://192.168.1.27/phpinfo.php

image5
图2 LAMP 信息

bug1:
在phpinfo 页面中发现了一个问题:
image6
图3 Mysqli 设置出现的小问题
我在安装Mysql 的时候,设置的socket 通信文件存放位置是/tmp/mysql.sock
而mysqli 中的socket 文件却是/tmp/mysqld.sock
解决办法如下:

cd /tmp

ln –s ./mysql.sock ./mysqld.sock

bug2:
在安装php 的时候会出现如下问题:

/usr/local/src/php-7.0.3/ext/gd/gd.c:57:22: error: X11/xpm.h: No such file or directory
make: *** [ext/gd/gd.lo] Error 1

问题说明:这是提示gd库不支持xpm
解决方法:
1.安装libxpm

yum install libXpm-devel.x86_64

备注及引用
本文 来自小李的投稿
由ajing-tuzi 编辑及整理并发布 对原文略有修改
本文的 参考及引用源并未列出
参考源

[root@localhost src]# wget http://nginx.org/download/nginx-1.4.5.tar.gz
[root@localhost src]# wget http://ftp.exim.llorien.org/pcre/pcre-8.34.tar.gz  (备注:nginx的重写rewrite需要)
[root@localhost src]# wget http://zlib.net/zlib-1.2.8.tar.gz  (nginx的gzip压缩)
[root@localhost src]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz
[root@localhost src]# wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz (MySQL5.5以后需要用cmake来安装)
[root@localhost src]# wget http://cn2.php.net/get/php-5.5.9.tar.gz/from/this/mirror
[root@localhost src]# wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
[root@localhost src]# wget https://bitbucket.org/libgd/gd-libgd/get/gd-2.1.0.tar.gz
[root@localhost src]# wget ftp://xmlsoft.org/libxml2/libxml2-2.7.2.tar.gz
[root@localhost src]# wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz
[root@localhost src]# wget http://download.savannah.gnu.org/releases/freetype/freetype-2.5.2.tar.gz
[root@localhost src]# wget http://sourceforge.net/projects/libpng/files/libpng16/1.6.8/libpng-1.6.8.tar.gz/download
[root@localhost src]# wget http://www.ijg.org/files/jpegsrc.v9.tar.gz

转载请注明:(●--●) Hello.My Weicot » 自己编译 LAMP Centos 7.2+Apache2.4+ Mysqlnd 5.6+PHP 7 详解