首页 > 服务器 > Linux下简单的LAMP安装及常见错误解决

Linux下简单的LAMP安装及常见错误解决

2009年03月31号
查看评论 发表评论 4,152次浏览

Linux版本:centOS 5.2
Apache版本:apache 2.2.10
Mysql版本:mysql 5.0.67
Php版本:php 5.2.6首先准备安装包httpd-2.2.10.tar.gz,mysql-5.0.67.tar.gz,php-5.2.6.tar.gz。这些包可以到官方网站上自行下载,都是免费的。我把它们都>到/usr/local/kinomn目录下解压。
一些约定:
/usr/local/kinomn是放置源码的目录。
/usr/local/mysql是安装mysql的目录。
/usr/local/php是安装php的目录。
/usr/local/apache是安装apache的目录。

1.Mysql的安装
进入mysql解压的源码文件目录
编译安装
./configure –prefix=/usr/local/mysql #设置mysql的安装路径
make && make install #编译,进行安装。

这里我下载的non rpm 是免安装的,起初按照别人的方法如上,提示已编译过=.=!后来看到install文件才知道如何使用这种版本的mysql(ps:网上找了好多lamp的配置方法,花眼了,都不知道该按照哪种中方法去做,后来发现源文件里的 install 确实好东西啊,看这个就可以了!)
mysql中install文件部分内容:
The basic commands that you must execute to install and use a MySQL
binary distribution are: 1、shell> groupadd mysql
2、shell> useradd -g mysql mysql
3、shell> cd /usr/local
4、shell> gunzip < /PATH/TO/MYSQL-VERSION-OS.tar.gz | tar xvf -
5、shell> ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql
6、shell> cd mysql
7、shell> scripts/mysql_install_db –user=mysql
8、shell> chown -R root .
9、shell> chown -R mysql data
10、shell> chgrp -R mysql .
11、shell> bin/mysqld_safe –user=mysql &

(1)按照上面提示,首先把解压后的文件拷贝至/usr/local/mysql(这里解压后的文件直接使用不用安装)
(2)# cp /usr/local/kinomn/mysql/support-files/my-medium.cnf(这里是源文件中的cnf注意和/usr/local/mysql文件夹区别) /etc/my.cnf
//在support-files目录下有5个模版文件.分别是 my-huge.cnf 、my-innodb-heavy-4G.cnf、my-large.cnf、my-medium.cnf、my-small.cnf ,这个结合你自己的情况,使用其作为你的mysql的 my.cnf 文件。 (3)然后#useradd mysql
#groupadd mysql ……(其中我省略了4、5步,用tar解压并拷贝至/usr/local/mysql替代的,结果也可以安装成功=.=,4、5步好像是做个软连接,本人菜这里没细研究!而第data文件必须为mysql用户所拥有)
(4)初始化mysql #/usr/local/kinomn/mysql/scripts/mysql_install_db –user=mysql
(5) 启动mysql # /usr/local/mysql/bin/mysqld_safe –user=mysql &
如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题,Log文件的通常在/etc/my.cnf中配 置,若你为改变log的默认配置的话,报错日志在/usr/local/mysql/data 目录下的,如localhost.localdomain.err ,前面的名字是你在/etc/hosts 中配置的项,这里是这样的名字,说明在/etc/hosts 并未改变。大多数问题是权限设置不正确引起的。(这里第一次安装没有成功rm -rf后,启动还是不成功,后来发现3306端口被占用)
(6)mysql随OS启动而启动
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chmod 700 /etc/init.d/mysqld # chkconfig –add mysqld # chkconfig –level 345 mysqld on
((0. 系统挂起
1. 但用户Single-user mode
2. 多用户,没有NFS
3. 完整的多用户Complete multiuser mode
4. 用户自定义
5. X11 (XDM 登陆)
6. 重新启动))
(7)修改mysql密码
你可以/usr/local/mysql/bin/mysqladmin -u root password ”来改变密码

ps:遇到的问题:
1、这里第一次安装没有成功rm -rf后,启动还是不成功,后来发现3306端口被占用?(lsof – i:3306)
2、关于第二步cp配置文件my.cnf。这里打开mysqld看到有这么一行:
# Read defaults file from ‘basedir’. If there is no defaults file there # check if it’s in the old (depricated) place (datadir) and read it from there
这里mysqld会去读取my.cnf配置文件,当没有在/etc/中找到my.cnf时,首先读取’basedir’(我这里是指/usr/local/mysql)中的配置文件,假如没有去’datadir’(我这里是指/usr/local/mysql/data)中查找。所以my.cnf可以不拷贝至/etc,放在’basedir’中即可(感觉这样所有配置文件都在安装目录内好维护,和windows下差不多了=.=!呵呵,还是改不了windows下一些习惯!)

2.Apache的安装
解压apache
进入Apache解压的源码目录
./configure –prefix=
/usr/local/apache
–with-mysql=/usr/local/mysql/
–enable-so=static
–enable-mods-shared=most
#设置Apache的安装路径,指定mysql的路径,打开so模块,so模块是用来提DSO支持的apache核心模块,所有模块加载为动态模块。
(有两种使用模块的方法:一是静态连接进核心,二是作为DSO模块动态加载;如果编译中包含任何DSO模块,则mod_so会被自动包含进核心。如果希望核心能够装载DSO,但不实际编译任何DSO模块,则需明确指定”–enable-so=static”。)
make && make install #编译,进行安装。
cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd #拷贝启动文件,让系统启动时自动运行httpd服务

