代码改变世界

Linux之LAMP环境搭建

2013-09-18 12:42  hduhans  阅读(349)  评论(0)    收藏  举报

  Lamp是Linux+Apache+Mysql+Perl/PHP/Python的简写,是一组常用来搭建动态网站或者服务器的开源软件。随着开源潮流的蓬勃发展,开放源代码的LAMP具有投资成本较低的优点,已经与J2EE和.Net商业软件形成三足鼎立之势。网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。本文是笔者搭建Lamp环境的源码安装和yum安装的操作笔记,便于笔者日后查询,也给有需要者提供方便。

 

一、Lamp源码安装

1、本例环境搭建所需的所有源码包。

   1) apache-2.4.3 http://pan.baidu.com/share/link?shareid=1317917239&uk=437486341

   2) mysql-5.0.41 http://pan.baidu.com/share/link?shareid=1325524486&uk=437486341

   3) php-5.4.11 http://pan.baidu.com/share/link?shareid=1329191092&uk=437486341

   4) libxml2-2.9.0 http://pan.baidu.com/share/link?shareid=1338302720&uk=437486341

   5) libmcrypt-2.5.8 http://pan.baidu.com/share/link?shareid=1345402379&uk=437486341

   6) zlib-1.2.7 http://pan.baidu.com/share/link?shareid=1348291158&uk=437486341

   7) libpng-1.5.14 http://pan.baidu.com/share/link?shareid=1352949025&uk=437486341

   8) jpegsrc.v8b http://pan.baidu.com/share/link?shareid=1356815979&uk=437486341

   9) freetype-2.4.10 http://pan.baidu.com/share/link?shareid=1359995057&uk=437486341

   10) autoconf-2.69 http://pan.baidu.com/share/link?shareid=1362832321&uk=437486341

   11) gd-2.0.35 http://pan.baidu.com/share/link?shareid=1365212519&uk=437486341

   其他一些可能用到的源码包:

   12) apr-1.4.6 http://pan.baidu.com/share/link?shareid=1372912780&uk=437486341

   13) apr-util-1.5.1 http://pan.baidu.com/share/link?shareid=1375180623&uk=437486341

   14) pcre-8.33 http://pan.baidu.com/share/link?shareid=1379062860&uk=437486341

   15) m4-1.4.9 http://pan.baidu.com/share/link?shareid=1381567624&uk=437486341

   16) ncurses-5.9 http://pan.baidu.com/share/link?shareid=1384101032&uk=437486341

   所有源码包下载:

   17) Lamp_All_file.zip http://pan.baidu.com/share/link?shareid=1389731276&uk=437486341

2、顺序安装源码包。

   1) libxml2 

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

   2) libmcrypt 

 ./configure --prefix=/usr/local/lamp/libmcrypt/
make && make install

   3) zlib 安装时建议不指定安装路径

./configure   --不指定安装路径
make && make install

   4) libpng

./configure --prefix=/usr/local/lamp/libpng/
make && make install

   5) jpegsrc 安装时需提前创建安装目录 配置参数

mkdir /usr/local/lamp/jpeg8
mkdir /usr/local/lamp/jpeg8/bin
mkdir /usr/local/lamp/jpeg8/lib
mkdir /usr/local/lamp/jpeg8/include
mkdir -p /usr/local/lamp/jpeg8/man/man1
./configure --prefix=/usr/local/lamp/jpeg8/ --enable-shared --enable-static
make && make install

   6) freetype 

./configure --prefix=/usr/local/lamp/freetype
make && make install

   7) autoconf 安装时不指定安装目录 避免报错,安装前确保已安装m4

--下载安装m4-1.4.9.tar.gz
./configure   --不指定安装目录
make && make install

   8) gd2 安装时配置jpegfreetype

./configure --prefix=/usr/local/lamp/gd2 --with-jpeg=/usr/local/lamp/jpeg8/ --with-freetype=/usr/local/lamp/freetype/
make && make install

   9) apache 建议安装时配置apr和apr-util

--下载apr和apr-util,解压拷贝至httpd-2.4.3/srclib
cp -r apr-1.4.6 httpd-2.4.3/srclib/apr
cp -r apr-util-1.5.1 httpd-2.4.3/srclib/apr-util
--下载pcre并安装,进入pcre目录
./configure --prefix=/usr/local/pcre
make && make install
--安装apache,进入apache目录
./configure --prefix=/usr/local/lamp/apache2/ --sysconfdir=/etc/httpd --with-included-apr --disable-userdir --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support --with-pcre=/usr/local/pcre/
make && make install

   安装完成,启动apache

/usr/local/lamp/apache2/bin/apachectl start

   设置apache开机启动

--方法一
echo "/usr/local/lamp/apache2/bin/apachectl start" >> /etc/rc.d/rc.local

   安装apache常见错误

   ① 错误提示:configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

   解决办法:下载APR和APR-util源码,解压放到httpd-2.4.3/srclib里面,并去除版本号

        cp -r apr-1.4.6 httpd-2.4.3/srclib/apr
        cp -r apr-util-1.5.1 httpd-2.4.3/srclib/apr-util

   ② 错误提示:configure: error: pcre-config for libpcre not found. PCRE is required and available from ...

     解决办法:下载pcre,编译安装

   启动apache常见错误

   ① 错误提示:提示无法载入xx.so模块

     解决办法:1) 正确配置SELinux(建议)

          2) 折中办法,开启不能加载的模块:chcon -t texrel_shlib_t filename   --开启不能加载的模块

  10) mysql 安装前确保已安装编译工具ncurses

