lamp环境搭建,centos6.9+apache2.4+mysql5.7+php7.1

安装前准备:CentOS 6.9 64位 最小化安装

yum install -y make gcc gcc-c++ perl zlib-devel libaio libpng libpng-devel libjpeg-devel pcre-devel
yum install -y  libXpm-devel openssl openssl-devel libxml2-devel bzip2-devel.x86_64 libjpeg-turbo-devel
yum install -y  freetype freetype-devel libtool cmake ncurses-devel bison re2c curl-devel wget
rpm -ivh "http://mirrors.sohu.com/fedora-epel/epel-release-latest-6.noarch.rpm"
yum install -y libmcrypt-devel re2c

一、安装MySql

1.编译安装
下载软件包
cd /usr/local/src/  
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-boost-5.7.17.tar.gz
解压
tar zxvf mysql-boost-5.7.17.tar.gz
编译&安装
cd mysql-5.7.17
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_BOOST=./boost/boost_1_59_0/
make && make install
注意:如果编译出错,执行如下操作,然后重新配置。
make clean
rm CMakeCache.txt
2.二进制包安装
若编译过程较慢,可以下载编译好的二进制包直接安装
cd /usr/local/src/
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
tar zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
移至/usr/local/mysql目录
mv mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
3.建立mysql用户
useradd -s /sbin/nologin mysql
初始化数据库,创建系统自带的数据库和表
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
cd /usr/local/mysql
bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql
(5.7初始化方式已经变更,直接使用mysqld命令初始化,5.6之前版本初始化执行下面这句:
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql)
结束后会生成一个密码,记下来
初始化时会出现如下警告:
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see
documentation for more details).
要想取消该警告,在启动mysql时,my.cnf中加入
[mysqld]
explicit_defaults_for_timestamp=true
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
vi /etc/init.d/mysqld
修改datadir
basedir=/usr/local/mysql
datadir=/data/mysql
启动mysql并设置开机启动
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
修改密码
/usr/local/mysql/bin/mysqladmin -uroot -p'刚才记下的密码' password "新密码"
5.6之前版本修改密码执行下面这句:
/usr/local/mysql/bin/mysqladmin -uroot password "新密码"
4.修改/etc/my.cnf配置文件
[client]
default-character-set = utf8
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /data/mysql

二、安装apache2.4

cd /usr/local/src
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.29.tar.gz
wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
tar zxvf /usr/local/src/httpd-2.4.29.tar.gz
tar zxvf /usr/local/src/apr-1.6.3.tar.gz
tar zxvf /usr/local/src/apr-util-1.6.1.tar.gz
mv /usr/local/src/apr-1.6.3 /usr/local/src/httpd-2.4.29/srclib/apr
mv /usr/local/src/apr-util-1.6.1 /usr/local/src/httpd-2.4.29/srclib/apr-util
cd /usr/local/src/httpd-2.4.29
./configure \--prefix=/usr/local/apache2 \--with-included-apr \--enable-so \--enable-deflate=shared \--enable-expires=shared \--enable-rewrite=shared
make && make install
第二次实验报错:报错图没贴

解决办法:

yum install expat-devel -y
cd /usr/local/apache2/
vi conf/httpd.conf

找到

#ServerName www.example.com:80

改成

ServerName localhost:80
检查配置文件语法
bin/apachectl -t
配置启动脚本
cp /usr/local/src/httpd-2.4.29/build/rpm/httpd.init /etc/init.d/httpd

注意文件中有三处主要的地方需要修改下的:请根据自己的实际情况更改相应的路径!

httpd=${HTTPD-/usr/local/apache2/bin/httpd} 
pidfile=${PIDFILE-/usr/local/apache2/logs/${prog}.pid} 
CONFFILE=/usr/local/apache2/conf/httpd.conf

然后运行如下命令:

chmod +x /etc/init.d/httpd 
chkconfig --add httpd 
chkconfig httpd on 
/etc/init.d/httpd start
netstat -lnp |grep httpd

三、php安装

下载php安装包并解压:

cd /usr/local/src
wget http://mirrors.sohu.com/php/php-7.1.3.tar.gz
tar zxvf php-7.1.3.tar.gz
cd php-7.1.3

编译

./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/usr/local/php/etc  \
--with-mysql-sock=/tmp/mysql.sock \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-libxml-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-bz2 \
--with-openssl \
--with-mcrypt \
--with-gettext \
--enable-soap \
--enable-gd-native-ttf \
--enable-mbstring \
--enable-sockets \
--enable-exif \
--disable-ipv6 \
--enable-bcmath \
--enable-fpm

安装并copy配置文件

make && make install
cp php.ini-production /usr/local/php/etc/php.ini

四、apache结合php

vi /usr/local/apache2/conf/httpd.conf

找到

#ServerName www.example.com:80

改成

ServerName localhost:80

找到:

AddType application/x-gzip .gz .tgz

在该行下面添加:

AddType application/x-httpd-php .php

找到:

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

将该行改为:

<IfModule dir_module>
    DirectoryIndex index.html index.html index.php
</IfModule>

测试语法是否正确

/usr/local/apache2/bin/apachectl -t

启动httpd web 服务

service httpd restart

测试解析php

vi /usr/local/apache2/htdocs/1.php

写入:

<?php
    echo "php解析正常";
    echo phpinfo();
?>

保存后,继续测试:

curl localhost/1.php

查看结果已经可以成功解析。