从零开始编译安装LAMP(上)

一、Linux平台架构(虚拟机安装CentOS6.3)(--上)

说明:操作系统使用centos6.3,64位架构。由于生产环节安装Linux平台都是使用最小化安装,因此这次也是采用最小化安装。

1.打开虚拟机,选择创建新的虚拟机--然后选择典型(推荐)安装,点击下一步

2.选择“稍后安装操作系统”

3.点击下一步,然后选择自己需要安装的操作系统和系统版本。我安装的是64位的CentOS6.3,如下图一样选择。

从零开始编译安装LAMP(上)

4.点击下一步,之后会出现给虚拟机命名,以及选择虚拟机位置。在此处就是让他叫做CentOS6.3_64,位置按照你的需要选择。如下图:

从零开始编译安装LAMP(上)

5.配置好以后,点击“下一步”,给虚拟机分磁盘,这里我们可以随便分,即使查过物理磁盘大小也是可以的

6.点击“下一步”,然后点击完成。现在就回在虚拟机中出现刚刚创建的Centos6.3_64,但是现在仅仅只是一个框架,我们此时可以修改操作系统硬件环境配置,比如内存大小,处理器数量以及网络模式等等。

7.双击设备下面的子选项可以修改单个虚拟物理硬件的配置,这里我们主要修改一下网络适配器的模式,让他以桥接的方式存在,这样就相当于一个真实的物理主机,IP地址也是独立的,和主机是在同一个网段的。

8.点击确定以后,就可以挂在光盘镜像了。现在双击CD/DVD(IDE)选项。然后选择使用ISO镜像文件,点击浏览找到镜像位置,然后点击确定就可以进行镜像文件安装了。

9.现在就可以点击开启此虚拟机,然后进行系统配置。这个我们分为系统安装,下节再讲。

一、Linux平台架构(虚拟机安装CentOS6.3)(--下)

1.打开vmware,点击开启此虚拟机

2.将鼠标放进虚拟机界面,点击一下,发现指针在虚拟机里面,使用上下箭头选择条目,我们选择第一项,按ENTER键选择,进入安装。

3.等待一会会进入Disc Found阶段,这时我们按下tab键,选择SKIP跳过自检,然后按下ENTER进行安装(生产环境大家可以使用OK选项进行检测,会花费一段时间,在此就不描述了,有兴趣的朋友可以试着做一下)。

4.鼠标点击右下角的next,进入系统环境配置。接下来会让我们选择系统语言,以及键盘方式,此处我们选择English语言,键盘习惯选择U.S.English,点击NEXT,继续选择设备类型。

5.我们选择基本存储类型(Basic Storage Devices),然后点击NEXT,此时会提示是否抹除磁盘数据,选择Yes,discard any data。

6.输入Hostname,给自己系统取个名字,我们就叫做centos1,然后选择下一步。

7.接下来会让我们选择系统时区,我们选择Asia/Shanghai,注意勾选上下面的System clock uses UTC,点击下一步后,会提示输入密码。(如果密码设置的过于简单,会跳出提示,显示密码太弱,这个时候选择Use Anyway,当然我们是因为测试环境,可以这样,如果是生产环境,千万不可设置过于简单的密码)。

8.在完成密码设置后,会进入磁盘分区,一般生产环境都会选择自定义分区,即Create Custom Layout,选择好以后点击下一步,会跳出分区页面。选择create,然后选择标准分区Standard Partition,一般第一个分区要给/boot分区,即挂载点选择/boot,文件系统类型选择ext4,大小给200M就足够用了。点击OK,创建该分区成功。

9.下面要创建swap分区,这个其实是相当于windows中的虚拟内存,一般我们给内存的2倍,当然你内存要是4G以上,给个0.5或者1倍就足够了。我的是1G内存,因此我给swap2G内存。继续选择Create,依然选择创建标准分区,接着在文件系统选择swap,大小选择2000M,点击OK进行创建。

10.然后依次创建根分区挂载点/,和/usr/local挂载点,分别给50G,因为现在只是先教着大家装系统,所以有关磁盘阵列和逻辑卷的创建暂时就不说了,看到我们还留有近100G的空间,就是留着以后创建逻辑卷和磁盘阵列的,先预告一下。总之创建好以后,磁盘分区情况如下:

