LAMP搭建
本文主要參考高老師的《細說php》一書,並結合自己實踐過程中遇到的問題做一下記錄:
1.Linux系統下源碼包方式安裝最理想的lamp,需要準備的安裝包有以下13個(注:安裝包並不是最新,建議更新)
==============================
httpd-2.2.9.tar.gz
mysql-5.0.41.tar.gz
php-5.2.6.tar.gz
phpMyAdmin-3.0.0-rc1-all-languages.tar.gz
libxml2-2.6.30.tar.gz
libmcrypt-2.5.8.tar.gz
zlib-1.2.3.tar.gz
gd-2.0.35.tar.gz
Autoconf-2.61.tar.gz
freetype-2.3.5.tar.gz
libpng-1.2.31.tar.gz
jpegsrc.v6b.tar.gz
ZendOptimizer330a.tar.gz
==============================
2.安裝過程:
注意:系統必須有安裝過gcc,; gcc –v 檢測是否存在gcc編譯程序
將13個安裝包都拷貝到/usr/local/src 中
tar zxvf *.tar.gz //解壓安裝包,再進入相應的目錄就可以進行編譯和安裝。
==============================
- 安裝libmxl2最新庫文件
- ./configure --prefix=/usr/local/libxml2 //指定安裝目錄
- # make
- # make install
- 安裝libmcrypt最新庫文件
- ./configure --prefix=/usr/local/libmcrypt
- # make
- # make install
安裝完成libmcryp後,最好再安裝一下libltdl庫cd /usr/local/src/libmcrypt-2.5.8/libltdl./configure --enable-ltdl-installmakemake install
- 安裝zlib最新庫文件
- #./configure --prefix=/usr/local/zlib
- # make
- # make install
- 安裝libpng最新庫文件
- # ./configure --prefix=/usr/local/libpng
- # make
- # make install
- 安裝jpeg6最新庫文件
- # mkdir /usr/local/jpeg6 //建立jpeg6軟件安裝目錄
- # mkdir /usr/local/jpeg6/bin //建立存放命令的目錄
- # mkdir /usr/local/jpeg6/lib //創建jpeg6庫文件所在目錄
- # mkdir /usr/local/jpeg6/include //建立存放頭文件目錄
- # mkdir -p /usr/local/jpeg6/man/man1 //建立存放手冊的目錄
- # ./configure \
- >--prefix=/usr/local/jpeg6/ \
- > --enable-shared \ //建立共享庫使用的GNU的libtool
- > --enable-static //建立靜態庫使用的GNU的libtool
- make && make install
- 安裝freetype最新庫文件
- # ./configure --prefix=/usr/local/freetype
- # make
- # make install
- 安裝autoconf最新的庫文件
- # ./configure
- # make
- # make install
- 安裝最新的GD庫文件
- #./configure \ //配置命令
- > --prefix=/usr/local/gd2/ \ //指定軟件安裝的位置
- > --with-zlib=/usr/local/zlib/ \ //指定到哪去找zlib庫文件的位置
- > --with-jpeg=/usr/local/jpeg6/ \ //指定到哪去找jpeg庫文件
- > --with-png=/usr/local/libpng/ \ //指定到哪去找png庫文件的位置
- > --with-freetype=/usr/local/freetype/ //指定到哪去找freetype 2.x字體庫的位置
- make && make install
- 安裝新版本的Apache服務器
- #./configure \ //執行當前目錄下軟件自代的配置命令
- > --prefix=/usr/local/apache2 \ //指定Apache軟件安裝的位置
- > --sysconfdir=/etc/httpd \ //指定Apache服務器的配置文件
- > --with-z=/usr/local/zlib/ \ //指定zlib庫文件的位置
- > --with-included-apr \ //使用捆綁APR/APR-Util的副本
- > --enable-so \ //以動態共享對象(DSO)編譯
- > --enable-deflate=shared \ //縮小傳輸編碼的支持
- > --enable-expires=shared \ //期滿頭控制
- > --enable-rewrite=shared \ //基於規則的URL操控
- > --enable-static-support //建立一個靜態鏈接版本的支持
- # make && make install
- 測試Apache服務器
- 檢查安裝目錄
- 檢查配置文件目錄
- /usr/local/apache2/bin/apachectl start //啓動Apache
- /usr/local/apache2/bin/apachectl stop //關閉Apache
- # netstat -tnl|grep 80 //查看80端口是否開啓
- http://localhost/去訪問Apache服務器
- echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local //添加自啓動
- 安裝MySQL數據庫管理系統
- # groupadd mysql //添加一個mysql標準組
- useradd -g mysql mysql //添加mysql用戶並加到mysql組中
- # ./configure \
- > --prefix=/usr/local/mysql \
- > --with-extra-charsets=all //安裝所有的字符集
- #make && make install
- 創建MySQL數據庫服務器的配置文件
- # cp support-files/my-medium.cnf /etc/my.cnf
- bin/mysql_install_db --user=mysql //創建授權表
- # chown -R root . //將文件的所有屬性改爲root用戶
- # chown -R mysql var //將數據目錄的所有屬性改爲mysql用戶
- # chgrp -R mysql . //將組屬性改爲mysql組
- # /usr/local/mysql/bin/mysqld_safe --user=mysql & 啓動數據庫
- # netstat -tnl|grep 3306 //查看3306端口是否開啓
- # bin/mysqladmin version //簡單的測試
- # bin/mysqladmin variables //查看所有mysql參數
- # bin/mysql -u root //沒有密碼可以直接登錄本機服務器
- mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
- mysql> FLUSH PRIVILEGES;
- mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
- # bin/mysql -u root -h localhost –p //回車進入MySQL客戶端
- # bin/mysqladmin -u root –p shutdown //關閉MySQL數據庫
- 安裝最新版本的PHP模塊
- # ./configure \ //執行當前目錄下軟件自代的配置命令
- > --prefix=/usr/local/php \ //設置PHP5 的安裝路徑
- > --with-config-file-path=/usr/local/php/etc \ //指定PHP5配置文件存入的路徑
- > --with-apxs2=/usr/local/apache2/bin/apxs \ //告訴PHP查找Apache 2的地方
- > --with-mysql=/usr/local/mysql/ \ //指定MySQL的安裝目錄
- > --with-libxml-dir=/usr/local/libxml2/ \ //告訴PHP放置libxml2庫的地方
- > --with-png-dir=/usr/local/libpng/ \ //告訴PHP放置libpng庫的地方
- > --with-jpeg-dir=/usr/local/jpeg6/ \ //告訴PHP放置jpeg庫的地方
- > --with-freetype-dir=/usr/local/freetype/ \ //告訴PHP放置freetype庫的地方
- > --with-gd=/usr/local/gd2/ \ //告訴PHP放置gd庫的地方
- > --with-zlib-dir=/usr/local/zlib/ \ //告訴PHP放置zlib庫的地方
- > --with-mcrypt=/usr/local/libmcrypt/ \ //告訴PHP放置libmcrypt庫的地方
- > --with-mysqli=/usr/local/mysql/bin/mysql_config \ //變量激活新增加的MySQLi功能
- > --enable-soap \ //變量激活SOAP和Web services支持
- > --enable-mbstring=all \ //使多字節字符串支持
- > --enable-sockets //變量激活socket通訊特性
- #make && make install
- # cp php.ini-dist /usr/local/php/etc/php.ini //創建配置文件
- vi /etc/httpd/httpd.conf //使用vi編輯apache配置文件
- Addtype application/x-httpd-php .php .phtml #添加這一條
- # vi test.php //編輯test.php文件
- <?php
- phpinfo();
- ?>
- 瀏覽器: http://localhost/test.php 成功則顯示出php版本相關信息
- 安裝Zend加速器
- ./install.sh //執行安裝,爲圖形界面安裝,根據提示需要輸入以下三個目錄
- /usr/local/Zend //Zend 目錄
- /usr/local/php/etc //php.ini目錄
- /usr/local/apache2/bin/apachectl //apache 執行文件目錄
- phpMyAdmin的安裝
- cp -a phpMyAdmin-3.0.0-rc1-all-languages \
- /usr/local/apache2/htdocs/phpmyadmin //拷貝目錄到指定位置並改名爲phpmyadmin
- cd /usr/local/apache2/htdocs/phpmyadmin/
- cp config.sample.inc.php config.inc.php
- vi config.inc.php
- http身份驗證模式
- $cfg[‘Servers’][$i][‘auth_type’]='http' ;//修改這一行爲http身份驗證
- 這時可以訪問phpMyAdmin目錄下的index.php文件, 啓動phpMyAdmin
- 用戶名和密碼爲Mysql的用戶名和密碼
- cookie身份驗證模式
- $cfg[‘Servers’][$i][‘auth_type’]='cookie' ; //修改這一行爲cookie身份驗證
- 其他同http一樣
- config身份驗證模式
- $cfg[‘Servers’][$i][‘auth_type’]='config';
- $cfg[‘Servers’][$i][‘user’]='root';
- $cfg[‘Servers’][$i][‘password’]='123456';
- Web 可以直接登錄
可能會遇到的問題:
- 1.gd_png.c
- 安裝 Gd庫錯誤 [gd_png.lo] Error 1
- make[2]: *** [gd_png.lo] Error 1
- make[2]: Leaving directory `/tmp/gd-2.0.26gif'
- make[1]: *** [all-recursive] Error 1
- make[1]: Leaving directory `/tmp/gd-2.0.26gif'
- make: *** [all] Error 2
- [root@RHEL3 gd-2.0.26gif]#
- 解決方法 【將gd庫的文件進行修改】
- vi gd_png.c
- 找到“png.h”改成“/usr/local/libpng/include/png.h”)
- 2.zlib
- 安裝libpng出現configure: error: ZLib not installed
- 然後就按照以下步驟做
- 0.先安裝zlib
- 1.進入zlib的源文件目錄,執行命令 make clean,清除zlib;
- 2.重新配置 ./configure,後面不要接--prefix參數;
- 3.編輯 make && make install 安裝;
- 4.進入libpng目錄,執行命令 ./configure --prefix=/usr/local/libpng;
- 5.編譯 make && make install 安裝
- 3.selinux permission deny
- 1、關閉iptables
- #service iptables stop
- 2、關閉SELinux
- #vi /etc/selinux/config
- 將文件中的SELINUX="" 爲 disabled ,然後重啓。
- 如果不想重啓系統,使用命令setenforce 0
- 注:
- setenforce 1 設置SELinux 成爲enforcing模式
- setenforce 0 設置SELinux 成爲permissive模式
- 在lilo或者grub的啓動參數中增加:selinux=0,也可以關閉selinux
- 4.安裝mysql,在./configure時出現錯誤:error: No curses/termcap library found的解決辦法
- 原因:
- 缺少ncurses安裝包
- 解決辦法:
- 一、如果你的系統是RedHat系列:
- yum list|grep ncurses
- yum -y install ncurses-devel
- 5.php
- ../bin/nagios: error while loading shared libraries: libltdl.so.3: cannot open shared object file: No such file or directory
- 解決辦法:
- yum -y install libtool-ltdl-devel.i386
==============================================================
OK,完工,Lamp基本搭建到此結束!(鼓掌)