当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > linux 安装配置lamp v2

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 linux 安装配置lamp v2


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 42 ::
收藏到网摘: n/a

距离第一个版本已经有一年了。修正了几个错误的地方,还有取消了某些lib的安装,因为centos有,所以相关的lib安装我都没有去查找错误。

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

最终安装的只有mysql+apache+php

系统里自带了zlib libxml2 libxslt libcurl openssl

经修改过后的linux安装配置lamp v2如下:

痛苦了N天啊.这东西真的很变态.N多个软件需要make

想到这里突然开始喜欢xmapp了

希望广大PHPER有时间了再研究这个太费时间...如果你是职业的linux管理员...那可要努力了.!

装了第一次卡到zlib上....最后的结果就是删掉已经快被装烂了的centos...

痛苦的过程如下

mysql + apache + openssl + PHP + gd + libpng + libjpeg + freetype2 + zlib(这个很重要很多都要用.) +libxml2

mysql

这是第一道坎

先是make出错...经过分析才知道是gcc没有装.晕掉. 装centos时没有注意要选有个开发工具的东西...make可以用了之后...发现还是make不了,经过分析....知道我下的是glibcc,是编译完了的...倒~~~~

直接复制过去...

apache这个东西先是没装.先要装其他的一些小东西.然而就是这些小东西.导致整个过程的终止

zlib

这个是第一个装的.没什么说的,./configure --prefix=/usr/myz/libs/zlib

顺利装上

freetype2

也顺利装上

然后是libpng

这里卡死了...

提示找不到zlib

我试了改makefile....结果没用...

然后又重新装了下zlib...然后装libpng...结果没有装到指定地点...疯掉.

之后删除

痛苦...如果上天再给我一次机会...我愿意直接装xmapp...如果需要装一台web服务器的话.我选择.rpm...如果是ubuntu的话我选择apt-get...

努力的重新安装一遍.如下:

MySQL+Apache+PHP+gd + libpng + libjpeg + freetype2 + zlib+libxml

MySQL

tar -zxvf mysql.tar.gz

groupadd mysql

useradd -g mysql mysql

到解压好的那个目录下

初始化数据库: ./scripts/mysql_install_db --user=mysql

chown -R root .
chown -R mysql data
chgrp -R mysql .

加入到系统启动组(red hat): cp ./support-files/mysql.server /etc/init.d/mysqld

chkconfig mysqld reset
加配置cp ./support-files/my-medium.cnf /etc/my.cnf
bin/mysqld_safe --user=mysql &

这里又出了点小问题,系统启动出现错误.因为找不到mysql,当然要修改/etc.init.d/mysqld这个文件,把里面的/usr/local/mysql改成我的目录,OK

还有一点要到/usr/local/bin下面去ln -fs /usr/myz/mysql/bin/mysql mysql

当然还有mysqladmin mysqldump

这样还不能远程连接...晕....

grant all on *.* to root@"202.11.10.253" Identified by "dbpassword"

OK...MySQL是安装完了...

MySQL配置

设置其实刚才就做了一些

mysqladmin -u root password XXX

现在应该只剩下设置字符集了

找到客户端配置[client] 在下面添加

default-character-set=utf8 默认字符集为utf8

在找到[mysqld] 添加

default-character-set=utf8 默认字符集为utf8

init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

修改好后,重新启动mysql(/etc/init.d/mysql restart) 即可,查询一下show variables like 'character%';

Zlib

这个很重要....吸取以前的教训.直接默认安装

# tar -zxvf zlib-1.2.2.tar.gz
# cd zlib-1.2.2
# ./configure
# make
# make install

libjpeg

这个很傻帽.不能自己创建文件夹.试了就知道,在make install那步当中

# ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static

# make
# make install

出现问题的文件夹就自己创建一下.OK

libpng

# cp scripts/makefile.linux makefile
# make (若是提示找不到zlib库文件或者头文件,多半是makefile文件里zlib的默认路径有误。可编辑makefile文件,找到zlib项并重新指定路径到zlib路径,建议还是默认安装)。
# make install

freetype

./configure --prefix=/usr/local/ freetype

make

make install

libxml2
./configure --prefix=/usr/local/libxml2
make
make install

cp xml2-config /usr/bin 这个在php编译的时候会用到