11.点击next后会弹出是否格式化的提示,点击是,然后会提示是否将配置写入磁盘,选择write changes to disk,接着系统开始安装,首先会提示将boot分区写入/dev/目录下的某个分区上,点击NEXT即可进入安装。(如果你下载的系统镜像是完全版的话,可以选择最小化安装,因为我下载的是精简版,也就是最小化镜像,因此会直接跳到安装界面,自动安装)。稍等一会,安装好以后点击右下角的reboot,重启之后就表示精简的Linux系统就安装好了。重启之后可以进入登陆界面,用户名为root,密码就是我们之前设置的,输入以后就可以进入操作系统了。

备注:从虚拟机中将鼠标释放出来,需要同时按下ctrl和Alt键。

二、Linux操作系统简单网络配置

1.启动虚拟机上的Linux系统之后,默认情况下网卡是没有被**的。因此第一步就是配置网卡信息。使用vi编辑器,直接修改配置文件。(vi编辑器的使用自己百度吧,目前只要知道编辑、修改、保存即可)。修改网卡配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改成如***意IP地址和你主机在同一个网段内,且不要和其他主机冲突即可。

DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:0C:29:25:CC:A1"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="bf4dee67-7ebb-46cb-97b4-209d5d6838ca"
IPADDR="192.168.1.214"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
PEERDNS="no"

现在就可以**网卡了,**命令:service network start,如果网卡比较多的话,就不可以这样启动了,而是使用ifconfig命令。

ifconfig 网卡名称 [UP/DOWN]来启动/关闭相关网卡。比如我们要启动当前的eth0网卡,只需要使用一下命令:ifconfig eth0 up,

网卡**之后,现在ping baidu的域名还是不行的,会提示不可知域名。这是因为我们DNS没有配置,简单的方式在本机指定一下域名服务器地址,我习惯用本地的网关地址作为DNS服务器地址,下面就可以修改DNS配置文件来配置DNS解析。

2.修改DNS配置文件,这里我们在resolv.conf中修改。

vi /etc/resolv.conf  (添加一行)

nameserver 192.168.1.1

即把你的网关添加进去。

3.PING测试,可以ping一下网关,测试网络连接是否正常。

[root@centos1 ~]# ping -c 3 -w 3 baidu.com
PING baidu.com (180.149.132.47) 56(84) bytes of data.
64 bytes from 180.149.132.47: icmp_seq=1 ttl=50 time=38.5 ms
64 bytes from 180.149.132.47: icmp_seq=2 ttl=50 time=38.7 ms
64 bytes from 180.149.132.47: icmp_seq=3 ttl=50 time=41.7 ms
--- baidu.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2070ms
rtt min/avg/max/mdev = 38.593/39.715/41.768/1.462 ms

备注:在Linux系统上,ping命令如果不指定参数会一直ping下去,我们可以手动按下ctrl+c来终止,也可以在ping命令启动时加入参数来指定。比如-c指定ping的测试,-w指定等待时长。上例的ping -c 3 -w 3 baidu.com 就表示ping三次,等待3秒,两者任何一个满足就退出ping命令。

到此为止,linux的网络配置基本上就算简单完成了

三、Apache的安装(httpd的安装)

Apache是一个开源项目组织,其开发的产品包括httpd,tomcat,Hadoop等,已经是现在服务器架构的中坚力量。httpd是一种web服务器,也是全球使用最广泛的web服务器,这与其高效的性能和免费开源的性质有很大关系。今天我们就来说一下企业中,手动编译安装httpd的方法与步骤。

1.为了便于操作与管理,我习惯性使用xshell连接linux服务器,然后在/usr/local目录下建立一个专门用于存储第三方安装包的文件,取名lampsoft。如下:

[root@centos1 ~]# mkdir /usr/local/lampsoft
[root@centos1 ~]# cd /usr/local/lampsoft/
[root@centos1 lampsoft]# ll
total 0

2.现在我们就要使用xftp来从主机传送文件了。点击下图中红圈中的图标,打开xftp,找中你需要上传的文件路径,选中这些文件,双击一下就可以拖拽到相应的linux系统目录下。本实验室拖到/usr/local/lampsoft下。

从零开始编译安装LAMP(上)

3.等待上传完毕即可进行安装,安装apache需要首先安装两个组文件——“Development Tools”、“Compatibility libraries”。我们使用yum源安装,centos直接提供yum源文件,只需要linux服务器可以联网,就可以直接使用下载、安装,非常方便。如果没有联网的朋友,则可以使用本地yum源,配置方法可百度。

