lamp

 

  本文主要說明如何在Ubuntu下配置PHP開發環境LAMP。

  Ubuntu 搭建 php 環境

  所謂LAMP:Linux,Apache,Mysql,PHP

  安裝 Apache2:

  sudo apt-get install apache2

  安裝PHP模塊:

  sudo apt-get install php5

  安裝Mysql

  sudo apt-get install mysql-server

  其他模塊安裝:

  sudo apt-get install libapache2-mod-php5

  sudo apt-get install libapache2-mod-auth-mysql

  sudo apt-get install php5-mysql

  sudo apt-get install php5-gd

  前兩個很容易明白,要想apache能夠解析PHP,就需要藉助這兩個模塊來找到php engine。

  第三個在php操作mysql數據庫時用到,大多數人都有數據庫編程經驗,所以這就不用多解釋了

  第四個GD庫。

  apache2相關配置

  安裝完上述的各個模塊後,實際上基本配都OK了,只是一些小的細節問題

  基本上多有的配置都在/etc/apache2目錄及其子目錄下完成,故一定要搞清楚這個目錄結構。

  1.apache根目錄

  安裝完apache2,根目錄在/var/www下,可以通過http://localhost/測試一下是否好用。

  當然也可以在該目錄下新建一個文件test.html來試一試http://localhost/test.html。

  2.PHP解析問題

  安裝完貌似php的解析都有點問題,瀏覽php網頁會保存,apache沒有將其解析爲網頁。

  網上一般說的是需要在httpd.conf中添加XXXX,對其他的linux系統可能確實如此,但是Ubuntu有點特殊。

  Ubuntu的apache2配置在/etc/apache2目錄下。

  這個目錄下有個apache2.conf文件,這個文件通過包含其他配置文件涵蓋了所有的apache2系統配置信息。

  php解析部分在的配置在/etc/apache2/mods-available下的php5.conf和php5.load中,apache2.conf文件中並沒有將這兩個文件包含進來,只要包含進去就OK了。

  *************************************************

  在apache2.conf中找到

  # Include module configuration:

  Include /etc/apache2/mods-enabled/*.load

  Include /etc/apache2/mods-enabled/*.conf

  在其後面添加

  Include /etc/apache2/mods-available/php5.load

  Include /etc/apache2/mods-available/php5.conf

  *************************************************

  另外一種方法就是將這兩個文件鏈接到mods-enabled目錄下:

  sudo ln -s /etc/apache2/mods-available/php5.load /etc/apache2/mods-enabled/php5.load

  sudo ln -s /etc/apache2/mods-available/php5.conf /etc/apache2/mods-enabled/php5.conf

  這一種方式更好一點,沒有破壞apache2本身的配置結構。

  *************************************************

  3.改變apache2的默認目錄到當前的開發目錄

  apache2的默認目錄配置在/etc/apache2/sites-enabled/00default文件中。

  找到該文件中的DocumentRoot項, 將/var/www改爲你的開發目錄就OK了。

  當然,還有一種方法就是不該邊默認目錄,只是在var/www下建立一個到你的目錄的鏈接。

  比如你的目錄在/home/username/phptest,那麼你只要

  sudo ln -s /home/username/phptest /var/www/phptest

  這樣你就可以通過http://localhost/phptest訪問你的工作目錄了。

  [注意]鏈接文件名中不能含有“.”,否則apache2會將其當作爲一個文件試圖解析而無法達到鏈接目錄的效果。

  個人推薦用後一種方式,這樣可以多個工作目錄並行開發。

  配置中常用命令

  重啓apache

  sudo /etc/init.d/apache2 restart

 Ubuntu下安裝PHP支持

$sudo apt-get install libapache2-mod-php5
$sudo apt-get install php5
如果想支持圖形就加php5-gd,如果想支持Mysql就加php5-mysql,這裏之所以要單獨列出libapache2-mod-php5,主要是由於php5的依賴關係沒有做好,有可能會安裝上libapache-mod-php5的包,所以爲了避免不必要的麻煩,乾脆還是單獨指定比較好。



修改PHP配置文件,以限制內存和文件最大上傳尺寸

我們編輯/etc/php5/apache2/php.ini文件,先做一般配置,在改動之前,請先將該配置文件做個備份。以便在出錯的時候可以恢復。
>memory_limit = 8M =>修改成你所需的內存大小
>upload_max_filesize = 2M =>修改文件最大上傳尺寸
=============
>extension=mysql.so 支持Mysql服務
>extension=gd.so 支持gd函數
=============
其實在Ubuntu下,如果你安裝了php5-mysql和php5-gd之後,會自動修改以上二行的,我們做的只不過是確認一下它們前面的註釋符是否去掉。

bobyang 寫道:
補充:
1。目前大多數php的open source都是用php4寫的,爲了兼容以前的php版本,有時需要將register_long_arrays打開,否則$HTTP_GET_VARS和$HTTP_POST_VARS等變量將無法使用,會出現一些莫名其妙的問題。
2。另外,在裝完php5後最好確認一下/etc/apache2/mods-enabled/下是否有鏈接:
php5.load -> /etc/apache2/mods-available/php5.load

加固PHP,以增強安全性。

注意,下面的安全性要因情況而定,所以我已經把它們的功能寫清楚了,如果有問題的話,看看是否由於下面哪種限制條件所造成,可相應將其註釋掉。

下面我們開始加固php,我們再次編輯/etc/php5/apache2/php.ini文件,之所以沒有一次改完,主要是爲了給大家一個清晰的思路。
>#打開安全模式,打開他的好處就是PHP文件只能訪問所有者和PHP文件所有着一樣的文件,即使在chroot環境下也無法訪問jail中屬主不一樣的文件,類似於php shell這樣的後門就沒用武之地了哦,phpshell是很流行的php後門,他可以執行系統命令,就象他的名字一樣,和 shell很接近。
>safe_mode = On

>#下面的設置就限制了fopen(), file()等函數可以操作的目錄範圍,避免了入侵者非法讀取文件,一定要在/var/www後面加" /",否則/var/wwww下的文件也能被訪問 。該選項會禁止任何不在/var/www/目錄下的PHP文件運行,包括任何以軟鏈接方式鏈到/var /www/目錄下的程序,如PhpMyAdmin包,就在該選項設定後無法正常運行。
>open_basedir = /var/www/

>#禁止使用phpinfo和get_cfg_var函數,這樣可以避免泄露服務信息,一般在在確認PHP能正常工作之後再使之關閉
>disable_functions = phpinfo,get_cfg_var

>#設置php程序錯誤日誌
>error_reporting = E_ALL
>log_errors = On
>error_log = /var/log/php_err.log

>#如果php程序沒有指明需要register_globals的話,最好把register_globals設置爲Off,這樣可以避免很多安全問題的。注意,如果你的程序是需要register_globals的話,可千萬別關。Ubuntu默認是關閉的。
>register_globals = Off

>#禁止打開遠程地址,記得最近出的php include的那個漏洞嗎?就是在一個php程序中include了變量,那麼入侵者就可以利用這個控制服務器在本地執行遠程的一個php程序,例如phpshell,所以我們關閉這個。
>allow_url_fopen = Off

測試PHP5是否安裝成功
sudo gedit /var/www/testphp.php

在裏面寫入然後在Firefox中打開:http://localhost/testphp.php
應該能看到下面的畫面,很長的,俺截了一下php5.png
看完後把testphp.php刪掉,可能會有安全風險

安裝MySqlsudo apt-get install mysql-server********************上面的命令極有可能出現問題,就是告訴你有部分依賴的問題,這時千萬別聽信別人的信口亂說,follow me,否則你很有可能重裝系統,信不信走着試試一句話,更新源有問題系統-》系統管理-》軟件源,選擇主服務器,再次運行上面的命令,OK了嗎?go on......注意設置mysql root賬號。
MySql初始只允許本機(127.0.0.1)連接,如果想多臺機子使用或者向Internet開放的話,
編輯/etc/mysql/my.cnfsudo gedit /etc/mysql/my.cnf
找到bind-address = 127.0.0.1
用#註釋掉,象這樣#bind-address = 127.0.0.1
MySql默認沒有設置root密碼,本機的root用戶也沒有密碼,有風險是吧,這樣
mysqladmin -u root password your-new-password
mysqladmin -h root@local-machine-name -u root -p password your-new-password(這裏我怎麼也連接不上mysql服務器,最後在mysql-admin裏面改的)
sudo /etc/init.d/mysql restart
安裝MYSQL Administrator
sudo apt-get install mysql-admin
安裝好後在Gnome-應用程序-系統工具-MySQL Administrator這裏俺遇到了一個問題,就是運行MySQL Administrator後,點擊User Administrator後,整個MySQL Administrator掛死,最後還是解決了,方法見後面
安裝MYSQL for Apache HTTP Server
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install php5-mysql
sudo apt-get install phpmyadmin
要讓PHP與MySql一起工作,編輯
sudo gedit /etc/php5/apache2/php.ini
取消對;extension=mysql.so的註釋,象這樣

extension=mysql.so

保存文件,然後
sudo /etc/init.d/apache2 restart
測試:http://localhost/phpmyadmin 這裏俺能修改用戶,新增用戶等

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章