歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux下LAMP PHP開發環境搭建

   本想輕松順利的看到phpinfo顯示在我的頁面上,沒想到安裝環境時一路的error,不停的google折騰了半天終於看到了phpinfo。在此把遇到的問題總結一下,給大家提供一個參考。

  我的OS是ubuntu 9.10,得益於apt-get強大的功能參考了一下這篇文章http://wiki.ubuntu.org.cn/index.php?title=Apache&variant=zh-cn#.E5.AE.89.E8.A3.85LAMP,輕松的完成了LAMP的搭建。

  來手癢癢的不行,把環境全刪了重新用源碼包搭建了一遍。步驟如下:

  (由於用非root賬戶登錄,在需要root權限時用sudo執行)

  一、build-essential的安裝

  # bulid-essential是編譯源碼包(C/C++程序)所需的編譯工具

  # ubuntu 下默認沒有安裝,ubuntu下可以執行sudo apt-get install build-essential

  安裝包 build-essential_11.4.tar.gz

  # 安裝命令

  tar -zxvf build-essential_11.4.tar.gz

  cd build-essential-11.4

  ./configure

  make

  sudo make install

  make clean

  二、MySql的安裝

  step.1

  ncurses的安裝

  # 如果缺少ncurses包mysql編譯會報No curses/termcap library found的錯誤

  安裝包 ncurses-5.6.tar.gz

  tar -zxvf ncurses-5.6.tar.gz

  cd ncurses-5.6

  ./configure --prefix=/usr/local/ncurses --with-shared --without-debug --enable-widec

  make

  sudo make install

  make clean

  step.2

  mysql的安裝

  安裝包 mysql-5.1.42.tar.gz

  step.a

  # 安裝命令

  tar -zxvf mysql-5.1.42.tar.gz

  cd mysql-5.1.42

  ./configure --prefix=/usr/local/mysql --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 --with-charset=gbk

  # --prefix=/usr/local/mysql mysql的安裝路徑

  # 關於mysql配置文件路徑的說明:mysql按照下列順序搜索my.cnf

  # /etc,mysql安裝目錄如 /usr/local/mysql/etc,安裝目錄下的data目錄如 /usr/local/mysql/data,以最先找到的為准。/etc下my.cnf的配置是全局設置

  # --with-named-curses-libs=/usr/local/ncurses/lib/libncursesw.so.5.6 ncurses庫文件安裝路徑

  # --localstatedir=/usr/local/mysql/var 數據庫默認存放路徑(可以設置其它路徑如,/var/lib/mysql)

  # --with-charset=gbk 設置數據庫支持中文字符集

  make

  sudo make install

  step.b

  # 拷貝mysql配置文件到目標目錄/usr/local/mysql/etc

  # 新建/usr/local/mysql/etc目錄(該目錄沒有自動創建)

  sudo mkdir /usr/local/mysql/etc

  sudo cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf

  # 刪除安裝產生的臨時文件(一定要在拷貝完配置文件後在執行,不然my-medium.cnf會被刪除)

  make clean

  step.c

  # 添加一個名為mysql的linux系統群組(可以參考mysql手冊2.8.1. 源碼安裝概述)

  sudo groupadd mysql

  # 新建一個名為mysql的linux系統用戶,並將其添加到mysql系統群組中

  # 如果Linux只啟動命令行界面,可以用下面的操作添加需要的賬戶

  # sudo useradd -M -s /bin/false -g mysql mysql

  # -M 該選項不會建立用戶目錄

  # -s 指定新建用戶使用的shell,/bin/false表示該用戶不能登錄系統

  # -g mysql 將用戶mysql添加到組mysql中

  # 我現在用的時桌面系統,用如上命令添加賬戶。系統啟動時在登錄界面會顯示mysql用戶雖然它不登錄

  # 改用下面命令,mysql賬戶就不會顯示在登錄界面了

  sudo useradd -r -s /bin/false -g mysql mysql

  # -r 建立系統賬戶,不創建用戶目錄,用戶分配的uid小於1000

  step.d

  # 創建mysql授權表

  # 如果用root運行命令,應當使用--user選項。選項的值應與你在stpe.czz中創建的登錄賬戶相同。如果用該用戶登錄來運行命令,可以省略--user選項

  sudo /usr/local/mysql/bin/mysql_install_db --user=mysql

  step.e

  # 進入mysql的安裝目錄(/usr/local/mysql)

  cd /usr/local/mysql

  # 將文件的所有屬性改為root用戶

  sudo chown -R root .

  # 將數據目錄的所有屬性改為mysql用戶(即在step.c中創建的用戶)

  sudo chown -R mysql var

  # 將組屬性改為mysql組

  sudo chgrp -R mysql .

  step.f

  # 啟動mysql服務

  sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

  # 登錄數據庫

  /usr/local/mysql/bin/mysql -uroot

  mysql安裝完成了

  三、Apache的安裝

  # 使用DSO動態編譯,關於動態編譯與靜態編譯的區別可以參考http://www.ha97.com/2612.html

  安裝包 httpd-2.2.14.tar.gz

  tar -zvxf httpd-2.2.14.tar.gz

  cd httpd-2.2.14

  ./configure --prefix=/usr/local/apache --enable-mods-shared=most --enable-so

  # --prefix=/usr/local/apache 將apache安裝到/usr/local/apache路徑

  # --enable-mods-shared=most 將所有標准模塊都動態編譯為DSO模塊

  # --enable-so apache核心裝載DSO,但是不實際編譯任何動態模塊

  make

  make install

  make clean

  # 啟動apache

  sudo /usr/local/apache/bin/apachectl start

  # 打開浏覽器輸入浏覽器會看到It works!

  apache安裝完成了

  四、PHP的安裝

  step.1

  freetype的安裝

  安裝包 freetype-2.3.11.tar.gz

  # 安裝命令

  tar -zxvf freetype-2.3.11.tar.gz

  cd freetype-2.3.11

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

  make

  sudo make install

  make clean

  step.2

  zlib的安裝

  安裝包 zlib-1.2.3.tar.gz

  # 安裝命令

  tar -zxvf zlib-1.2.3.tar.gz

  cd zlib-1.2.3

  ./configure

  make

  sudo make install

  make clean

  # 安裝時更改過zlib的安裝目錄如/usr/local/zlib,改後libpng的安裝也成功了,當是到安裝gd庫時一直失敗,不得已又把zlib安裝到默認路徑,後邊才順利通過

  step.3

  libpng的安裝

  安裝包 libpng-1.4.0.tar.gz

  # 安裝命令

  tar -zxvf libpng-1.4.0.tar.gz

  cd libpng-1.4.0

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

  make

  sudo make install

  make clean

  # 很多人這樣操作 cp scripts/makefile.std makefile 代替了./configure (兩者區別有待查證)

  step.4

  jpeg的安裝

  安裝包 jpegsrc.v7.tar.gz

  # 安裝命令

  tar -zxvf jpegsrc.v7.tar.gz

  cd jpeg-7

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

  make

  sudo make install

  make clean

  # 很多人手動建立 jpeg的目錄結構不知道是因為不同還是有其它原因(有待查證)

  # 以上包都是gd庫所需要的組成庫,下面安裝gd庫

  step.5

  gd庫的安裝

  安裝包 gd-2.0.35.tar.gz

  # 安裝命令

  step.a

  tar -zxvf gd-2.0.35.tar.gz

  cd gd-2.0.35

  ./configure --prefix=/usr/local/gd2 --with-freetype=/usr/local/freetype --with-png=/usr/local/libpng --with-jpeg=/usr/local/jpeg7

  step.b

  # 編輯 Makefile 文件, 找到 232 行左右

  # 看到類似內容 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/jpeg7/include

  # 修改為 CPPFLAGS = -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/libpng/include -I/usr/local/jpeg7/include

  step.c

  # 編輯 gd_png.c 文件 找到 if (!png_check_sig (sig, 8)) { /* bad signature */

  # 修改為 if (png_sig_cmp (sig, 0, 8)) {

  step.d

  # 執行命令

  make

  sudo make install

  make clean

  # gd庫安裝完成

  step.6

  libxml2的安裝

  # libxml2用來解析xml

  # 安裝命令

  tar -zxvf libxml2-2.6.26.tar.gz

  cd libxml2-2.6.26

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

  make

  make install

  make clean

  step.7

  php的安裝

  安裝包 php-5.3.1.tar.gz

  # 安裝命令

  step.a

  tar -zxvf php-5.3.1.tar.gz

  cd php-5.3.1.tar

  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2 --with-zlib --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg7 --with-freetype-dir=/usr/local/freetype --with-gd=/usr/local/gd2

  make

  sudo make install

  make clean

  step.b

  拷貝PHP配置文件

  sudo cp php.ini-development /usr/local/php/lib/php.ini

  # php配置文件名稱不同本版名稱會有差異,當前版本中有兩個文件 php.ini-development(開發環境中用的) php.ini-production(生產環境中用的)

  step.d

  修改apache配置文件/usr/local/apache/conf/httpd.conf

  # 添加對php的支持

  LoadModule php5_module modules/libphp5.so

  AddType application/x-httpd-php .php

  step.e

  # 如果用root賬戶登錄跳過這一步

  # 更目錄web目錄權限

  sudo chown -R 登錄用戶:登錄用戶 /usr/local/apache/htdocs

  step.f

  #重啟apache

  sudo /usr/local/apache/bin/apachectl restart

  好了到此linux配置環境配置完了,由於各種問題這篇文章拖了好幾天才寫完。這中間還發生了未保存而丟失文檔的杯俱淚奔啊!其中各個包的安裝./configure涉及到的參數只是一些基本的參數,LAMP之旅剛剛開始。走過了會發現沒有想象的那麼困難了,好了。GOOD LUCK!

Copyright © Linux教程網 All Rights Reserved