[root@centos1 lampsoft]# yum groupinstall "Development Tools"

会自动下载需要的安装包以及依赖包。如下图,一共需要安装128个包,想一下如果没有这个yum源,我们什么时候能安装好着128个包,即使运行LAMP环境不需要那么多,但是工作量还是非常大的。现在我们只需要一个简单的命令就可以完成安装。yum搜集好文件包后会问我们是否下载、安装,我们输入Y就可以。等待一会安装成功就可以了,再使用相同的方法安装一下Compatibility libraries,当然也可以和Development Tools一起安装,命令:yum groupinstall "Development Tools"  “Compatibility libraries” -y(使用-y则不需要我们输入y确认,直接进行安装。)

从零开始编译安装LAMP(上)

如下面就已经安装完成:

从零开始编译安装LAMP(上)

4.现在我们两个组文件都已经安装成功,还有两个包需要安装,即apr以及apr-util,这两个是httpd的运行环境包,相当于java中的虚拟机,是模拟出一个httpd可以运行的环境。我们使用的安装包apr-1.5.2.tar.gz 和 apr-util-1.5.4.tar.gz 。安装方法:

1.tar xvf apr-1.5.2.tar.gz 

2.cd apr-1.5.2

3../configure --prefix=/usr/local/apr

安装报错:rm: cannot remove `libtoolT': No such file or directory,这个是因为configure文件中,有行代码有问题,我们使用vi 编辑configure文件。大概在29605行,源代码如下:

从零开始编译安装LAMP(上)

只需要将RM='$RM' 改成RM='$RM -f'即可。修改好以后,重新编译即可通过。

4.make && make install  如下就已经安装成功

从零开始编译安装LAMP(上)

5.安装apr-util

tar xvf apr-util-1.5.4.tar.gz 

cd apr-util-1.5.4

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

make && make install

出现以下提示则表示安装成功。

从零开始编译安装LAMP(上)

5.因为现在web服务器支持ssl加密功能,因此我们需要先安装openssl包。安装方法:

1)tar xvf openssl-1.0.2d.tar.gz 

2)cd openssl-1.0.2d

3)./config --prefix=/usr/local/openssl -fPIC no-gost

4)make depend

5)make

6)make install

7) /usr/local/openssl/bin/openssl version  (查看openssl版本信息,如下即是对的)
OpenSSL 1.0.2d 9 Jul 2015

6.现在终于开始安装httpd了,我们使用的安装包为:httpd-2.4.16.tar.bz2

1.)tar xvf httpd-2.4.16.tar.bz2

2.)cd httpd-2.4.16

3.)./configure --prefix=/usr/local/apache  --enable-so --enable-ssl --with-ssl=/usr/local/openssl --enable-cgi --enable-rewrite--with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all

报错:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/,这是因为缺少pcre-devel包,使用yum源安装即可。

解决办法:yum install pcre-devel -y

4.)继续编译安装

./configure --prefix=/usr/local/apache  --enable-so --enable-ssl --with-ssl=/usr/local/openssl --enable-cgi --enable-rewrite--with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most

 --enable-mpms-shared=all

5.)make

6.)make install 出现如下画面则证明安装成功了。

从零开始编译安装LAMP(上)

7.)修改apache的配置文件(注意:修改任何配置文件之前都要先做好备份)

 cd /usr/local/apache/conf/

cp httpd.conf httpd.conf.bak

vi httpd.con 需要修改两处

第一处:在ServerRoot "/usr/local/apache"下面添加一行代码——PidFile "/var/run/httpd.pid"

第二处:将#ServerName www.example.com:80修改为ServerName localhost:80(注意:前面的#要去掉)

8.)添加httpd的bin文件到PATH路径下,这样我们使用httpd的命令系统就可以找到了。

第一步:vi /etc/profile.d/httpd.sh (添加如下内容)

export PATH=$PATH:/usr/local/apache/bin

第二步:source /etc/profile.d/httpd.sh

第三步:查看环境变量是否已经包含httpd的bin文件路径。

echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/apache/bin

(已经添加成功了)

9.)添加httpd的头文件(include)

ln -sv /usr/local/apache/include/ /usr/include/apache

10.)添加httpd的帮助文件路径,这需要系统自身安装了man命令,因为我们是最小化安装,所有需要手动安装一下man,也很简单,我们使用域名安装,即:

第一步:yum install man -y

第二步: vi /etc/man.config在最后添加一行:

MANPATH /usr/local/apache/man

到此为止,apache就已经安装、配置成功了。我们可以启动httpd了,启动命令:/usr/local/apache/bin/apachectl start,,因为我们之间已经重写了环境变量,将httpd的bin文件路径告知系统,因此咱们直接使用apachectl start 就可以启动,默认httpd监听在80端口,我们可以使用netstat -nltp查看80端口是否已将开启。如下:

从零开始编译安装LAMP(上)

那现在能不能访问呢?我们来试下,再试之前建议大家关闭防火墙和selinux,因为我们现在只是测试大家LAMP架构,防火墙会在后面的文章专门讲到。关闭方法:

防火墙关闭方法:

1.service iptables stop(关闭当前防火墙,但是重启系统后默认依然会自动重启)

2.chkconfig --level 2345 iptables off(关闭iptables,系统重启后不会自动重启)

3.chkconfig --list |grep iptables

(查看是否关闭成功,全是off表示关闭成功)

selinux关闭方法:

1.setenforce 0(关闭当前selinux)

2.getenforce (查看当前selinux状态,现在为Permissive,系统重启后仍然会自动启动)

3.vi /etc/sysconfig/selinux 将SELINUX=enforcing这行代码改成SELINUX=disabled,这样系统重启以后也不会重启selinux。

整个过程如下图:

从零开始编译安装LAMP(上)

11.)终于可以检测一下自己的安装成果了,在本地浏览器上直接输入你虚拟linux服务器ip地址(比如我现在的虚拟linuxIP地址为192.168.1.214)即可访问。

从零开始编译安装LAMP(上)

看到没有,It works!为了娱乐,我们可以直接修改显示内容,没事的时候可以装装逼嘛!修改文件 vi /usr/local/apache/htdocs/index.html,把It works!改成你想看到的任意内容即可,保存之后再刷新浏览器即可显示。

从零开始编译安装LAMP(上)

OK,搞定了。下一节我们来讲mysql的安装和配置。

四、MySQL的安装

MySQL的安装我们采用通用二进制包,因为手动编译安装花费的时间太长太长~而且通用二进制包已经包含了企业所需要的基本功能。因此我们使用这种方案,下载安装包mysql-5.5.43-linux2.6-x86_64.tar.gz。

1.首先下载好安装包,上传到指定目录下,我还是使用上节的目录即:/usr/local/lampsoft

2.解压

tar xvf mysql-5.5.43-linux2.6-x86_64.tar.gz -C /usr/local/

使用-C参数,将压缩包的解压位置指定到/usr/local下。

现在/usr/local目录下已经生成一个mysql-5.5.43-linux2.6-x86_64目录,由于这个目录信息含有mysql的版本号,平台架构,因此不想修改它的名字。但是mysql官方文档又建议我们安装子啊/usr/local/mysql下,怎么办呢?做个软连接好了。

3.软连接

ln -sv /usr/local/mysql-5.5.43-linux2.6-x86_64/ /usr/local/mysql
成功后会这样提示:`/usr/local/mysql' -> `/usr/local/mysql-5.5.43-linux2.6-x86_64/'    

