在CentOS6.8上编译安装apache+php+mariadb


参考文档: http://www.cnblogs.com/dreamhome/p/4967903.html

  1.  使用wget或git下载源码速度很慢,使用迅雷下载会比快很多

  2.   bison和cmake安装顺序

  3. 网上的参考教程列出的下载地址部分失效,需要到官方网站重新找到下载地址

  4. 本文根据参考文档重新将各条命令合并在一起,基本上可以做到一键安装完成。

  5. 已经将文中需要的文件打包共享,欢迎前往下载。

  6. 验证环境:VirtualBox+CentOS6.8,安装过程中可能还需要额外安装或升级一些程序,如果网速较慢,那么需要挂载CentOS安装光盘到/media/CentOS。

  7. 全部编译安装完毕大约需要2个小时

  8. 如果直接在网页复制执行,可能会有隐藏字符导致命令执行失败

  9. 仅供研究交流使用,切勿用于工作环境。

===============================================

原文 http://www.cnblogs.com/dreamhome/p/4967903.html

#使用迅雷批量下载

https://github.com/MariaDB/server/archive/10.2.zip
http://www.apache.org/dist/apr/apr-1.5.2.tar.bz2
http://mirrors.cnnic.cn/apache/apr/apr-util-1.5.4.tar.gz
http://exim.mirror.fr/pcre/pcre-8.38.tar.gz
http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.23.tar.gz
http://cn2.php.net/distributions/php-5.6.25.tar.gz
#上传到/temp,解压

#也可以在centos下wget下载,简单但是较慢

##################################################################################


#安装编译工具和依赖文件,先将所需要的文件下载到/temp

mkdir /temp
cd /temp
yum -y install gcc gcc-c++ wget git
yum -y install bison
yum -y install cmake bison
yum -y install readline-devel zlib-devel openssl-devel
yum -y install libxml2 libxml2-devel


unzip server-10.2.zip
tar -jxvf apr-1.5.2.tar.bz2
tar -zxvf apr-util-1.5.4.tar.gz
tar -zxvf pcre-8.38.tar.gz
tar -zxvf httpd-2.4.23.tar.gz
tar -zxvf php-5.6.25.tar.gz



#APR安装
cd /temp/apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
cd /temp

#APR-util
cd /temp/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
cd /temp

#PCRE
cd /temp/pcre-8.38
./configure --prefix=/usr/local/pcre
make && make install
cd /temp

#apache
cd /temp/httpd-2.4.23
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
make && make install
cd /temp

#修改Apache配置文件
\cp  /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bak2016 -rf
\cp /usr/local/apache/bin/apachectl /etc/init.d/httpd -rf

echo "LoadModule php5_module modules/libphp5.so" >> /usr/local/apache/conf/httpd.conf
echo "AddType application/x-httpd-php .php" >> /usr/local/apache/conf/httpd.conf
echo "ServerName mocc.lmu:8080" >> /usr/local/apache/conf/httpd.conf

#设置成开机启动
chkconfig --add httpd
chkconfig httpd on


#编译mariadb

yum erase -y MariaDB-server MariaDB-client

cd /temp/server-10.2

mkdir /home/www/mariadbdata/ -p
chmod 0770 /home/www/mariadbdata/

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/www/mariadbdata/ \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWIYH_READLINE=1 \
-DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install

#php

cd /temp/php-5.6.25
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config
make && make install
cd /temp
\cp /temp/php-5.6.25/php.ini-development /usr/local/php/php.ini -rf


#####################################################

以下部分需要手工完成


#修改配置文件

#####################################################
vi /usr/local/apache/conf/httpd.conf

#DirectoryIndex index.html 改成 DirectoryIndex index.php index.html
#修改/etc/init.d/httpd使Apache可以设置成开机启动
vi /etc/init.d/httpd

#在第一行#!/bin/sh下一行添加如下两行

#chkconfig: 2345 10 90
#description: Activates/Deactivates Apache Web Server


#编辑php.ini

将前面的;去掉使PHP支持mysql,并且配置时要指定--with-mysql的值,如果之前安装时未配置,需要重新配置,编译,安装
;extension=php_mysql.dll

要使用phpmyadmin或mysqli函数打开,并且配置时要指定--with-mysqli的值,如果之前安装时未配置,需要重新配置,编译,安装
;extension=php_mysqli.dll

要PHP支持png,jpg,gif等(phpcmsV9必须)打开
;extension=php_gd2.dll

大字符集,支持多字符集之间的转换打开
;extension=php_mbstring.dll

php5默认<?php echo date("Y-m-d H:i:s");?>时间与北京时间相差八小时(少八小时)
为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时
查找
;date.timezone =
将;去掉,并修改成
date.timezone = PRC

除了E_NOTICE类型的错误(Notice)不报告,其他的都报告,查找
error_reporting = E_ALL
改成
error_reporting = E_ALL & ~E_NOTICE

使 include 等可以包含域外网页如 include_once "http://www.126.com";
找到
allow_url_include = Off
改成
allow_url_include = On

vi /usr/local/php/php.ini


启动Apache,之前未启动是因为未安装PHP关联前Apache配置文件中LoadModule php5_module modules/libphp5.so找不到加载模块报错
service httpd start


开放防火墙80端口访问
firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙
firewall-cmd --reload