LAMP环境搭建-----建议和LNMP环境搭建联合参考

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.

本实验采用64位CentOS6.8进行部署,系统最小化安装,apache选用httpd-2.4.7,mysql选用mysql-5.6.32,php选用php-5.6.26。

软件包列表如下

零、编译安装前的准备工作

1、安装虚拟机(CentOS6.8最小化安装)[安装过程不做说明]

2、修改为静态ip(由于是最小化安装,所以暂时还没有vim等命令)

[root@LINUX-LAMP ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
NAME=eno16777736
UUID=a423480d-e96c-4f17-98d1-dccb0a675e1d
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.2.42
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=202.96.134.133
DNS2=202.96.154.8

保存退出,重启网络服务,可以通过ifconfig或者ip a查看
另外请注意自己的ip和网关,dns有没有问题,确保一次性成功,
我这里坐标深圳,所以dns服务器我写的这边。大家可以根据自己的坐标搜索对应的dns服务器。

[root@LINUX-LAMP ~]# service network restart
[root@LINUX-LAMP ~]# ifconfig

3、永久修改主机名(这里只是方便我区分实验项目,大家根据需求,若没必要可不改)

[root@LINUX-LAMP ~]# vim /etc/sysconfig/network      #修改HOSTNAME=localhost.localdomain(如果是默认的话),修改localhost.localdomain为你的主机名。
[root@LINUX-LAMP ~]# vim /etc/hosts                  
#修改127.0.0.1 localhost.localdomain localhost 。其中 127.0.0.1 是本地环路地址, localhost.localdomain 是主机名(hostname),也就是你待修改的。
#localhost 是主机名的别名(alias),它会出现在Konsole的提示符下。将localhost.localdomain修改为你的主机名,localhost可选。
[root@LINUX-LAMP ~]# hostname LINUX-LAMP

注意:不必重启。上面的命令会立即修改内核主机名。退出并重新登入shell后在命令行提示即可看到新主机名已经改为LINUX-LAMP。

4、编译及其他工具安装

安装gcc、vim、 net-tools(包含ifconfignetstat等命令)等工具,gcc为部署过程中需要调用的编译工具,非常重要,必须安装。
依次安装gcc,vim,screen,lrzsz等可能用到的常用工具。

[root@LINUX-LAMP ~]# yum -y install gcc gcc-c++ vim screen lrzsz net-tools wget curl unzip zip dos2unix

注意:系统安装完成后,自带的yum源为官方yum源,无需修改可直接使用。
提示:若系统无法使用自带yum源,请自行百度搜索其他的yum源,修改yum配置文件既可。常用的有搜狐的,阿里的,网易的等。

5、上传源码包

[root@LINUX-LAMP ~]# cd /usr/local/src
[root@LINUX-LAMP ~]# rz

然后选择所需上传的源码包上传即可。
当然也可以采用winscp这类软件上传源码包(图形化界面)。
#关于rz,sz,是lrzsz里面的两个命令,有疑问者请自行搜索lrzsz使用方法。
建议:将所有源码包放在此路径下面,也可根据个人习惯存放。

6:解压所有的源码包

建议:由于大部分为tar.gz格式,可直接使用以下脚本一次性全部解压。
若个别源码包格式不是tar.gz,若报错,无需理会,查看没有解压的包,手动单个解压即可。

[root@LINUX-LAMP ~]# for i in `ls /usr/local/src/`;do tar -zxf $i;done

壹、底层辅助支持软件的安装

1、安装OpenSSL

[root@LINUX-LAMP src]# cd /usr/local/src/openssl-1.0.2j
[root@LINUX-LAMP openssl-1.0.2j]# ./config --prefix=/usr/local/openssl shared
[root@LINUX-LAMP openssl-1.0.2j]# make && make install

修改:此步骤非常重要,至少对于现有的软件版本,修改之后执行/sbin/ldconfig
[root@LINUX-LAMP openssl-1.0.2j]# vi /etc/ld.so.conf 添加一行/usr/local/openssl/lib/
[root@LINUX-LAMP openssl-1.0.2j]# /sbin/ldconfig

2、安装Curl库

[root@LINUX-LAMP src]# cd /usr/local/src/curl-7.50.3
[root@LINUX-LAMP openssl-1.0.2j]# ./configure --prefix=/usr/local/curl
[root@LINUX-LAMP curl-7.50.3]# make && make install

3、安装expat

[root@LINUX-LAMP src]# cd /usr/local/src/expat-2.2.0
[root@LINUX-LAMP expat-2.2.0]# ./configure --prefix=/usr/local/expat
[root@LINUX-LAMP expat-2.2.0]# make && make install

4、安装libxml2

[root@LINUX-LAMP src]# cd /usr/local/src/libxml2-2.9.4
[root@LINUX-LAMP libxml2-2.9.4]# rpm -qa | grep python-devel      #查询是否安装python-devel,若无,请务必执行下面命令安装
[root@LINUX-LAMP libxml2-2.9.4]# yum -y install python-devel      #安装python-devel
[root@LINUX-LAMP libxml2-2.9.4]# ./configure --prefix=/usr/local/libxml2/
 root@LINUX-LAMP libxml2-2.9.4]# make && make install

