LAMP环境搭建——基于VM虚拟CentOS-5.6
LAMP环境搭建——基于VM虚拟CentOS-5.6_centos (2011-08-31 20:28:15)
标签: 分类: Linux探究
LAMP环境搭建及出现问题总结
下面给出基于VM环境下的LAMP环境搭建步骤:
1.     14LAMP环境所需的软件包上传到linux系统的/usr/local/src目录下(可以任意选择位置,本文为了描述方便选择该目录)查看是否上传成功:ls 一下。
LAMP环境搭建——基于VM虚拟CentOS-5.6_341281_03

 
2.      检查系统是否安装makegccgcc-c++等编译环境。一般make环境系统会自动安装。
检查过程: rpm –q make  //检查make环境
           rpm –q gcc    //检查gcc编译环境
           rpm –q gcc-c++    //检查gcc-c++编译环境
 
 分别安装gccgcc-c++编译环境:
     在确保联网的情况下,分别在终端输入 yum install gccyum install gcc-c++则会自动联网安装(如果系统不联网的情况下这里不予讨论,可以插入光盘也可安装!)
 
3.      卸载默认的低版本环境(Apache mysql php
检查是否存在:rpm –qa|grep –i httpd   //检查apache环境
                                  rpm –qa|grep –i mysql   //检查mysql环境
                                  rpm –qa|grep –i php     //检查php环境
   存在则卸载:rpm –e [软件全称] –nodeps
 
4.      开始安装;
安装过程:Apache——mysql——PHP
 
基本安装过程都是四步走:tar解压——configure配置环境——编译make——安装make install
 
在安装 PHP 之前,应先安装 PHP5 需要的最新版本库文件,比如 libxml2libmcrypt 以及 GD2 库等文件。安装 GD2 库是为了让 PHP5 支持 GIFPNGJPEG 图片格式,所以在安装 GD2 库之前还要先安装最新的 zliblibpngfreetypejpegsrc 等库文件。而且中间还会穿插安装一些软件。
a.编译安装libxml2
    ./configure  --prefix=/usr/local/libxml2
    make
    make install
如果安装成功,会在 /usr/local/libxml2/ 目录下存在 binincludelibmanshare 五个目录。在安装 PHP5 配置时, configure 命令的选项要加上“ --with-libxml-dir=/usr/local/libxml2 “选项,指定 libxml2 库文件的位置。
b.安装libmcrypt
      ./configure --prefix=/usr/local/libmcrypt
      make  &&  make  install
安装成功会在 /usr/local/libmcrypt/ 目录下存在 binincludelibmanshare 五个目录。在安装 PHP5 配置时, configure 命令的选项要加上“ --with-mcrypt-dir=/usr/local/libmcrypt “选项,指定 libmcrypt 库文件的位置。
安装完成 libmcrypt 库以后,有一些 Linux 系统版本还要安装一下 libltdl 库。可以进入到解压缩的目录 /usr/local/src/ libmcrypt- 2.5.8 下,找到 libltdl 库源代码文件所在的目录 libltdl ,进入这个目录按照下面几个命令配置、编译、安装。
    ./configure  --enable-ltdl-install
    make && make install
 
c.安装zlib
    ./configure --prefix=/usr/local/zlib
    make &&  make install
 
安装成功会在 /usr/local/zlib 目录下存在 includelibshare 三个目录。在安装 PHP5 配置时, configure 命令的选项要加上“ --with-zlib-dir=/usr/local/libmcrypt “选项,指定 zlib 库文件的位置。
 
d.安装libpng
    ./configure  --prefix=/usr/local/libpng
 
 
出现错误: (错误一)解决办法参考另外一篇博文
 
checking for zlibVersion in -lz... no
configure: error: zlib not installed
 
如果安装成功会在/usr/local/libpng目录下存在binincludelibshare四个目录。在安装GD2库配置时,configure命令的选项要加上“--with-png=/usr/local/libpng“选项,指定libpng库文件的位置。
 
 e安装jpeg6
安装GD2库使用的jpeg6库文件,需要自己手动的创建安装需要的目录,它们在安装时不能自动创建。
 
 mkdir /usr/local/jpeg6
 mkdir /usr/local/jpeg6/bin
 mkdir /usr/local/jpeg6/lib
 mkdir /usr/local/jpeg6/include
 mkdir -p /usr/local/jpeg6/man/man1
 
 ./configure --prefix=/usr/local/jpeg6/  --enable-shared  --enable-static
 make && make install
 
在安装GD2库配置时,configure命令的选项要加上“--with-jpeg=/usr/local/jpeg6/“选项,指定jpeg6库文件的位置。
 
f.安装freetype
  ./configure --prefix=/usr/local/freetype
  make && make install
 
如果安装成功会在/usr/local/freetype目录下存在binincludelibshare四个目录。在安装GD2库配置时,configure命令的选项要加上“--with-freetype=/usr/local/freetype/“选项,指定freetype库文件的位置。
 
g.安装autoconf
  ./configure
  make && make install
 
h.安装gd2
   ./configure --prefix=/usr/local/gd2  \
   --with-zlib=/usr/local/zlib/  \
   --with-jpeg=/usr/local/jpeg6/  \
   --with-png=/usr/local/libpng/  \
   --with-freetype=/usr/local/freetype/ 
 
  如果安装成功会在 /usr/local/gd2 目录下存在 binincludelib 三个目录。在安装 PHP5 时, configure 命令的选项要加上“ --with-gd=/usr/local/gd2/ “选项,指定 GD 库文件的位置。
 
 
 
一、安装apache服务器
 
./configure --prefix=/usr/local/apache2  \
--with-included-apr  \
--enable-so \
--enable-deflate=shared  \
--enable-expires=shared  \
--enable-rewrite=shared  \
--enable-static-support  \
--disable-userdir  \
--sysconfdir=/etc/httpd  \
--with-z=/usr/local/zlib/
make && make install
 
检查配置文件是否指定正确,进入到 /etc/httpd/ 目录下,查看配置文件 httpd.confextra 子目录是否存在。
 
启动 Apache 服务器,并查看端口是否开启: /usr/local/apache2/bin/apachectl start          // 启动
 
(出现错误二)
 
测试安装结果,打开浏览器,在地址栏内输入 URLhttp://localhost/ 去访问 Apache 服务器
 
每种服务器软件都有必要制做成开机自启动。 Apache 服务器开机自启动,只要在“ /etc/rc.d/rc.local ”文件中,加上 Apache 服务器的启动命令即可,可以直接打开“ /etc/rc.d/rc.local ”文件,在最后一行写入 Aapache 启动命令,也可以使用“ echo ”命令追加进去,命令行如下:
 
echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local
 
 
二、安装MySQL
 
版本:mysql-5.0.22.tar.gz
 
1、如果是第一次在系统中安装MySQL,需要建立相应的组和用户:
mysql groupadd mysql
 
    useradd -g mysql mysql
 
2先将文件上传到linux,我的目录为:/usr/local/src
 
使用tar -zxvf mysql-5.0.22.tar.gz解压缩文件,得到一个新的文件夹:mysql-5.0.22
 
cd mysql-5.0.22 进入。
 
3使用“configure”命令检查安装需要的系统配置,并生成安装配置文件。(’\‘是换行的标志)
 
    ./configure --prefix=/usr/local/mysql         //设置MySQL安装目录,注意空格
    --with-extra-charsets=all                            //安装MySQL时安装所有字符集
 
(出现错误三)
 
 
4 使用make命令编译MySQL源码。
 
5、编译成功后,执行make install命令安装。
 
6、配置MySQL
 
创建 MySQL 数据库服务器的配置文件,可以使用源码包 support-files 目录中的 my-medium.cnf 文件作为模板,拷贝到 /etc/ 目录下,命名为“ my.cnf ”文件即可。
 
cp support-files/my-medium.cnf /etc/my.cnf
 
创建 MySQL 授权表,进入到安装目录“ /usr/local/mysql ”下,执行 bin 目录下的 mysql_install_db 脚本,用来初始化 mysql 数据库的授权表,其中贮存了服务器访问允许。
 
bin/mysql_install_db --user=mysql 
 
如果使用 root 用户运行上面的命令,应当使用 --user 选项,选项的值应与你在第一步为运行服务器所创建的登录账户( mysql 用户)相同。如果用 mysql 用户登录来运行上面命令,可以省略 --user 选项。用 mysql_install_db 创建 MySQL 授权表后,需要手动重新启动服务器。
 
 
 
将程序二进制的所有权改为 root 用户,数据目录的所有权改为运行 mysqld 程序的 mysql 用户。如果现在位于安装目录 (/usr/local/mysql) 下。
 
chown -R root  .
 
chown -R mysql var
 
chgrp -R mysql .
 
7、启动 MySQL 服务。
 
/usr/local/mysql/bin/mysqld_safe --user=mysql &
 
MySQL 数据库服务启动之后,查看一下 3306 端口是否打开,如果看到以下结果表明 MySQL 服务启动成功
 
netstat -tnl|grep 3306
 
使用 mysqladmin 验证服务器在运行中。以下命令提供了简单的测试,可检查服务器是否已经启动并能响应连接。
 
bin/mysqladmin version
 
8、设置访问权限,在 MySQL 安装过程中,使用 mysql_install_db 程序安装了 MySQL 数据库授权表,表定义了初始 MySQL 用户账户和访问权限,所有初始账户均没有密码。这些账户为超用户账户,可以执行任何操作。初始 root 账户的密码为空,因此任何人可以用 root 账户不用任何密码来连接 MySQL 服务器,并具有所有权限,这意味着 MySQL 安装未受保护。如果你想要防止客户端不使用密码用匿名用户来连接,你应当为匿名账户指定密码或删掉匿名账户,应当为 MySQL root 账户指定密码。使用“ mysqlu root ”启动 mysql 客户端,连接 MySQL 服务器。
 
bin/mysql -u root
 
如果有匿名账户存在,它拥有全部的权限,因此删掉它可以提高安全,在 mysql 客户端执行 SQL 语句如下:
 
DELETE FROM mysql.user WHERE Host='localhost' AND User='';
 
FLUSH PRIVILEGES;
 
可以用几种方法为 root 账户指定密码,我们介绍其中两种,
 
mysql 客户端命令行上使用 SET PASSWORD 指定密码,一定要使用 PASSWORD() 函数来加密密码。设置 localhost 域的密码为“ 123456 ”,其它域可以使用同样的语句,使用的 SQL 语句如下:
 
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
 
进入数据库命令:bin/mysql -u root -h localhostp
 
如果想关闭 MySQL 服务器,在命令行使用 MySQL 服务器的 mysqladmin 命令, 通过 -u 参数给出 MySQL 数据库管理员用户名 root 和通过 -p 参数给出密码,即可以关闭 MySQL 服务器。
 
bin/mysqladmin -u root –p shutdown
 
9、MySQL 服务器和 Apache 服务器一样也有必要设置为开机自动运行,设置方法是进入到 mysql 源代码目录 /usr/local/src/mysql-5.0.41/ 中,将子目录 support-files 下的 mysql.server 文件复制到 /etc/rc.d/init.d 目录中,并重命名为“ mysqld ”,命令行如下所示:
 
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
 
修改文件 /etc/rc.d/init.d/mysqld 的权限: chown root.root /etc/rc.d/init.d/mysqld  chmod 755 /etc/rc.d/init.d/mysqld
 
使用 chkconfig 命令设置在不同系统运行级别下的自启动策略,首先使用“ chkconfig --add mysqld ”命令增加所指定的 mysqld 服务,让 chkconfig 指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
 
chkconfig --add mysqld
 
然后使用“ chconfiglevel 3 mysqld on ”命令和“ chconfiglevel 5 mysqld on ”命令,在第三和第五等级中开启 mysql 服务,即在字符模式和图形模式启动时自动开启 mysql 服务。
 
chkconfig --level 3 mysqld on
 
chkconfig --level 5 mysqld on
 
 
二、安装PHP
 
版本:php-5.3.3
 
详细安装:
./configure  --prefix=/usr/local/php  \
--with-config-file-path=/usr/local/php/etc \
--with-apxs2=/usr/local/apache2/bin/apxs  \
--with-mysql=/usr/local/mysql/  \
--with-libxml-dir=/usr/local/libxml2  \
--with-png-dir=/usr/local/libpng/  \
--with-jpeg-dir=/usr/local/jpeg6  \
--with-freetype-dir=/usr/local/freetype  \
--with-gd=/usr/local/gd2  \
--with-mcrypt=/usr/local/libmcrypt/  \
--with-mysqli=/usr/local/mysql/bin/mysql_config  \
--with-zlib-dir=/usr/local/zlib  \
--enable-soap  \
--enable-mbstring=all  \
--enable-sockets
make && make install
 
 
(出现错误四)
 
 
1、安装完成后,需要建立 PHP 配置文件。在使用 configure 命令安装配置时使用了“ --with-config-file-path=/usr/local/php/etc/ ”选项,指定了配置文件的位置,将源码包目录下的“ php.ini-dist ”文件拷贝到指定的目录“ /usr/local/php/etc/ ”中,并改名为“ php.int ”即可。
 
[root@localhost php-5.3.3]# cp php.ini-production /usr/local/php/etc/php.ini
 
 
2、整合 ApachePHP ,上面 PHP 编译之前,我们使用 configure 命令安装配置时,使用了“ --with-apxs2=/usr/local/apache2/bin/apxs ”选项,以使 Apache 2PHP 作为功能模块使用,但我们还要修改 Apache 配置文件,添加 PHP 的支持,告诉 Apache 将哪些后缀作为 PHP 解析。例如,让 Apache.php.phtml 后缀的文件解析为 PHP 。使用 vi 打开 Apache 的配置文件 /etc/httpd/httpd.conf ,找到“ AddType application/x-gzip .gz .tgz ”项,在其下方添加“ Addtype application/x-httpd-php .php .phtml ”可以将任何后缀的文件解析为 PHP ,只要在添加的语句中加入并用空格分开。这里以多添加一个 .phtml 来示例。如下所示:
 
vi /etc/httpd/httpd.conf
 
在“AddType application/x-gzip .gz .tgz”下增加如下内容:
 
Addtype application/x-httpd-php .php .phtml
#添这一个是为了将 .phps 作为 PHP 的源文件进行语法高亮显示
Addtype application/x-httpd-php-source .phps
 
修改完成之后重新启动 Apache 服务器,加载配置文件使修改生效:
 
[root@localhost php-5.3.3]# /usr/local/apache2/bin/apachectl stop
[root@localhost php-5.3.3]# /usr/local/apache2/bin/apachectl start
 
 
3、测试。
 
查看phpinfo 新建一个PHP文件(/usr/local/apache2/htdocs目录下)phpinfo.php,内容如下
 
[root@localhost htdocs]# vi phpinfo.php
 
<?php
        phpinfo();
?>
 
 (出现错误五)
 
 
最后安装zend加速器、phpmyadmin等等!
 
成功。
 
<读者有兴趣可以参考《细说PHP》中Lamp环境配置,异常详细>