火冰狐 发表于 2018-11-18 14:33:40

源码安装LAMP(CentOS 6.8 + Apache2.4 + MySQL5.5 + PHP7)

一、简介
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.修改所有文件的权限

      Options FollowSymLinks
      AllowOverride All
      Order deny,allow
      Allow from all
     Satisfy all
  
  
      AllowOverride None
      Options None
      Order allow,deny
      Allow from all
  
c.配置根目录
DocumentRoot "/usr/local/apache2/htdocs"
d.配置根目录的权限

      Options Indexes FollowSymLinks
      AllowOverride None
      Order allow,deny
      Allow from all
      Require all granted
  
e.配置欢迎页(首页)
  
      DirectoryIndex index.php index.html
  
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 http://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.在下面添加
  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.在下面添加
  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




页: [1]
查看完整版本: 源码安装LAMP(CentOS 6.8 + Apache2.4 + MySQL5.5 + PHP7)