5、安装libxslt

[root@LINUX-LAMP src]# cd /usr/local/src/libxslt-1.1.29
[root@LINUX-LAMP libxslt-1.1.29]# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
[root@LINUX-LAMP libxslt-1.1.29]# make && make install

6、安装libmcrypt

[root@LINUX-LAMP src]# cd /usr/local/src/libmcrypt-2.5.8
[root@LINUX-LAMP libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt

checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables See `config.log' for more details.
若有此报错:提示没有gcc-c++,安装即可,安装之后再重新编译安装。

[root@LINUX-LAMP libmcrypt-2.5.8]# yum -y install gcc-c++
[root@LINUX-LAMP libmcrypt-2.5.8]# ./configure --prefix=/usr/local/libmcrypt
[root@LINUX-LAMP libmcrypt-2.5.8]# make && make install

# 安装libltdl,也在libmcrypt源码目录中,非新软件

[root@LINUX-LAMP libmcrypt-2.5.8]# cd /usr/local/src/libmcrypt-2.5.8/libltdl
[root@LINUX-LAMP libltdl]# ./configure --enable-ltdl-install
[root@LINUX-LAMP libltdl]# make && make install

7、安装mhash

[root@LINUX-LAMP src]# cd /usr/local/src/mhash-0.9.9.9
[root@LINUX-LAMP mhash-0.9.9.9]# ./configure --prefix=/usr/local/mhash
[root@LINUX-LAMP mhash-0.9.9.9]# make && make install

8、安装mcrypt(两种方法,任选一种)

[root@LINUX-LAMP src]# cd /usr/local/src/mcrypt-2.6.8

8.1、如果mhash没有指定安装目录,而采用默认安装请使用如下命令

[root@LINUX-LAMP mcrypt-2.6.8]# LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib \
./configure --with-libmcrypt-prefix=/usr/local/libmcrypt   #两行为一条命令,其中 \ 表示一行未结束,换行的意思
[root@LINUX-LAMP mcrypt-2.6.8]# make && make install > /root/mcrypt-1.install.log
#将安装日志记录下来,如果以后需要删除该软件的话,可以对着日志去看安装的时候都生成了哪些文件,然后对照着删除。

8.2、由于上面我们的mhash指定了安装目录,没有采用默认安装,这里会有如下报错:
configure: error: "You need at least libmhash 0.8.15 to compile this program. http://mhash.sf.net/"

[root@LINUX-LAMP mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/mhash/lib
[root@LINUX-LAMP mcrypt-2.6.8]# export LDFLAGS="-L/usr/local/mhash/lib/ -I/usr/local/mhash/include/"
[root@LINUX-LAMP mcrypt-2.6.8]# export CFLAGS="-I/usr/local/mhash/include/"
[root@LINUX-LAMP mcrypt-2.6.8]# ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt
[root@LINUX-LAMP mcrypt-2.6.8]# make && make install > /root/mcrypt-1.install.log
#将安装日志记录下来,如果以后需要删除该软件的话,可以对着日志去看安装的时候都生成了哪些文件,然后对照着删除。

9、安装zlib

[root@LINUX-LAMP src]# cd /usr/local/src/zlib-1.2.8			
[root@LINUX-LAMP zlib-1.2.8]# ./configure --prefix=/usr/local/zlib/
[root@LINUX-LAMP zlib-1.2.8]# make && make install

10、安装libpng

[root@LINUX-LAMP libpng-1.6.25]# cd /usr/local/src/libpng-1.6.25
[root@LINUX-LAMP libpng-1.6.25]# ./configure --prefix=/usr/local/libpng

报错如下:
configure: error: zlib not installed
提示我们zlib没有安装,但是实际上,我们在上面已经安装了,也没有任何错误。
后来发现原来只要把编译好的libz.so.1.2.X指向/lib/libz.so即可,
因为编译的需要,对于头文件也需要软链接到/usr/include. 然后重新编译。

[root@LINUX-LAMP libpng-1.6.25]# ln -s /usr/local/zlib/lib/libz.so.1.2.8 /lib/libz.so
[root@LINUX-LAMP libpng-1.6.25]# ln -s /usr/local/zlib/include/* /usr/include
[root@LINUX-LAMP libpng-1.6.25]# ./configure --prefix=/usr/local/libpng
[root@LINUX-LAMP libpng-1.6.25]# make && make install

11、安装jpeg

[root@LINUX-LAMP src]# cd /usr/local/src/jpeg-9b
[root@LINUX-LAMP jpeg-9b]# ./configure --prefix=/usr/local/jpeg/ --enable-shared --enable-static
[root@LINUX-LAMP jpeg-9b]# make && make install
    
特别注意:如果是安装jpeg的老版本,安装的时候不会自己创建以下目录,如果提示目录不存在,请手工创建
    ------------------------------------------------------------------
    | [root@LINUX-LAMP jpeg-9b]# mkdir /usr/local/jpeg	             |
    | [root@LINUX-LAMP jpeg-9b]# mkdir /usr/local/jpeg/bin           |
    | [root@LINUX-LAMP jpeg-9b]# mkdir /usr/local/jpeg/lib           |
    | [root@LINUX-LAMP jpeg-9b]# mkdir /usr/local/jpeg/include       | 
    | [root@LINUX-LAMP jpeg-9b]# mkdir -p /usr/local/jpeg/man/man1   | 
    ------------------------------------------------------------------

12、安装freetype

[root@LINUX-LAMP src]# cd /usr/local/src/freetype-2.7
[root@LINUX-LAMP freetype-2.7]# ./configure --prefix=/usr/local/freetype/  --with-png=/usr/local/libpng/ --with-zlib=/usr/local/zlib/
[root@LINUX-LAMP freetype-2.7]# make && make install

13、安装m4

[root@LINUX-LAMP src]# cd /usr/local/src/m4-1.4.17
[root@LINUX-LAMP m4-1.4.17]# ./configure
[root@LINUX-LAMP m4-1.4.17]# make && make install > /root/m4.install.log

14、安装autoconf (如果嫌麻烦,直接yum得了 # yum -y install autoconf)

报错如下:请执行第13步,先安装m4
checking for GNU M4 that supports accurate traces... configure: error: no acceptable m4 could be found in $PATH.

[root@LINUX-LAMP src]# cd /usr/local/src/autoconf-2.69
[root@LINUX-LAMP autoconf-2.69]# ./configure
[root@LINUX-LAMP autoconf-2.69]# make

若make报错如下:请执行 yum -y groupinstall perl* ,然后重新编译安装
Compilation failed in require at ../bin/autom4te line 37.

[root@LINUX-LAMP autoconf-2.69]# yum -y groupinstall perl* 
[root@LINUX-LAMP autoconf-2.69]# make clean         #删除之前make生成的文件
[root@LINUX-LAMP autoconf-2.69]# ./configure
[root@LINUX-LAMP autoconf-2.69]# make
[root@LINUX-LAMP autoconf-2.69]# make install > /root/autoconf.install.log
#将安装日志记录下来,如果以后需要删除该软件的话,可以对着日志去看安装的时候都生成了哪些文件,然后对照着删除。

15、安装libiconv

[root@LINUX-LAMP src]# cd /usr/local/src/libiconv-1.14
[root@LINUX-LAMP libiconv-1.14]# ./configure --prefix=/usr/local/libiconv
[root@LINUX-LAMP libiconv-1.14]# make

./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
若make有上面报错:请按如下操作修改
解决方法:修改/usr/local/src/libiconv-1.14/srclib/stdio.in.h文件第698行

[root@LINUX-LAMP libiconv-1.14]# vim /usr/local/src/libiconv-1.14/srclib/stdio.in.h +698


_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

替换为

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

修改完之后,然后再重新编译安装即可。

[root@LINUX-LAMP libiconv-1.14]# make clean         #删除之前make生成的文件
[root@LINUX-LAMP libiconv-1.14]# ./configure --prefix=/usr/local/libiconv
[root@LINUX-LAMP libiconv-1.14]# make && make install

16、安装bzip2

[root@LINUX-LAMP src]# cd /usr/local/src/bzip2-1.0.6
[root@LINUX-LAMP bzip2-1.0.6]# make -f Makefile-libbz2_so
[root@LINUX-LAMP bzip2-1.0.6]# make install PREFIX=/usr/local/bzip2

17、安装GD库

[root@LINUX-LAMP src]# cd /usr/local/src/libgd-2.1.1
[root@LINUX-LAMP libgd-2.1.1]# ./configure --prefix=/usr/local/gd2/ \
--with-jpeg=/usr/local/jpeg/ \
--with-freetype=/usr/local/freetype/ \
--with-png=/usr/local/libpng/ \
--with-zlib=/usr/local/zlib/

[root@LINUX-LAMP libgd-2.1.1]# make && make install
小结:基础支持包就安装到这里,后面将进入正式环节安装apache,mysql,php了,底层支持包都是为了安装后面的这些做准备的。

贰、安装Apache方法一

Apache有两种安装方式,请任选一种,千万不要两种方法都操作

18、安装apr

[root@LINUX-LAMP src]# cd /usr/local/src/apr-1.5.2
[root@LINUX-LAMP apr-1.5.2]# ./configure --prefix=/usr/local/apr/
[root@LINUX-LAMP apr-1.5.2]# make && make install

19、安装apr-util

[root@LINUX-LAMP src]# cd /usr/local/src/apr-util-1.5.4
[root@LINUX-LAMP apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
[root@LINUX-LAMP apr-util-1.5.4]# make && make install

20、安装pcre

[root@LINUX-LAMP src]# cd /usr/local/src/pcre-8.38
[root@LINUX-LAMP pcre-8.38]# ./configure --prefix=/usr/local/pcre/
[root@LINUX-LAMP pcre-8.38]# make && make install

21、安装apache

[root@LINUX-LAMP src]# cd /usr/local/src/httpd-2.4.7
[root@LINUX-LAMP httpd-2.4.7]# ./configure --prefix=/usr/local/apache2 \
--sysconfdir=/usr/local/apache2/etc/ \
--enable-so \
--enable-rewrite \
--enable-ssl \
--enable-cgi \
--enable-cgid \
--enable--modules=most \
--enable-mods-shared=most \
--enable-mpms-shared=all \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-apr=/usr/local/apr/ \
--with-apr-util=/usr/local/apr-util/ \
--with-pcre=/usr/local/pcre/ \
--with-ssl=/usr/local/openssl/ \
--with-z=/usr/local/zlib/
[root@LINUX-LAMP httpd-2.4.7]# make && make install
        
启动apache服务。(注意防火墙,打开80端口或者关闭防火墙服务)
[root@LINUX-LAMP httpd-2.4.7]# /usr/local/apache2/bin/apachectl start
访问http://192.168.2.42  访问成功,说明安装apache已经提供服务,没有问题。
[root@LINUX-LAMP httpd-2.4.7]# /usr/local/apache2/bin/apachectl stop

叁、安装Apache方法二

Apache有两种安装方式,请任选一种,千万不要两种方法都操作

18、处理apr

[root@LINUX-LAMP src]# cp -r /usr/local/src/apr-1.5.2 /usr/local/src/httpd-2.4.7/srclib/apr

19、处理apr-util

[root@LINUX-LAMP src]# cp -r /usr/local/src/apr-util-1.5.4 /usr/local/src/httpd-2.4.7/srclib/apr-util

20、安装pcre

[root@LINUX-LAMP src]# cd /usr/local/src/pcre-8.38
[root@LINUX-LAMP pcre-8.38]# ./configure --prefix=/usr/local/pcre/
[root@LINUX-LAMP pcre-8.38]# make && make install

21、安装apache(apr和apr-util会随着apache的安装一起安装)

[root@LINUX-LAMP src]# cd /usr/local/src/httpd-2.4.7
[root@LINUX-LAMP httpd-2.4.7]# ./configure --prefix=/usr/local/apache2 \
--sysconfdir=/usr/local/apache2/etc/ \
--with-included-apr \
--enable-so \
--enable-rewrite \
--enable-ssl \
--enable-cgi \
--enable-cgid \
--enable--modules=most \
--enable-mods-shared=most \
--enable-mpms-shared=all \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre=/usr/local/pcre/ \
--with-ssl=/usr/local/openssl/ \
--with-z=/usr/local/zlib/

[root@LINUX-LAMP httpd-2.4.7]# make && make install
        
启动apache服务。(注意防火墙,打开80端口或者关闭防火墙服务)
[root@LINUX-LAMP httpd-2.4.7]# /usr/local/apache2/bin/apachectl start
访问http://192.168.2.42  访问成功,说明安装apache已经提供服务,没有问题。
[root@LINUX-LAMP httpd-2.4.7]# /usr/local/apache2/bin/apachectl stop

Apache两种管理方法,任选一种

1.手工管理
[root@LINUX-LAMP src]# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.local           #开机自启动
[root@LINUX-LAMP src]# /usr/local/apache2/bin/apachectl start                                   #开启服务
[root@LINUX-LAMP src]# /usr/local/apache2/bin/apachectl stop                                    #关闭服务
检查服务是否开启
ps -aux | grep httpd
netstat -ultn | grep 80
        
杀掉进程
kill -9 "进程id"
pkill httpd
关于kill、pkill、killall的区别和用法,建议到http://man.linuxnb.com进行查询了解。
2.chkconfig添加apache,将apache交给chkconfig来管理
[root@LINUX-LAMP httpd-2.4.7]# cp /usr/local/src/httpd-2.4.7/build/rpm/httpd.init /etc/init.d/httpd                 #复制启动脚本
[root@LINUX-LAMP httpd-2.4.7]# sed -i 's#HTTPD-/usr/sbin/httpd#HTTPD-/usr/local/apache2/bin/httpd#g' /etc/init.d/httpd                             
#将/etc/init.d/httpd文件里面  HTTPD-/usr/sbin/httpd   全部替换为  HTTPD-/usr/local/apache2/bin/httpd
		
[root@LINUX-LAMP httpd-2.4.7]# sed -i 's#CONFFILE=/etc/httpd/conf/httpd.conf#CONFFILE=/usr/local/apache2/etc/httpd.conf#g' /etc/init.d/httpd
		
[root@LINUX-LAMP httpd-2.4.7]# sed -i '/ServerRoot "\/usr\/local\/apache2"/a\PidFile "\/var\/run\/httpd.pid"' /usr/local/apache2/etc/httpd.conf
#在匹配到的行下面添加  PidFile "/var/run/httpd.pid 可参考http://man.linuxnb.com/sed  里面的  a\ 选项
		
[root@LINUX-LAMP httpd-2.4.7]# sed -i '/#ServerName www.example.com:80/a\ServerName localhost:80' /usr/local/apache2/etc/httpd.conf
#添加ServerName,解决启动解析报错问题。
		
[root@LINUX-LAMP httpd-2.4.7]# chkconfig --add httpd
[root@LINUX-LAMP httpd-2.4.7]# chkconfig --level 235 httpd on
[root@LINUX-LAMP httpd-2.4.7]# echo 'export PATH=$PATH:/usr/local/apache2/bin' > /etc/profile.d/httpd.sh
[root@LINUX-LAMP httpd-2.4.7]# source /etc/profile.d/httpd.sh
[root@LINUX-LAMP httpd-2.4.7]# service httpd start|stop|restart|condrestart|reload|status|graceful|help|configtest
		
防火墙开放80端口
[root@LINUX-LAMP httpd-2.4.7]# iptables -I INPUT -m tcp -p tcp --dport 80 -j ACCEPT
[root@LINUX-LAMP httpd-2.4.7]# service iptables save
[root@LINUX-LAMP httpd-2.4.7]# service iptables reload

肆、安装MySQL

22、安装cmake

[root@LINUX-LAMP src]# cd /usr/local/src/cmake-3.6.2
[root@LINUX-LAMP cmake-3.6.2]# ./configure --prefix=/usr/local/cmake/
[root@LINUX-LAMP cmake-3.6.2]# make && make install

#cmake安装完成之后需要执行以下命令,否则会提示-bash: cmake: command not found
[root@LINUX-LAMP cmake-3.6.2]# export PATH=/usr/local/cmake/bin:$PATH

23、安装bison(如果有关于m4的报错,请执行13步,安装m4)

[root@LINUX-LAMP src]# cd /usr/local/src/bison-3.0.4
[root@LINUX-LAMP bison-3.0.4]# ./configure
[root@LINUX-LAMP bison-3.0.4]# make && make install > /root/bison.install.log

24、安装ncurses

[root@LINUX-LAMP src]# cd /usr/local/src/ncurses-6.0
[root@LINUX-LAMP ncurses-6.0]# ./configure --with-shared --without-debug --without-ada --enable-overwrite
[root@LINUX-LAMP ncurses-6.0]# make
[root@LINUX-LAMP ncurses-6.0]# make install > /root/ncurses.install.log

25、安装MySQL

[root@LINUX-LAMP src]# cd mysql-5.6.32
[root@LINUX-LAMP mysql-5.6.32]# groupadd mysql
[root@LINUX-LAMP mysql-5.6.32]# useradd -g mysql mysql
[root@LINUX-LAMP mysql-5.6.32]# mkdir -p /usr/local/mysql
[root@LINUX-LAMP mysql-5.6.32]# mkdir -p /data/mysqldb
	
[root@LINUX-LAMP mysql-5.6.32]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysqldb \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql
	
[root@LINUX-LAMP mysql-5.6.32]# make -j4         #使用4颗cpu同时进行编译,如果cpu资源不够可以不加
[root@LINUX-LAMP mysql-5.6.32]# make install
	
出现错误需要删除CMakeCache.txt,才能再次cmake,而不是make clean命令

[root@LINUX-LAMP mysql-5.6.32]# cd /usr/local/mysql
[root@LINUX-LAMP mysql]# chown -R mysql:mysql .              #或者[chown -R mysql .] + [chgrp -R mysql .]
[root@LINUX-LAMP mysql]# cd /data/mysqldb
[root@LINUX-LAMP mysqldb]# chown -R mysql:mysql .            #或者[chown -R mysql .] + [chgrp -R mysql .]
[root@LINUX-LAMP mysqldb]# cd /usr/local/mysql
[root@LINUX-LAMP mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
[root@LINUX-LAMP mysql]# chown -R root . 
[root@LINUX-LAMP mysql]# \cp -f /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
[root@LINUX-LAMP mysql]# echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib' > /etc/profile.d/mysql.sh
[root@LINUX-LAMP mysql]# source /etc/profile.d/mysql.sh

MySQL两种管理方法,任选一种

1、手工管理MySQL
[root@LINUX-LAMP mysql]# echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local     #开机自启动
[root@LINUX-LAMP mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql &                             #开启服务
        
[root@LINUX-LAMP mysql]# /usr/local/mysql/bin/mysql                                        #登录到mysql终端(刚安装完可以这样登录)
[root@LINUX-LAMP mysql]# /usr/local/mysql/bin/mysqladmin -uroot password 123456            
#设置mysql数据库里面root用户对应的密码为123456,注意,大家的密码就不要设置的这么简单

[root@LINUX-LAMP mysql]# history -C                                                        #清空历史命令
	
检查服务是否开启
ps -aux | grep httpd
netstat -ultn | grep 80
        
杀掉进程
[root@LINUX-LAMP mysql]# ps -ef | grep mysqld
[root@LINUX-LAMP mysql]# kill -9 "进程id"
[root@LINUX-LAMP mysql]# pkill mysqld
[root@LINUX-LAMP mysql]# 关于kill、pkill、killall的区别和用法,建议到http://man.linuxnb.com进行查询了解。
2、chkconfig管理MySQL
[root@LINUX-LAMP mysql]# \cp -f /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@LINUX-LAMP mysql]# service mysqld start|stop|restart|reload|status|force-reload
[root@LINUX-LAMP mysql]# chkconfig --level 35 mysqld on

防火墙开放3306端口
[root@LINUX-LAMP mysql]# iptables -I INPUT -m tcp -p tcp --dport 3306 -j ACCEPT
[root@LINUX-LAMP mysql]# service iptables save
[root@LINUX-LAMP mysql]# service iptables reload
[root@LINUX-LAMP mysql]# netstat -tulnp | grep 3306

检查服务是否开启
ps -aux | grep httpd
netstat -ultn | grep 3306

伍、安装PHP

26、安装php

在编译安装php之前,确保系统已经安装了libtool和libtool-ltdl软件包。
[root@LINUX-LAMP src]# yum -y install libtool*
[root@LINUX-LAMP src]# yum -y install libtool-ltdl*

安装以FastCGI模式安装即[新版标示为这个 --enable-fpm]
添加运行php-fpm服务的用户以及用户组
[root@LINUX-LAMP php-5.6.26]# groupadd fpmuser
[root@LINUX-LAMP php-5.6.26]# useradd -g fpmuser fpmuser


[root@LINUX-LAMP php-5.6.26]# ./configure --prefix=/usr/local/php \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-sockets \
--enable-ftp \
--enable-fpm \
--with-fpm-user=fpmuser \
--with-fpm-group=fpmuser \
--enable-mbstring \
--enable-xml \
--enable-soap \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-openssl-dir=/usr/local/openssl \
--with-curl=/usr/local/curl \
--with-libexpat-dir=/usr/local/expat \
--with-libxml-dir=/usr/local/libxml2 \
--with-xsl=/usr/local/libxslt \
--with-mcrypt=/usr/local/libmcrypt \
--with-mhash=/usr/local/mhash \                   
--with-zlib-dir=/usr/local/zlib \
--with-png-dir=/usr/local/libpng \
--with-jpeg-dir=/usr/local/jpeg \
--with-freetype-dir=/usr/local/freetype \
--with-iconv-dir=/usr/local/libiconv \
--with-bz2=/usr/local/bzip2 \
--with-gd=/usr/local/gd2 \
--with-pcre-dir=/usr/local/pcre \
--with-xpm-dir=/usr/lib \                  
--disable-ipv6

[root@LINUX-LAMP php-5.6.26]# make
[root@LINUX-LAMP php-5.6.26]# make install
		
报错如下
/usr/local/src/php-5.6.26/ext/gd/gd.c:57:22: 错误:X11/xpm.h:没有那个文件或目录
make: *** [ext/gd/gd.lo] 错误 1
[root@LINUX-LAMP php-5.6.26]# yum -y install libXpm-devel
在查询他的安装位置:
[root@LINUX-LAMP php-5.6.26]# rpm -ql libXpm-devel
/usr/bin/cxpm
/usr/bin/sxpm
/usr/include/X11/xpm.h
/usr/lib64/libXpm.so
/usr/lib64/pkgconfig/xpm.pc
/usr/share/man/man1/cxpm.1.gz
/usr/share/man/man1/sxpm.1.gz

在php编译参数加上  --with-xpm-dir=/usr/lib   ,然后重新编译,

[root@LINUX-LAMP php-5.6.26]# \cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@LINUX-LAMP php-5.6.26]# \cp /usr/local/src/php-5.6.26/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@LINUX-LAMP php-5.6.26]# chmod 755 /etc/init.d/php-fpm
[root@LINUX-LAMP php-5.6.26]# chkconfig --level 35 php-fpm on
[root@LINUX-LAMP php-5.6.26]# \cp /usr/local/src/php-5.6.26/php.ini-production /etc/php.ini

[root@LINUX-LAMP php-5.6.26]# service php-fpm start|stop|force-quit|restart|reload|status

检查服务是否开启
ps -aux | grep php-fpm
netstat -ultn | grep 9000

特别注意:
	如果本机有安装mysql,则应该这样写
	--with-mysql=/usr/local/mysql
	--with-pdo-mysql=/usr/local/mysql \
	--with-mysqli=/usr/local/mysql/bin/mysql_config
	
	如果本机没有安装mysql,则应该这样写,适用于php和mysql分别在不同服务器上使用。
	--with-mysql=mysqlnd
	--with-pdo-mysql=mysqlnd
	--with-mysqli=mysqlnd
	
修改apache配置文件添加php解析,再下面代码段下面添加虚线框中的两条信息。

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted

    
vim /usr/local/apache2/etc/httpd.conf
------------------------------------------------------------------------------------
|   ProxyRequests Off                                                              |
|   ProxyPassMatch ^(/.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache2/htdocs/$1  |
------------------------------------------------------------------------------------
添加完成之后,打开如下两行的注释。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
然后保存关闭,重启apache
[root@LINUX-LAMP php-5.6.26]# service httpd restart

编写php测试文件,测试php解析是否成功,请确保httpd和php-fpm都已启动。
[root@LINUX-LAMP php-5.6.26]# cd /usr/local/apache2
[root@LINUX-LAMP apache2]# vim /usr/local/apache2/htdocs/index.php
<?php
    phpinfo();
?>
浏览器访问http://192.168.2.42/index.php,能看到php版本信息就是没问题。

编写mysql连接测试文件,请确保mysql已启动
[root@LINUX-LAMP apache2]# vim /usr/local/apache2/htdocs/mysql.php
<?php 
    $link=mysql_connect("127.0.0.1","root","123456"); 
    if(!$link) echo "FAILD!连接错误,用户名密码不对"; 
    else echo "OK!可以连接"; 
?>
浏览器访问http://192.168.2.42/mysql.php,能看到php版本信息就是没问题。

27、安装memcached服务器端

安装libevent
[root@LINUX-LAMP src]# yum -y install libevent-devel
[root@LINUX-LAMP src]# cd /usr/local/src/memcached-1.4.31
[root@LINUX-LAMP memcached-1.4.31]# ./configure --prefix=/usr/local/memcached
[root@LINUX-LAMP memcached-1.4.31]# make && make install
[root@LINUX-LAMP memcached-1.4.31]# groupadd memcached
[root@LINUX-LAMP memcached-1.4.31]# useradd -g memcached memcached
[root@LINUX-LAMP memcached-1.4.31]# echo "/usr/local/memcached/bin/memcached -umemcached &" >> /etc/rc.local   #开机启动
[root@LINUX-LAMP memcached-1.4.31]# /usr/local/memcached/bin/memcached -umemcached &          #启动memcached服务器端
    
chkconfig添加memcached,将memcached交给chkconfig来管理

以下是有群友@深圳-沉醉寒风提供的启动脚本,请通过wget下载,或者右键另存为...
[root@LINUX-LAMP memcached-1.4.31]# wget http://man.linuxnb.com/public/init.d/memcached.init
[root@LINUX-LAMP memcached-1.4.31]# \mv memcached.init /etc/init.d/memcached
[root@LINUX-LAMP memcached-1.4.31]# chmod +x /etc/init.d/memcached
[root@LINUX-LAMP memcached-1.4.31]# service memcached start|stop|status|restart            #接着你就可以使用这些命令实现开、关、重启

[root@LINUX-LAMP memcached-1.4.31]# chkconfig --add memcached
[root@LINUX-LAMP memcached-1.4.31]# chkconfig --level 235 memcached on
[root@LINUX-LAMP memcached-1.4.31]# echo 'export PATH=$PATH:/usr/local/memcached/bin' > /etc/profile.d/memcached.sh
[root@LINUX-LAMP memcached-1.4.31]# source /etc/profile.d/memcached.sh
[root@LINUX-LAMP memcached-1.4.31]# service memcached start|stop|restart|status

检查服务是否开启
ps -aux | grep memcached
netstat -ultn | grep 11211

防火墙开放11211端口
[root@LINUX-LAMP httpd-2.4.7]# iptables -I INPUT -m tcp -p tcp --dport 11211 -j ACCEPT
[root@LINUX-LAMP httpd-2.4.7]# service iptables save
[root@LINUX-LAMP httpd-2.4.7]# service iptables reload

28、安装php扩展功能memcache

[root@LINUX-LAMP src]# cd /usr/local/src/memcache-2.2.7
[root@LINUX-LAMP memcache-2.2.7]# yum -y install zlib-devel
[root@LINUX-LAMP memcache-2.2.7]# /usr/local/php/bin/phpize
[root@LINUX-LAMP memcache-2.2.7]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@LINUX-LAMP memcache-2.2.7]# make && make install
请注意最后一行是否有此信息     Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
有此信息就是成功,没有即失败。
[root@LINUX-LAMP mcrypt]# vim /etc/php.ini
查找extension_dir修改为下面,并打开注释
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
修改完之后再紧随其后添加下面一行
extension="memcache.so"

29、安装php扩展memcached

[root@LINUX-LAMP src]# cd /usr/local/src/memcached-2.2.0
/usr/local/php/bin/phpize
./configure  --with-memcached -with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached
make && make install
请注意最后一行是否有此信息     Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
有此信息就是成功,没有即失败。
[root@LINUX-LAMP mcrypt]# vim /etc/php.ini
查找extension_dir修改为下面,在步骤28编辑之后的地方添加如下
extension="memcached.so"

30、安装Zend加速器

[root@LINUX-LAMP src]# cd /usr/local/src/zend-loader-php5.6-linux-x86_64/
[root@LINUX-LAMP zend-loader-php5.6-linux-x86_64]# cp /usr/local/src/zend-loader-php5.6-linux-x86_64/ZendGuardLoader.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/

由于之前我们编译的memcache.so和memcached.so都在这个路径,所以我也直接将这个ZendGuardLoader.so拷贝到这个路径了。
[root@LINUX-LAMP zend-loader-php5.6-linux-x86_64]# vim /etc/php.ini
添加如下几行即可,可以直接在之前添加memcache.so和memcached.so代码块下面添加,这样这些改动都在一起,也好排查,自己也知道大概在哪里。

zend_extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/ZendGuardLoader.so"
zend_loader.enable = 1
zend_loader.disable_licensing = 0
zend_loader.obfuscation_level_support = 3
zend_loader.license_path =

保存退出,然后重启php-fpm服务

[root@LINUX-LAMP src]# service php-fpm restart
访问http://192.168.2.42/index.php 有 with Zend Guard Loader v3.3 字样,就表示zend加速器已经加载成功。

总结:
初次接触CentOS7,很多不懂,而且systemd改动太大,这篇文章也整理了好久,测试了好几遍,希望对大家有帮助。
如果觉得本站内容对您有所帮助,请分享推荐给更多朋友。返回首页添加交流群。有错误的地方也希望大家联系指正。
部分内容由群友提供,本文原创,如果转载请说明出处,再次感谢大家的观看。