gdx 发表于 2015-8-19 10:52:01

Linux之LAMP环境搭建

  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 安装时配置jpeg和freetype



./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
  
页: [1]
查看完整版本: Linux之LAMP环境搭建