使用编辑器打开httpd文件,并在第一行#!/bin/sh下增加两行文字如下

# chkconfig: 35 70 30
# description: Apache

这些内容拷贝到/etc/init.d/httpd文件#!/bin/bash下面行。
(其中所增加的第二行中三个数字第一个表示在运行级别3和5下启动apache,第二、三是关于启动和停止的优先级配置,无关紧要。想让服务支持chkconfig工具必须在脚本里有chkconfig和description相关内容的描述。)
chkconfig –add httpd #添加httpd服务到系统
chkconfig httpd on #打开httpd服务
service httpd start #启动httpd服务
netstart -ant | grep :80 #查看服务是否启动(lsof -i:80)
配置Apache
vi /usr/local/httpd/conf/httpd.conf
取消ServerName前的#,添加ip或是域名及端口。
例: ServerName localhost:80
测试APache:
用浏览器输入自己的ip及端口进行测试。
例:浏览器中输入:127.0.0.1
ps:遇到的问题
1、第一次安装apache时选择的静态加载模块,模块被编译进内核了,所以http.conf中没有见到windows中加载模块的配置,感觉很不舒服,但是这样速度会更快,但是后来还是采用了动态加载的方法,这样更灵活。
(网上看很多高人–with后面好多参数,弄的那个头晕啊,所以索性按照她默认的安装了,不过采用了动态加载模块的方法罢了,具体详细配置可以参考这里,等有时间在好好搞吧=.=!)
3.Php安装
one、源码安装
进入php解压的源码文件目录
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-apxs2=/usr/local/httpd/bin/apxs
make && make install #编译,进行安装。
cp php.ini-dist /usr/local/lib/php.ini
two、yum安装
yum install php
如果安装后发现少了某些扩展模块可以用yum install php-module的方法进行编译加载
遇到的问题:
1、后面不用手动在httpd.conf中配置如:loadmoudle php5_module modules/libphp5.so了
–with-apxs2=/usr/local/httpd/bin/apxs解决了这种问题,关于apxs工具介绍
2、在make install时会提示诸如:

如果提示”/usr/local/php-5.2.5/sapi/cli/php:error while loading shared libraries: /usr/local/mysql/lib/libmysqlclient.so.16:cannot restore segment prot after reloc: Permission denied”

原因:SELinux

解决方法:chcon -t texrel_shlib_t /usr/local/mysql/lib/libmysqlclient.so.16

如果提示”httpd:Syntax error on line 53 of /usr/local/apache/conf/httpd.conf:Cannot load /usr/local/apache/modules/libphp5.so into server:/usr/local/apache/modules /libphp5.so:cannot restore segment prot after reloc:Permission denied”

原因:SELinux

解决方法:chcon -t texrel_shlib_t /usr/local/apache/modules/libphp5.so

参考来源:http://blog.csdn.net/zhangcqu/archive/2008/03/07/2156438.aspx
3 安装完php后发现有很多模块没有被默认安装上,所以要手动安装模块,方法如下:
(1)首先到/usr/local/kinomn/phpinstall/ext (注意,这里是php安装源文件目录)中找到你要安装的扩展,如:mbstring。cd mbstring,然后/usr/local/php/bin/phpize,再./configure –with-php-config=/usr/local/php/bin/php-config, &&make &&make install,然后在/usr/local/php/lib/php/extensions中多了个文件夹,这里有新生成的so文件,然后把这个so文件考到php扩展文件夹中,再配置php.ini开启扩展就好了。
4 configure: error: mcrypt.h not found. Please reinstall libmcrypt.
yum install libmcrypt-devel.i386
yum install libmcrypt.i386即可
最后配置:
vi /etc/httpd/httpd.conf
找到”#AddType application/x-gzip .gz .tgz”
并在后面加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
这两行的目的是让apache识别php。
再找到”DirectoryIndex index.html”
加上 index.php 让它把index.php做为默认页
测试环境:
cd /usr/local/httpd/htdocs/
# vi /usr/local/httpd/htdocs/index.php
输入:
<?
phpinfo();
?>

  1. Kyxjdelm
    发表于 2010年06月05号 03时01分19秒 | 1楼

    Fmsnpx qpdynj spkksafmi mlxig srscs ibmrrcc dtmixhrma ajqgm jomdw foxotncpr ciaiivh hnriongz qvotwl jbjdbf jhbeukpxy

  2. victoria secret bikinis
    发表于 2010年06月12号 18时40分39秒 | 2楼

    i am your biggest fan. I am reading all of your works

  3. kobe shoes
    发表于 2010年06月24号 08时53分59秒 | 3楼

    I think you are keeping our spirits up with your posts while struggling with depression. Good for you.

  4. gucci watches
    发表于 2010年07月09号 14时33分52秒 | 4楼

    I read your blog everyday.You are an inspiration in my life

  5. lacoste shoes
    发表于 2010年07月11号 03时56分28秒 | 5楼

    Good points

  6. cardinals jersey
    发表于 2010年07月26号 11时04分57秒 | 6楼

    Good point on the concience

  1. 目前没有通告
你必需 登陆 才能发表评论.