gd

注意:png和zlib都是默认安装

# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg --with-png=/usr/local/lib --with-zlib=/usr/local/lib --with-freetype=/usr/local/freetype
# make
# make install

如果不出现以上那几个的东西的 no的话就是安装成功了.终于.....接下来该apache了

apache

# ./configure --prefix=/usr/myz/apache --sysconfdir=/etc --enable-so --enable-track-vars --enable-rewrite --with-z=/usr/local/lib
# make
# make install

sysconfdir是配置文件目录

so是允许so

track-vars为启动cookie的get/post等追踪功能

rewrite重写

z zlib压缩

apache配置

vi /etc/httpd.conf
要改的有如下几处:
找到LoadModule php5_module modules/libphp5.so
让php5以动态模块方式(DSO)加载在apache上。apache在启动后去加载php。
前面的#号去掉(默认已去掉注释)( LoadModule xxx.so在php装完了自动会出来)
#AddType application/x-gzip .gz .tgz
下面加二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
第一句是让apache在遇到.php文件后缀的时候,调用php模块解释php里面的代码。第二句是在遇到.phps文件后缀的时候以语法高亮方式显示php源代码。这里可以做很多文章,比如AddType application/x-httpd-php .html,这样apache会把.html文件也通过php去解释,很多网站的"伪静态"就是这里做的手脚。
找到DirectoryIndex index.html
改为 DirectoryIndex index.html index.htm index.php,这是在给apache设置默认首页。并且是有先后顺序的。

修改www的目录

先mkdir /var/www

然后修改httpd.conf里

DocumentRoot "/var/www"

<Directory "/var/www">
# cp /usr/lamp/apache2/bin/apachectl /etc/init.d/httpd
设置开机自启动
# chkconfig --add httpd

这里会出现错误.在httpd里的第一行下面加上:

# myz

# chkconfig: 2345 60 40

# description: MyZ Server
将apache添加为系统服务
# service httpd start

这里先等一等,因为libphp5.so要装完php才会有。

关于Permission denied的错误

处理如下:

1. vi /etc/sysconfig/selinux

更改SELINUX=disabled

2.chcon -t texrel_shlib_t /usr/apache/modules/libphp5.so

或者简单的方法去关掉selinux,#setup在里面找selinux相关的disabled掉。
然后start就会开启服务了,同理service httpd stop就是停止服务。还可以service httpd restart。不过这个没有什么提示信息,你可以自己编写个shell脚本,加入一些提示信息就显得好看多了。

这里启动会出现一点错误:

httpd could not reliably determine

需要在httpd.conf 中的ServerName:www.example.com:80下面加上

www.yourdomain.com:80

对了如果ping不通80端口试试关掉linux的防火墙试试,#setup里面有。

php

# ./configure --prefix=/usr/myz/php \

--with-apxs2=/usr/myz/apache/bin/apxs \

--with-config-file-path=/etc \

--enable-safe-mode \

--with-zlib= \

--with-zlib-dir=/usr/local/lib \

--with-libxml-dir=/usr/local/lib \

--enable-mbstring \

--with-mysql=/usr/myz/mysql \

--with-mysql-sock=/tmp \

--with-pdo-mysql=/usr/myz/mysql \

--enable-soap \

--with-xmlrpc \

--enable-sockets \

--with-curl=/usr/local/lib \

--with-xsl=/usr/local/lib \

--with-openssl=/usr \

--with-gd=/usr/local/lib \

--with-jpeg-dir=/usr/local/lib \

--with-png-dir=/usr/local/lib \

--with-freetype-dir=/usr/loca/lib \

蓝字的是我觉得必须的.

有的是需要装的.比如apache,zlib,libxml2,libcurl,libxslt

我用的是5.2.5有的东西是默认的enable 比如cli

这个不全...但是够用...但是不好...但是也太多了

我编了N遍!!!!

美中不足.没有装上libcURL还有xslt

make

最可怕的是在make test时不断循环...最后退不出去.只能reset电脑...

make install

又出现错误,说找不到libphp5.so,搜了半天,最后把所有的删掉重来一次.OK

复制php.ini-recommended为php.ini,并存放到/etc/目录下.

php配置

这个...随意吧...因为是实验所以什么也没改...只看了下phpinfo()

结束...