详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)
<p>本文详细阐述在 linux 系统中搭建 php 环境,由于 php 就是由 c 语言编写的,最初也是运行在 linux 系统中,所以linux 是 php 的最佳环境。</p>
<p>
关于本文中使用到的软件,请点击此链接下载。</p>
<p>
centos5.5现在官方已经不再提供,推荐大家使用centos6以上版本:</p>
<p>
本文中作者是以虚拟机(vmware)安装的 centos 5.5 进行试验。下面进行安装详解</p>
<p>
<strong>1、准备工作</strong></p>
<p>
一、请先确认你所安装的 linux 系统中是否已经安装了apache、mysql、php,如果安装请先卸载。</p>
<p>
查看是否安装(apache为例)</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_347646">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># rpm -qa|grep httpd</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
注:rpm -qa 是查看本机中已经安装的所有软件。 grep httpd 是过滤出与 httpd(apache) 有关的软件。注:grep php 是查看 php;grep mysql 是查看 mysql</p>
<p>
如果执行完命令后出现空,那么说明机器中没有安装 apache 软件,如果出现诸如下情况说明已经安装。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" alt="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" src="https://zhuji.jb51.net/uploads/img/202305/dd4e642dcd698a0a1f7151bc1043807b.jpg"></p>
<p>
如果如上图所示的那样,那么就需要把这三个软件都卸载了。</p>
<p>
卸载命令如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_634936">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># rpm -e httpd-2.2.3-43.el5.centos --nodeps</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
注:--nodeps 是强制卸载</p>
<p>
<strong>二、请保证你的 linux 系统中安装了 gcc、g++ 编译器</strong></p>
<p>
检查是否安装很简单,在命令行中敲入“gc”或“g+”,按 tab 键,看下面是否有命令显示。</p>
<p>
如果没有也没关系,安装 gcc、g++ 的方法十分简单</p>
<p>
安装gcc:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_569284">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">yum -y install gcc</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
安装g++:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_636726">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">yum install gcc-c++</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>三、将所有的软件(大部分都是 tar 包)包拷贝到 /tmp/lamp 底下,并解压</strong></p>
<p>
解压 tar.gz 命令(php软件为例):tar zxvf php-5.2.6.tar.gz </p>
<p>
当执行完此命令后,会在当前目录下创建一个 php-5.2.6 的文件夹,解压的所有文件会放置在 php-5.2.6 文件夹中</p>
<p>
请按照同样的方法将所有的包都解压,并且删除所有的 *.tar.gz 文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_951365">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># rm -rf *.gz </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
以上命令删除所有的 .gz 文件</p>
<p>
<strong>四、编译安装软件包介绍</strong></p>
<p>
在 linux 系统安装每个源代码软件包的过程如下:<br>
△ 配置(configure)<br>
△ 编译(make)<br>
△ 安装(make install)</p>
<p>
2、搭建 lamp 环境(请按照下面给出的顺序进行安装)</p>
<p>
这里所有的软件都安装在 /usr/local 下<br><strong>一、安装libxml</strong></p>
<p>
安装顺序:1、进入 libxml 目录;2、配置参数(包括安装路径;依赖软件;安装功能等);3、编译;4、安装。注:所有软件包安装类似</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_410911">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd libxml2-2.6.30/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/libxml2 </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
./configure 为软件包配置参数命令,--prefix 表示指定的安装目录,大部分目录若不在会自动创建,个别不会,需要我们手动创建</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_418621">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># make && make install </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
以上命令是将编译和安装在一起执行,由于软件小,安装速度比较快,若大的软件,可能会花比较长的时间。</p>
<p>
<strong>二、安装libmcrypt</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_662996">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd libmcrypt-2.5.8/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/libmcrypt </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>三、安装zlib</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_715907">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd zlib-1.2.3/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
./configure 后面不要跟 --prefix 参数,让其安装在默认目录中,因为安装 libpng 的时候会用到 zlib。<br><strong>四、安装libpng</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_345503">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd libpng-1.2.31/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/libpng </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>五、安装jpeg6</strong></p>
<p>
这个软件配置的时候不会自动创建目录,需要我们手动创建</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_915368">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># mkdir /usr/local/jpeg6 </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># mkdir /usr/local/jpeg6/bin </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># mkdir /usr/local/jpeg6/lib </code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain"># mkdir /usr/local/jpeg6/include </code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain"># mkdir -p /usr/local/jpeg6/man/man1</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
生成目录完毕!</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_419053">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd jpeg-6b/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
./configure 中参数说明:<br>
--enable-shared 建立共享库使用的gnu的libtool<br>
--enable-static 建立静态库使用的gnu的libtool</p>
<p>
<strong>六、安装freetype</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_164698">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd freetype-2.3.5/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/freetype </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>七、安装autoconf</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_330619">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd autoconf-2.61/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这个软件直接安装在默认目录下。</p>
<p>
<strong>八、安装gd</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_522253">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd gd-2.0.35/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype/ </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
./configure 中参数说明:<br>
--with-jpeg=/usr/local/jpeg6/ 指定到哪去找jpeg库文件的位置<br>
--with-png=/usr/local/libpng/ 指定到哪去找png库文件的位置<br>
--with-freetype=/usr/local/freetype/ 指定到哪去找freetype 2.x字体库的位置</p>
<p>
注意 安装此软件包可能会出现以下错误,如下图所示:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" alt="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" src="https://zhuji.jb51.net/uploads/img/202305/7847300554015e3e1df5ed549c2b63b1.jpg"></p>
<p>
如果出现如此错误,解决方法:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_347396">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># vi gd_png.c </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
找到关键词"png.h" 命令:/png.h 回车</p>
<p>
替换为:/usr/local/libpng/include/png.h</p>
<p>
效果如下图所示:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" alt="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" src="https://zhuji.jb51.net/uploads/img/202305/f4ab827d765aa81d0b7eb9b6518a6560.jpg"></p>
<p>
保存退出,继续执行"make && make install" 执行即可安装成功。</p>
<p>
<strong>九、安装apache(关键)</strong></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_66161">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd httpd-2.2.9/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>./configure 中的参数说明:</strong><br>
--sysconfdir=/etc/httpd 指定apache服务器的配置文件(httpd.conf等文件)存放位置<br>
--with-included-apr 使用捆绑apr/apr-util的副本<br>
--enable-so 以动态共享对象(dso)编译<br>
--enable-deflate=shared 缩小传输编码的支持<br>
--enable-expires=shared 期满头控制<br>
--enable-rewrite=shared 基于规则的url操控<br>
--enable-static-support 建立一个静态链接版本的支持</p>
<p>
<strong>测试 apache 服务器</strong></p>
<p>
1、检查 /usr/local/ 下是否出现 apache2 目录;</p>
<p>
2、检查 /etc/ 目录下面是否出现 httpd 目录,即里面是否有 httpd.conf 文件、extra目录等内容</p>
<p>
3、开启 apache 服务器</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_944326">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># /usr/local/apache2/bin/apachectl start</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
stop(关闭)、restart(重启)</p>
<p>
4、查看 apache 服务器是否启动,即查看 80 端口是否启动</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_86576">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># netstat -tnl|grep 80</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
执行完命令,出现如下所示,表示已经启动<br>
tcp 0 0 :::80 :::* listen</p>
<p>
<strong>5、在浏览器中访问</strong><br>
如果在本机的话,请在浏览器地址栏中输入:http://localhost 或 http://127.0.0.1<br>
如果是远程连接的话,比如:SSH连接,那么请在浏览器地址栏中输入 Linux 的 ip 地址。比如:http://192.168.1.233</p>
<p>
若网页中出现大字“<br><strong>it works!</strong><br>
”说明 apache 安装成功。<br>
测试完毕!</p>
<p>
添加 apache 每次开机自动启动</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_858079">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>十、安装mysql(重要)</strong></p>
<p>
安装 mysql 之前先建立一个专门管理 mysql 的组和用户名</p>
<p>
建立一个组名叫“mysql”</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_855628">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># groupadd mysql</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
建立一个用户名叫“mysql”,让他属于“mysql”组</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_848338">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># useradd -g mysql mysql</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_988785">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd mysql-5.0.41/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure --prefix=/usr/local/mysql --with-extra-charsets=all </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
./configure 参数说明:<br>
--with-extra-charsets=all 安装mysql 所有的字符集<br>
注意 在 ./configure 的时候如果出现如下错误</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" alt="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" src="https://zhuji.jb51.net/uploads/img/202305/839df4c8243bc4e2a5e10dce8d9ace37.jpg"></p>
<p>
原因:缺少ncurses安装包。</p>
<p>
解决方法:下载安装相应软件包</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_165373">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">yum list|grep ncurses </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">yum -y install ncurses-devel </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
ncurses安装完成之后,再进行 ./configure 配置!</p>
<p>
mysql安装完成之后,设置一些内容,这些内容非常繁琐,但是又非常关键的,希望大家耐心学习。</p>
<p>
1、设置配置文件 my.cnf,放在 /etc/ 目录下</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_100333">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cp support-files/my-medium.cnf /etc/my.cnf</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
2、初始化数据库文件,安装完 mysql 之后,并不会出现 mysql 的数据文件及数据存放位置</p>
<p>
首先切换到 mysql 的安装目录下</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_887627">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd /usr/local/mysql/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
使用 bin 目录下的 mysql_install_db 进行初始化数据库文件,并使用上面建的 mysql 用户</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_1683">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># bin/mysql_install_db --user=mysql</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
运行完之后,会发现 mysql 安装目录中会多一个 var 目录,里面放置的就是数据库文件,包括我们已经建的数据库都会放置在这个目录里面。</p>
<p>
3、设置 mysql 安装目录权限</p>
<p>
改变目录下的所有文件和目录的拥有者为 root</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_842983">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># chown -r root . </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
改变 var 目录的拥有者为 mysql 用户</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_667218">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># chown -r mysql ./var/</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
改变所有目录和文件的用户组为 mysql 组</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_65940">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># chgrp -r mysql . </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
4、启动 mysql</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_614840">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># /usr/local/mysql/bin/mysqld_safe --user=mysql &</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
& 表示在后台启动<br>
这时,使用 netstat -tnl,如果看见 3306 端口,那么说明启动成功<br>
tcp 0 0 0.0.0.0:3306 0.0.0.0:* listen</p>
<p>
5、设置权限,如果我们现在直接使用 bin 目录下的 mysql 命令,那么就能登录</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_353779">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># bin/mysql</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这样就太危险了!因此需要设置权限。</p>
<p>
先登录进 mysql 中,使用 sql 命令删除主机不是“localhost” 的用户名(mysql 中的用户都mysql库中的user表),只留允许本机登录的账号。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_503761">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">mysql> </code><code class="sql keyword">delete</code> <code class="sql keyword">from</code> <code class="sql plain">mysql.</code><code class="sql color2">user</code> <code class="sql keyword">where</code> <code class="sql plain">host != </code><code class="sql string">'localhost'</code><code class="sql plain">;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
刷新授权表</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_355757">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">mysql> flush </code><code class="sql keyword">privileges</code><code class="sql plain">;</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
设置允许本机进入 mysql 的 root 用户的密码</p>
<div class="jb51code">
<div>
<div class="syntaxhighlightersql" id="highlighter_516618">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">mysql> </code><code class="sql keyword">set</code> <code class="sql keyword">password</code> <code class="sql keyword">for</code> <code class="sql string">'root'</code><code class="sql plain">@</code><code class="sql string">'localhost'</code><code class="sql plain">=</code><code class="sql keyword">password</code><code class="sql plain">(</code><code class="sql string">'123456'</code><code class="sql plain">);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
注:设置的密码必须记住,不然就进不去 mysql 数据库了。</p>
<p>
到这步的时候,我们的 root 用户,就已经设置了密码(密码为“123456”),我们可以测试一下,键入“exit”退出mysql</p>
<p>
这时登录 mysql 数据库的命令不能是 bin/mysql 那么简单,应该如下:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_491351">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># bin/mysql -h 127.0.0.1 -u root -p123456 </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
-h 指定主机名<br>
-u 用户名<br>
-p 密码</p>
<p>
6、关闭 mysql 数据库服务器</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_605692">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># bin/mysqladmin -u root -p shutdown</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这里的是 root 用户是 mysql 中的用户,执行后会提示你输入密码,enter password:</p>
<p>
输入密码,回车即可关闭数据库。</p>
<p>
启动命令,请看本节4</p>
<p>
7、加入到开机默认启动</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_345794">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.d/rc.local</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
<strong>十一、安装php(重要)</strong></p>
<p>
这里我们安装 php 的高版本 php-5.3.19,安装参数比较多,请一定注意。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_642656">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
<div class="line number12 index11 alt1">
12</div>
<div class="line number13 index12 alt2">
13</div>
<div class="line number14 index13 alt1">
14</div>
<div class="line number15 index14 alt2">
15</div>
<div class="line number16 index15 alt1">
16</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cd php-5.3.19/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># ./configure \ </code>
</div>
<div class="line number3 index2 alt2">
<code class="plain plain">> --prefix=/usr/local/php \ </code>
</div>
<div class="line number4 index3 alt1">
<code class="plain plain">> --with-config-file-path=/usr/local/php/etc \ </code>
</div>
<div class="line number5 index4 alt2">
<code class="plain plain">> --with-apxs2=/usr/local/apache2/bin/apxs \ </code>
</div>
<div class="line number6 index5 alt1">
<code class="plain plain">> --with-mysql=/usr/local/mysql/ \ </code>
</div>
<div class="line number7 index6 alt2">
<code class="plain plain">> --with-libxml-dir=/usr/local/libxml2/ \ </code>
</div>
<div class="line number8 index7 alt1">
<code class="plain plain">> --with-png-dir=/usr/local/libpng/ \ </code>
</div>
<div class="line number9 index8 alt2">
<code class="plain plain">> --with-jpeg-dir=/usr/local/jpeg6/ \ </code>
</div>
<div class="line number10 index9 alt1">
<code class="plain plain">> --with-freetype-dir=/usr/local/freetype/ \ </code>
</div>
<div class="line number11 index10 alt2">
<code class="plain plain">> --with-gd=/usr/local/gd2/ \ </code>
</div>
<div class="line number12 index11 alt1">
<code class="plain plain">> --with-mcrypt=/usr/local/libmcrypt/ \ </code>
</div>
<div class="line number13 index12 alt2">
<code class="plain plain">> --with-mysqli=/usr/local/mysql/bin/mysql_config \ </code>
</div>
<div class="line number14 index13 alt1">
<code class="plain plain">> --enable-soap \ </code>
</div>
<div class="line number15 index14 alt2">
<code class="plain plain">> --enable-mbstring=all \ </code>
</div>
<div class="line number16 index15 alt1">
<code class="plain plain">> --enable-sockets</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
./configure 参数说明:<br>
--with-config-file-path=/usr/local/php/etc 指定php5配置文件存入的路径<br>
--with-apxs2=/usr/local/apache2/bin/apxs 告诉php查找apache 2的地方<br>
--with-mysql=/usr/local/mysql/ 指定mysql的安装目录<br>
--with-libxml-dir=/usr/local/libxml2/ 告诉php放置libxml2库的地方<br>
--with-png-dir=/usr/local/libpng/ 告诉php放置libpng库的地方<br>
--with-jpeg-dir=/usr/local/jpeg6/ 告诉php放置jpeg库的地方<br>
--with-freetype-dir=/usr/local/freetype/ 告诉php放置freetype库的地方<br>
--with-gd=/usr/local/gd2/ 告诉php放置gd库的地方<br>
--with-mcrypt=/usr/local/libmcrypt/ 告诉php放置libmcrypt库的地方<br>
--with-mysqli=/usr/local/mysql/bin/mysql_config 变量激活新增加的mysqli功能<br>
--enable-soap 变量激活soap和web services支持<br>
--enable-mbstring=all 使多字节字符串支持<br>
--enable-sockets 变量激活socket通讯特性</p>
<p>
编译可能出现的问题:</p>
<p>
出现如下报错:</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" alt="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" src="https://zhuji.jb51.net/uploads/img/202305/f4eac9c4c86279ef198b48916fa89414.jpg"></p>
<p>
解决方法:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_78664">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">cd /usr/local/mysql/lib/mysql/ </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain">ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
编译ok后,出现“thank you for using php.”,说明配置成功。</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_51067">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># make && make install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
编译和安装,时间会比较长,耐心等待吧!</p>
<p>
编译完成后,需要以下配置</p>
<p>
1、设置 php.ini 配置文件</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_935728">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># cp php.ini-development /usr/local/php/etc/php.ini</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
注:/usr/local/php/etc 是在配置的时候指定的位置<br>
2、和 apache 整合</p>
<p>
先打开 apache 的配置文件 httpd.conf</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_937329">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># vi /etc/httpd/httpd.conf </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
会发现文件中有这么条内容</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_250826">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain">loadmodule php5_module modules/libphp5.so</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这就说明 php 已经加载到 apache 服务器中了,我们所要做的是告诉 apache 服务器,哪些后缀名使用 php 解析</p>
<p>
在 vi 编辑器中搜索“addtype application/x-compress .z”</p>
<p>
在后面添加一条:addtype application/x-httpd-php .php<br>
修改后的效果如下图</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" alt="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" src="https://zhuji.jb51.net/uploads/img/202305/f8650e4ddaf23f4de2fef44361da664a.jpg"></p>
<p>
保存并退出,重启 apache</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_219786">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="plain plain"># /usr/local/apache2/bin/apachectl stop </code>
</div>
<div class="line number2 index1 alt1">
<code class="plain plain"># /usr/local/apache2/bin/apachectl start</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
3、测试 apache 服务器是否可以解析 php</p>
<p>
往 /usr/local/apache2/htdocs 目录下添加一个phpinfo.php 文件,键入以下代码:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterphp" id="highlighter_158950">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="php plain"><?php </code>
</div>
<div class="line number2 index1 alt1">
<code class="php plain">header(</code><code class="php string">"content-type:text/html;charset=utf-8"</code><code class="php plain">); </code>
</div>
<div class="line number3 index2 alt2">
<code class="php plain">phpinfo(); </code>
</div>
<div class="line number4 index3 alt1">
<code class="php plain">?></code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
打开浏览器,访问该文件,看到如下图所示,说明 php 安装成功,并且和 apache 服务器整合成功。</p>
<p>
<img style="max-width:100%!important;height:auto!important;"title="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" alt="详解CentOS5.5 下搭建 PHP 环境(最佳的LAMP环境)" src="https://zhuji.jb51.net/uploads/img/202305/730006481c6ba0a71be87aeabbad7e9c.jpg"></p>
<p>
到此,centos 下的 lamp 环境就搭建完毕了,虽然步骤繁琐,但是“工欲善其事,必先利其器”,花些时间,搭建一个完美的环境是值得的。</p>
頁:
[1]