4.创建mysql的用户和组

groupadd -g 306 -r mysql 创建mysql组,-g指定组ID,此处为306,-r表示创建系统用户组,注意少于500的都是系统用户组。

useradd -r -g 306 -u 306 mysql 创建mysql组,-g指定属于哪个用户组,-r表示创建系统用户,-u指定用户ID。查看一下创建是否成功

id mysql   显示如下:

uid=306(mysql) gid=306(mysql) groups=306(mysql)  表示用户id为306,组id为306,用户mysql属于mysql组。有点拗口,习惯了就好了。

5.改变mysql目录下的文件属组和属主

chown -R mysql:mysql /usr/local/mysql/*

使用ll命令查看一下属组和属主信息,如下:

[[email protected] local]# ll /usr/local/mysql/
total 216
drwxr-xr-x  2 mysql mysql   4096 Jul 31 00:42 bin
-rw-r--r--  1 mysql mysql  17987 Feb 27 16:30 COPYING
drwxr-xr-x  3 mysql mysql   4096 Jul 31 00:42 data
drwxr-xr-x  2 mysql mysql   4096 Jul 31 00:42 docs
drwxr-xr-x  3 mysql mysql   4096 Jul 31 00:42 include
-rw-r--r--  1 mysql mysql 148414 Feb 27 16:30 INSTALL-BINARY
drwxr-xr-x  3 mysql mysql   4096 Jul 31 00:42 lib
drwxr-xr-x  4 mysql mysql   4096 Jul 31 00:42 man
drwxr-xr-x 10 mysql mysql   4096 Jul 31 00:42 mysql-test
-rw-r--r--  1 mysql mysql   2496 Feb 27 16:30 README
drwxr-xr-x  2 mysql mysql   4096 Jul 31 00:42 scripts
drwxr-xr-x 27 mysql mysql   4096 Jul 31 00:42 share
drwxr-xr-x  4 mysql mysql   4096 Jul 31 00:42 sql-bench
drwxr-xr-x  2 mysql mysql   4096 Jul 31 00:42 support-files

6.创建mysql数据文件路径,默认是存储在mysql安装目录下面的data下,但是这样以后数据满了的话不好扩展,企业级一般都会使用逻辑卷的方式,使用单独的硬盘或者服务器进行数据的存储,我们暂时不讲的那么深入,等LAMP教程完结之后,我会专门抽出一节将lvm技术。目前我们暂时把数据存储在/mydata/data下,这两个目录都是没有的,需要我们手动创建。

mkdir -pv /mydata/data 会看到以下提示:

mkdir: created directory `/mydata'
mkdir: created directory `/mydata/data' 表示创建成功了

7.mysql的初始化执行,我们只需要执行以下安装目录下面的一个脚本文件即可。

/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ --basedir=/usr/local/mysql

注意:使用--user来指定mysql的用户,datadir指定数据文件路径,因为我们不使用默认的数据存储路径,因此这里是一定要指定的。另外--basedir指定mysql的安装路径,否则会提示找不到./bin/my_print_defaults。执行之后没有报错的话,我们的mysql安装就初步完成了,下面的步骤就是调整和规范化了。

8.修改MySQL的属主为root,这样可以在黑客在**了mysql权限之后,仍然无法修改mysql数据。修改好之后查看一下,整个过程如下:

[[email protected] mysql]# chown -R root /usr/local/mysql/*
[[email protected] mysql]# ll /usr/local/mysql/
total 216
drwxr-xr-x  2 root mysql   4096 Jul 31 00:42 bin
-rw-r--r--  1 root mysql  17987 Feb 27 16:30 COPYING
drwxr-xr-x  3 root mysql   4096 Jul 31 00:42 data
drwxr-xr-x  2 root mysql   4096 Jul 31 00:42 docs
drwxr-xr-x  3 root mysql   4096 Jul 31 00:42 include
-rw-r--r--  1 root mysql 148414 Feb 27 16:30 INSTALL-BINARY
drwxr-xr-x  3 root mysql   4096 Jul 31 00:42 lib
drwxr-xr-x  4 root mysql   4096 Jul 31 00:42 man
drwxr-xr-x 10 root mysql   4096 Jul 31 00:42 mysql-test
-rw-r--r--  1 root mysql   2496 Feb 27 16:30 README
drwxr-xr-x  2 root mysql   4096 Jul 31 00:42 scripts
drwxr-xr-x 27 root mysql   4096 Jul 31 00:42 share
drwxr-xr-x  4 root mysql   4096 Jul 31 00:42 sql-bench
drwxr-xr-x  2 root mysql   4096 Jul 31 00:42 support-files

看到所有文件和目录的属组为mysql,属主为root,现在可以执行下一步了——为mysql提供配置文件。

9.其实mysql自己已经把配置文件写好了,在安装目录下的support-files目录下有很多以.cnf结尾的文件,这些就是不同硬件配置所需要的配置文件,一般内存在512M-1G之间使用my-large.cnf文件,2G以上使用my-huge.cnf,具体的大家可以看一下,每个文件里面都有使用配置介绍。这里我们使用my-large.cnf文件。

cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf

 

10.修改配置文件,最简单的方式只需要修改两处:

第一处:修改一行代码

thread_concurrency = 8 (具体要等于几,是根据你cpu的个数乘以2得出的,CPU的个数怎么确定呢?使用这条命令:cat /proc/cpuinfo |grep processor |wc -l,得出的数字就是CPU的个数),我的是2个,因此此处数值改为4.

即:thread_concurrency =4

第二处:直接在thread_concurrency = 4下面添加一行代码,即:datadir = /mydata/data

11.为mysql提供sysv服务脚本,顺便提一下,httpd我们也可以写sysv脚本,但是我认为不使用依然能够解决基本问题,比如基本的启动、停止等操作,以及开机自启操作都可使用其他命令简单配置,可能比写脚本更加简单。因为mysql提供好了脚本,我们只需要简单的改个名字复制到/etc/init.d下面就可以,还是非常简单的。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

给mysqld执行权限,默认都是有的,不过最好检查一下,不然后果很严重。命令:chmod +x /etc.init.d/mysqld,查看一下是不是每个位都含有x项。

ll /etc/init.d/mysqld 
-rwxr-xr-x 1 root root 10880 Jul 31 01:33 /etc/init.d/mysqld

权限没问题之后,咱们就可以做出自启动了,两条命令:

# chkconfig  --add mysqld

# chkconfig mysqld on如此即可。

 

12.下面是mysql的规范化使用了。

a.)修改帮助文件命令,添加mysql的man路径

vi /etc/man.config 在最后一行添加如下代码

MANPATH /usr/local/mysql/man

b.)添加mysql的头文件位置

我们同样使用软连接实现:

ln -sv /usr/local/mysql/include/ /usr/include/mysql

c.)添加mysql的执行文件

vi /etc/profile.d/mysql.sh
添加如下一行代码

export PATH=$PATH:/usr/local/mysql/bin 添加完成后,执行一下以下命令即可

source /etc/profile.d/mysql.sh

d.)添加mysql的库文件

vi /etc/ld.so.conf.d/mysql.conf 在该文件了添加mysql的lib路径,我的是/usr/local/mysql/lib,直接将这行代码写进去就可以了。

然后使用ldconfig -v让系统重新读取一下库文件。如果配置正确的话,我们可以看到mysql的库文件已将加载进来,如下图所示:

从零开始编译安装LAMP(上)

 

13.到此为止mysql就已经安装配置成功了,我们现在可以连接一下试试了。当然连接之前我们要先启动mysql了,启动命令:service mysqld start。启动成功会有提示信息:

Starting MySQL... SUCCESS! 

mysql的端口号默认监听在3306,这也是为什么之前那我们把mysql的组和用户ID都设置成306,好记,意义也比较明确。成功之后直接使用mysql就可以连接到mysql服务器上。可以查看版本信息,查看连接用户等信息,如下图:

从零开始编译安装LAMP(上)

五、PHP的安装

1.php的安装包使用5.6版本的最新稳定版php-5.6.11.tar.bz2,解压缩

tar xvf php-5.6.11.tar.bz2

2.进入php目录下,进行编译安装。这次我们不提前安装依赖包,而是在编译过程中,根据报错信息,一边修补一边安装,这样也更能让大家体会到真实生活中所面临的问题。但是要相信,最终总是会解决的,可能过程比较复杂,但是你同样要相信,你花十天学会一样东西和花费半个时辰学会一样东西的熟练度与认知度是不一样的。我们有生以来可能会遭受太多的欺骗,但是唯有自己的汗水是不会欺骗自己,相信自己,一起加油吧!

cd php-5.6.11

./configure --prefix=/usr/local/php  --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml  --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-gd --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts 

报错1:configure: error: xml2-config not found. Please check your libxml2 installation

解决办法:yum install libxml2 libxml2-devel -y

现在重新编译安装,上面问题已解决,但是又报错:

报错2: checking for BZip2 in default path... not found
configure: error: Please reinstall the BZip2 distribution

解决办法:yum install bzip2 bzip2-devel

重新编译安装,同样又有新的报错,这次是:

报错3: checking for T1lib support... no
checking whether to enable truetype string function in GD... no
checking whether to enable JIS-mapped Japanese font support in GD... no
If configure fails try --with-vpx-dir=<DIR>
configure: error: jpeglib.h not found.

解决办法:yum install gd.x86_64 gd-devel.x86_64 jpeg-turbo.x86_64 libjpeg-turbo-devel.x86_64 libpng.x86_64 libpng-devel.x86_64 freetype.x86_64 freetype-devel.x86_64 

继续重新编译,发现果然还有一个问题,

报错4:configure: error: mcrypt.h not found. Please reinstall libmcrypt.

提示我们加密文件的头文件找不到,其实我们根本没有安装。我们来重新安装一下,这个安装要稍微复杂一点,需要下载四个安装包,分别是:libmcrypt-2.5.8-alt1.x86_64.rpm        mhash-0.9.9.9-3.el6.x86_64.rpm

libmcrypt-devel-2.5.8-alt1.x86_64.rpm  mhash-devel-0.9.9.9-3.el6.x86_64.rpm

现在我们就来安装一下。

解决办法:rpm -ivh libmcrypt-2.5.8-alt1.x86_64.rpm        mhash-0.9.9.9-3.el6.x86_64.rpm

libmcrypt-devel-2.5.8-alt1.x86_64.rpm  mhash-devel-0.9.9.9-3.el6.x86_64.rpm

出现如下提示即证明安装成功

从零开始编译安装LAMP(上)

如果出现下面这样的界面,则表示编译通过了。

从零开始编译安装LAMP(上)

3.现在可以make了,可能要等一会了,这个时间稍微会长一点。

make

在我们make完成之后,一般会提示让我们测试一下,没事的话大家可以做一下,命令:make test,我就不测试了,直接进行安装了。

从零开始编译安装LAMP(上)

4.安装

make install

这步非常快,如下即可。

从零开始编译安装LAMP(上)

5.为php提供配置文件,也是php自己已经写好的,我们直接复制改名,放到之前定义的php配置文件位置就行了。如下图:

从零开始编译安装LAMP(上)

6.编译apache的配置文件,整合apache和php。

vi /usr/local/apache/conf/httpd.conf 需要修改两处

第一处:找到AddType 行,然后添加如下两行。

 AddType application/x-httpd-php  .php
 

 AddType application/x-httpd-php-source  .phps

第二处:定位至DirectoryIndex index.html 

  修改为:
DirectoryIndex  index.php  index.html

保存好退出,重启httpd,重启命令还记得吧,apachectl restart。

7.在重启之前我们要写个php的测试文件,不然你怎么知道php有没有被apache整合调用呢。在/usr/local/apache/htdocs/下编辑一个index.php文件。即

vi /usr/local/apache/htdocs/index.php 写上如下代码:

<?php

phpinfo();

?>

保存退出即可。

8.现在可以去重启Apache了,看一下有没有把php的信息调用出来。重启以后,我们在浏览器访问虚拟linux服务器地址。如下图即证明我们成功了

从零开始编译安装LAMP(上)

在这个界面里,我们可以查看装了那些插件,支持哪些功能等等。

六、使用XCache为php加速

XCache官网如下介绍其产品:XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载.

另外需要注意的是,XCache只有3.2.0以后的版本才对php5.6支持,因此各位朋友如果想使用XCache为php加速的话,记得去官网下载最新版本,目前最新版是2014年09月18日发布的3.2.0.官网:http://xcache.lighttpd.net

现在开始安装XCache

1.解压

# tar xvf xcache-3.2.0.tar.gz

2.使用phpize扩展php的模块,可以建立php的外挂模块,现在我们使用的是xcache。

# cd xcache-3.2.0

# /usr/local/php/bin/phpize 

出现如下提示即为正确

Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

注意!!!执行/usr/local/php/bin/phpize这条命令,一定要进入到xcache的解压目录下执行,否则会报错:

Cannot find config.m4. 
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

3.配置编译xcache了

# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config 

出现如下提示即可

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h

4.编译安装

# make && make install

5.安装结束后会出现如下一行:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

把后面这段复制下来,后面要用到。

6.编辑php.ini配置文件,整合php和xcache。

# mkdir /etc/php.d

# cp xcache.ini /etc/php.d

# vi /etc/php.d/xcache.ini  在[xcache-common]下面修改一行,将extension = xcache.so改成如下:

extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so

注意:

1.xcache.size默认等于60M,如果等于0表示禁用 

2.; extension = php_xcache.dll这个.dll文件是给Windows用的,注释掉即可。默认也是注释掉的

 

好了,到底为止已经算是完成了LAMP架构。

转载于:https://my.oschina.net/gywbest/blog/780495