在CentOS6.8上编译安装apache+php+mariadb
参考文档:
- 使用wget或git下载源码速度很慢,使用迅雷下载会比快很多
- bison和cmake安装顺序
- 网上的参考教程列出的下载地址部分失效,需要到官方网站重新找到下载地址
- 本文根据参考文档重新将各条命令合并在一起,基本上可以做到一键安装完成。
- 已经将文中需要的文件打包共享,欢迎前往下载。
- 验证环境:VirtualBox+CentOS6.8,安装过程中可能还需要额外安装或升级一些程序,如果网速较慢,那么需要挂载CentOS安装光盘到/media/CentOS。
- 全部编译安装完毕大约需要2个小时
- 如果直接在网页复制执行,可能会有隐藏字符导致命令执行失败
- 仅供研究交流使用,切勿用于工作环境。
#使用迅雷批量下载
https://github.com/MariaDB/server/archive/10.2.ziphttp://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
https://blog.51cto.com/walkthrough/1842221