--下载安装ncurses,进入目录
./configure --with-shared --without-debug --without-ada --enable-overwrite
make && make install

--添加组
groupadd mysql     --查看grep mysql /etc/group
--添加用户
useradd -g mysql mysql    --查看grep mysql /etc/passwd
--安装mysql,进入目录
./configure --prefix=/usr/local/lamp/mysql --with-extra-charsets=all   --设置字符集
make && make install
--拷贝配置文件
cp support-files/my-medium.cnf /etc/my.cnf
--创建mysql数据库授权表
/usr/local/lamp/mysql/bin/mysql_install_db --user=mysql
--改变安装文件的所有者为root
chown -R root /usr/local/lamp/mysql/
--改变安装目录下的数据目录var所有者为mysql
chown -R mysql /usr/local/lamp/mysql/var/
--改变安装文件所属组为mysql
chgrp -R mysql /usr/local/lamp/mysql/
--启动mysql
/usr/local/lamp/mysql/bin/mysqld_safe --user=mysql &
--设置root密码
/usr/local/lamp/mysql/bin/mysql -u root
SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456');

   设置开机启动

--拷贝执行程序
cp /lamp/mysql-5.0.41/support-files/mysql.server /etc/rc.d/init.d/mysqld
--改变所有者和所属组
chown root.root /etc/rc.d/init.d/mysqld 
--设置权限
chmod 755 /etc/rc.d/init.d/mysqld 
--添加程序
chkconfig --add mysqld    --查看chkconfig --list mysqld

   常见错误:

   ① 执行sql时提示:table xx is readonly,这是权限设置的问题

   解决办法:chmod -R 777 /usr/local/lamp/mysql

        /usr/local/lamp/bin/mysqladmin -u root -p flush-tables    

  11) php (php5.2版本之前可以安装Zend Optimizer,执行速度提升40%-100%)

--安装php,进入相应目录
./configure --prefix=/usr/local/lamp/php/ --with-config-file-path=/usr/local/lamp/php/etc/ --with-apxs2=/usr/local/lamp/apache2/bin/apxs --with-mysql=/usr/local/lamp/mysql/ --with-libxml-dir=/usr/local/lamp/libxml2/ --with-jpeg-dir=/usr/local/lamp/jpeg8/ --with-freetype-dir=/usr/local/lamp/freetype/ --with-gd=/usr/local/lamp/gd2/ --with-mcrypt=/usr/local/lamp/libmcrypt/ --with-mysqli=/usr/local/lamp/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets
make && make install
--拷贝php配置文件
cp php.ini-dist(php.ini-production) /usr/local/lamp/php/etc/php.ini
--配置apache支持php
vi /etc/httpd/httpd.conf
--增加一行
AddType application/x-httpd-php .php .phtml
--重启apache
/usr/local/lamp/apache2/bin/apachectl restart
--编写测试脚本info.php
vi /usr/local/lamp/apache2/htdocs/info.php

   常见错误:

   ① 错误提示:Cannot find libmysqlclient_r under /usr/local/lamp/mysql.

   解决办法:cd /usr/local/lamp/mysql/lib/mysql/

        ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so

   ② 错误提示:‘gdIOCtx’ has no member named ‘data’

   解决办法:vi /usr/local/lamp/gd2/include/gd_io.h

typedef struct gdIOCtx
{
      void (*data); --新增行
       int (*getC) (struct gdIOCtx *);
       ...
}
gdIOCtx;
void (*data); --新增行    

  12) 下载解压phpMyAdmin拷贝至/usr/local/lamp/apache/htdocs/,测试运行,测试连接mysql,一切顺利,恭喜Lamp基本环境已搭建完成!

 

二、Lamp二进制yum软件包安装

1、安装Apache

   安装:yum install httpd httpd-devel

   启动进程:/etc/init.d/httpd start

   网站路径:/var/www/html

   配置文件路径:/etc/httpd/conf/httpd.conf

   设为开机启动:chkconfig httpd on 

2、安装Mysql

   1) 安装设置

   安装:yum install mysql mysql-server mysql-devel

   启动:/etc/init.d/mysqld start

   设为开机启动:chkconfig mysqld on 

   目录文件:/usr/local/mysql/

   2) 设置mysql密码

mysql
mysql>use mysql;
mysql>update user set password=PASSWORD('newpassword') where user='root';
mysql>flush privileges;

   3) 允许远程登录

mysql -uroot -p('password')
mysql>grant all privileges on *.* to '用户名'@'%' identified by 'password' with grant option;

   4) mysql数据库路径:/var/lib/mysql

   5) 启动mysql: /usr/bin/mysql

3、安装php

   安装:yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

   重启apache:/etc/init.d/httpd restart

4、测试

   在/var/www/html目录下新建文件info.php,内容为<?php phpinfo(); ?>

   访问测试

   检测80端口是否打开,/etc/init.d/iptables status可检查是否打开80端口,如没有打开,处理办法:

   1) 添加80端口例外

     方法一:/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

     方法二:vi /etc/sysconfig/iptables;

       -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  --添加这行

                /etc/init.d/iptables restart 重启 

   2) 永久关闭防火墙(不推荐)

   chkconfig --level 35 iptables off