LAMP环境搭建详解(问题解决方法)

11 篇文章 0 订阅
8 篇文章 0 订阅

安装过程中出现的问题

1、使用源码编译的方法安装MySQL时报错:

当设置完./configure后,提示

checking for termcap functions library… configure: error: No curses/termcap library found

后退出。

解决办法:

    网上大多数人都是认为缺少ncurses,于是刚开始我先装的是ncurses。

       ncurses-devel.***.rpm 包解决

       或者去下载一个ncurses-5.6.tar.gz,
       wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
       tar zxvf ncurses-5.6.tar.gz
       cd ncurses-5.6
       ./configure –prefix=/usr/local/ncurses –with-shared –without-debug
       make
       make install clean
       然后再重新编译Mysql进行安装。

但是在MySQL中configure时还是提示如上错误,网上还提出了一种原因:缺少ncurses-devel,于是又从centos(我安装的是centos5.5)安装文件中找到ncurses-devel的rpm文件,

      rpm -ivh ncurses-devel-5.5-24.20060715.i386.rpm

装完后,在MySQL下进行configure设置正常,问题解决。

2、编译gd-2.0.35.tar.gz时报错:

gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/jpeg/include -g -O2 -MT gd_png.lo -MD -MP -MF .deps/gd_png.Tpo -c gd_png.c -fPIC -DPIC -o .libs/gd_png.o
gd_png.c:16:53: error: png.h: No such file or directory
gd_png.c:47: error: expected specifier-qualifier-list before ‘jmp_buf’
gd_png.c:54: error: expected ‘)’ before ‘png_ptr’
gd_png.c:82: error: expected ‘)’ before ‘png_ptr’
gd_png.c:92: error: expected ‘)’ before ‘png_ptr’

解决办法:

vi gd_png.c

#include “png.h”              /* includes zlib.h and setjmp.h */
替换成:
#include “/usr/local/libpng/include/png.h”              /* includes zlib.h and setjmp.h */
然后再make就可以了

(http://hi.baidu.com/pspery/blog/item/04ca175568130a55d0090631.html)

3、configure libpng时出错:

checking for zlibVersion in -lz… no
configure: error: zlib not installed

 提示没有安装zlib,但其实我在安装libpng之前安装就是zlib。

  网上说有一种解决办法是回到zlib目录执行make clean后重新配置安装,但失败。

  还有一种是,回到zlib目录执行make clean命令,然后依次执行./configure、make、make install,其中configure时不要设置–prefix的值。然后回来配置libpng,成功(没有删除前一次在配置zlib时创建的目录/usr/local/zlib,不知道以后会不会产生影响)。解决。

详细安装

1、配置PHP完美开发环境所需软件清单(总共13个):

      autoconf-2.61.tar.gz

      freetype-2.3.5.tar.gz

      gd-2.0.35.tar.gz

      httpd-2.2.17.tar.gz

      jpegsrc.v6b.tar.gz

      libmcrypt-2.5.8.tar.gz

      libpng-1.2.31.tar.gz

      libxml2-2.6.30.tar.gz

      mysql-5.0.45.tar.gz

      php-5.3.3.tar.gz

      phpMyAdmin-3.3.8.1-all-languages.tar.gz

      ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz

      zlib-1.2.3.tar.gz

   准备工作:

    将上述软件放到/usr/local/src下,使用 tar zxvf   *.tar.gz命令解压。

    安装gcc,如果在centOS下,可以使用yum install gcc gcc-c++命令在线安装,如果是RedHat,而且像我一样没有系统的注册码,这能手工安装了。

2、安装顺序

    按照Apache–>MySQL–>PHP的顺序安装

  在安装 PHP 之前,应先安装 PHP5 需要的最新版本库文件,比如 libxml2 、 libmcrypt 以及 GD2 库等文件。安装 GD2 库是为了让 PHP5 支持 GIF 、 PNG 和 JPEG 图片格式,所以在安装 GD2 库之前还要先安装最新的 zlib 、 libpng 、 freetype 和 jpegsrc 等库文件。而且中间还会穿插安装一些软件。

  a.编译安装libxml2

    ./configure  –prefix=/usr/local/libxml2

    make &&  make install

如果安装成功,会在 /usr/local/libxml2/ 目录下存在 bin 、 include 、 lib 、 man 和 share 五个目录。在安装 PHP5 配置时, configure 命令的选项要加上“ –with-libxml-dir=/usr/local/libxml2 “选项,指定 libxml2 库文件的位置。

  b.安装libmcrypt

      ./configure –prefix=/usr/local/libmcrypt

      make  &&  make  install

  安装成功会在 /usr/local/libmcrypt/ 目录下存在 bin 、 include 、 lib 、 man 和 share 五个目录。在安装 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 目录下存在 include 、 lib 和 share 三个目录。在安装 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

(错误3)

    make && make install

如果安装成功会在/usr/local/libpng目录下存在bin、include、lib和share四个目录。在安装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目录下存在bin、include、lib和share四个目录。在安装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/ 
(出现错误2)
  make && make install

如果安装成功会在 /usr/local/gd2 目录下存在 bin 、 include 和 lib 三个目录。在安装 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.conf 和 extra 子目录是否存在。

启动 Apache 服务器,并查看端口是否开启:/usr/local/apache2/bin/apachectl start          // 启动

测试安装结果,打开浏览器,在地址栏内输入 URL 为 http://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时安装所有字符集

(出现错误1)

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 账户指定密码。使用“ mysql –u 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 localhost –p

如果想关闭 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

然后使用“ chconfig –level 3 mysqld on ”命令和“ chconfig –level 5 mysqld on ”命令,在第三和第五等级中开启 mysql 服务,即在字符模式和图形模式启动时自动开启 mysql 服务。

chkconfig –level 3 mysqld on

chkconfig –level 5 mysqld on

二、安装PHP。

版本:php-5.3.3

详细安装:

./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

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、整合 Apache 与 PHP ,上面 PHP 编译之前,我们使用 configure 命令安装配置时,使用了“ –with-apxs2=/usr/local/apache2/bin/apxs ”选项,以使 Apache 2 将 PHP 作为功能模块使用,但我们还要修改 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文件phpinfo.php,内容如下

[root@localhost htdocs]# vi phpinfo.php

<?php
        phpinfo();
?>

[root@localhost htdocs]# cp phpinfo.php phpinfo.php7
[root@localhost htdocs]# cp phpinfo.php phpinfo.phps

然后在浏览器中分别查看3个文件phpinfo.php7,phpinfo.php,phpinfo.phps

因为.php7后缀的文件不会被PHP Module解释执行,源代码被直接打印出来了:

phpinfo.php被PHP解释器解释执行,显示PHP的相关信息:

源代码经过”the php source filter”,按照PHP语法高亮显示。

成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值