本文目錄一覽:
- 1、PHP如何安裝及配置?
- 2、php是什麼意思
- 3、Centos7下PHP7最新版怎麼安裝
- 4、有誰知道如何安裝配置安全的freeBSD還有php.ini怎麼配置
- 5、想測試PHP網站,需要哪些軟體並如何安裝
- 6、PHP環境安裝
PHP如何安裝及配置?
將下載的壓縮包解壓到純英文目錄下;
2.因為PHP是被動型的服務,目的就是為apache提供了處理php代碼的服務。因此我們要做的配置就是告訴apache,PHP在哪?需要它處理什麼樣的文件。
所以,打開apache的配置文件,httpd.conf。
搜索LoadModule,找到之後按照相同的格式載入php模塊,輸入:
接著搜索mime_module,找到後按照相同格式在該標籤內,輸入:
放的位置是沒什麼要求,最好是能跟好隊形,好修改。
上面添加的配置,分別是告訴php的位置,然後告訴伺服器.php的文件會被當作「application/x-httpd-php」格式處理,而伺服器里處理application/x-httpd-php格式的就是php。這樣配置之後,一旦是.php的文件伺服器都會調用我們的php來處理。
到這裡php代碼就可以正常使用了。
3.php的配置以及添加擴展
php本身的配置是要自己創建的。
首先,在解壓的php目錄下找到php.ini-development文件,這是php提供的配置模版,複製並修改文件名為php.ini。
由於php是被動服務,它的配置文件也一樣是apache來調用,所以還是要到apache的配置文件httpd.conf里添加:
接著,如果要添加擴展,可以在php的配置文件php.ini里搜索extension_dir,找到下圖:
php配置文件的注釋是靠「;」,這項配置是說明擴展文件的所在目錄。
按格式加上:extension_dir = “你的擴展文件目錄”
你的擴展文件目錄就是php解壓目錄下的ext文件夾,即:”解壓目錄/ext”。
接著需要告訴php載入哪些擴展:
在php.ini里添加:extension=你要添加的擴展名字
php是什麼意思
php通常指超文本預處理器,用於面向對象、命令式編程,是一種通用開源腳本語言。
主要特點:
為開源性和免費性、快捷性、資料庫連接的廣泛性、面向過程和面向對象並用。優點是利於學習,使用廣泛。此外,php還可以指菲律賓比索的標準貨幣代碼符號,MPLS網路中的倒數第二跳彈出功能。是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種HTML 內嵌式的語言,是一種在伺服器端執行嵌入HTML文檔的腳本語言,語言風格有些類似於C語言,被廣泛的運用。
簡介:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
特性包括:
1、PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法
2、PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;PHP具有非常強大的功能,所有的CGI的功能PHP都能實現
3、 PHP支持幾乎所有流行的資料庫以及操作系統。
4、最重要的是PHP可以用C、C++進行程序的擴展!
語言特點:
開源免費
PHP是一個受眾大並且擁有眾多開發者的開源軟體項目,Linux + Nginx + Mysql + PHP是它的經典安裝部署方式,相關的軟體全部都是開源免費的,所以使用PHP可以節約大量的正版授權費用。不過PHP作為一個開源軟體,它缺乏大型科技公司的支持背景,網路上對它的唱衰也是經久不衰,不過它的持續迭代和性能持續增強的現實卻是鼓舞人心的,PHP社區用實際行動給予各種質疑強有力的回擊。
快捷高效
PHP的內核是C語言編寫的基礎好效率高,可以用C語言開發高性能的擴展組件;PHP的核心包含了數量超過1000的內置函數,功能應有盡有很全面,開箱即用程序代碼簡潔; PHP數組支持動態擴容,支持以數字、字元串或者混合鍵名的關聯數組,能大幅提高開發效率; PHP是一門弱類型語言,程序編譯通過率高,相對其他強類型語言開發效率快;PHP天然熱部署,在php-fpm運行模式下代碼文件覆蓋即完成熱部署;PHP經過20多年的發展,在互聯網上可以搜到海量的參考資料供參考學習。
性能提升
PHP版本越高它的整體性能越高,根據官方介紹,PHP7.0.0 對比PHP5.6性能就提升了2倍,PHP7.4已經比PHP7.0快了約30%,PHP8.0在性能上又相對PHP7.4大約改進了10%。PHP 8.0 引入了 JIT編譯器特性,同時加入多種新的語言功能,例如命名參數、聯合類型、註解、Constructor Property Promotion、match 表達式、nullsafe 運算符以及對類型系統、錯誤處理和一致性的改進。PHP擁有自己的核心開發團隊,保持5年發布一個大版本、1個月發布2個小版本的頻率,最新的版本是PHP8.08 。
跨平台
每個平台都有對應的php解釋器版本,指針對不同平台均編譯出目標平台的二進位碼(PHP解釋器),php開發的程序可以不經修改運行在windows、linux、unix等多個操作系統上。
常駐內存
php-cli模式下可以實現程序常駐內存,各種變數和資料庫連接都能長久保存在內存實現資源復用,比較常用的做法是結合swoole 組件編寫cli框架。
頁面生命周期
在php-fpm模式下,所有的變數都是頁面級的,無論是全局變數還是類的靜態成員,都會在頁面執行完畢後被清空,對程序員水平要求低,佔用內存非常少,特別適合中小型系統的開發。
運行機制:
PHP常見的運行模式有2種,分別是php-fpm 和php-cli 。當PHP 選擇運行在php-fpm模式下,所有的變數都是頁面級的,無論是全局變數還是類的靜態成員,都會在頁面執行完畢後被清空。運行在php-cli模式下可以實現程序常駐內存,各種變數和資料庫連接都能長久保存在內存 實現資源復用,性能可以得到很大的提升,php-cli開發比較複雜能但是能夠獲取更高的性能,對開發者的要求比較高需要比較高的開發水平,比較常用的模式是結合swoole 組件編寫cli框架,各種變數能保存在跨進程的高性能共享內存 Table ,可以開發出支持熱啟動的php-cli可靠各類應用系統。
php-fpm在PHP 5.3.3 版本成為了官方正式組件(2010-07-22),它提供了穩定可靠的進程管理服務,進程不足時候可以智能擴充數量,閑置時候可以自動回收銷毀多餘的進程,同時它對程序的容錯能力很強大運行非常穩定,可以應付企業級的開發需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互聯網協議下進行的用戶的輸入輸出,頁面級生命周期各種資源用完即釋放,不存在內存泄漏的問題。php-fpm也提供有一些常駐內存的技術支持,例如PHP 7.4引入的opcache.preload也能實現局部的PHP類和函數的常駐內存,不過這個方法不夠靈活,和伺服器配置捆綁的太死了。
php-cli因為能實現各類資源的常駐內存,所以可以資源復用,更高效完成多進程編程和非同步編程,可以開發出負載能力更高的應用系統。但是相對php-fpm的簡單編程開發,開發者要注意很多的事項和需要做很多附加的控制器開發,否則就無法實現期待中的高性能。
首先開發者需要去實現可靠的進程管理服務,保證系統進程遇到各類錯誤退出運行後能夠自動創建新的進程,只有這樣才能保證後續的服務請求有足夠空閑進程可分配。每個業務代碼段都要做異常處理,讓進程遇到非致命錯誤時候不會退出,因為進程重啟意味程序和各類資源需要再次載入,這個過程性能消耗不小,所以只有進程穩定運行了常駐內存才有意義。
其次因為常駐內存,編寫的新的程序必須重啟服務才能生效,這一點習慣了fpm模式的開發者會感到比較陌生。另外開發者需要手工釋放內存,否則系統長時間運行後會出現內存泄露。同時在cli模式下,我們不能像fpm里直接用 $_SERVER、$_POST、$_GET、$_COOKI和$_FILES 進行編程工作,需要自己去解析各種互聯網通訊協議完成用戶的輸入輸出。要實現多進程編程利用多核CPU計算,還有學習使用pcntl和posix編程,這裡涉及到了非同步編程邏輯,這塊難度還是比較大的。比較常用的模式是結合swoole 組件編寫cli框架。
PHP是一個活躍的社區開發語言,有專業的核心開發團隊在持續不斷的迭代,最近一個版本就是PHP 8.0.8 引入了很多的新特性。
語言參考:
內置函數
PHP 有很多標準的函數和結構。還有一些函數需要和特定的擴展模塊一起編譯,否則在使用它們的時候就會得到一個致命的「未定義函數」錯誤。例如,要使用 image 函數中的 imagecreatetrue,需要在編譯 PHP 的時候加上 GD 的支持。或者要使用 mysqli_connect函數,就需要在編譯 PHP 的時候加上 MySQLi 支持。有很多核心函數已包含在每個版本的 PHP 中如字元串和變數函數。調用 phpinfo或者 get_loaded_extensions可以得知 PHP 載入了那些擴展庫。同時還應該注意,很多擴展庫默認就是有效的。
靜態網站與動態網站的區別
靜態網站:web1.0 時代
動態網站:web2.0 時代
靜態網站特點:
1、網頁內容一經發布到網站伺服器,無論是否有用戶訪問,每個靜態頁面的內容都是保存在網站伺服器上的。也就是說,靜態網頁是實實在在保存在伺服器上的文件,每個網頁都是一個獨立的文件。
2、靜態網頁的內容相對穩定,因此容易被搜索引擎檢索。
3、 靜態網頁沒有資料庫的支持,在網站製作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁製作方式比較困難。
4、靜態網頁的交互性較差,在功能方面有較大的限制。
動態網站特點:
1、交互性:網頁會根據用戶的要求和選擇而動態地改變和響應,瀏覽器作為客戶端,成為一個動態交流的橋樑,動態網頁的交互性也是今後web發展的潮流。
2、自動更新:即無須手動更新HTML文檔,便會自動生成新頁面,可以大大節省工作量
3、因時因人而異:即當不同時間、不同用戶訪問同一網址時會出現不同頁面。
動態網頁是與靜態網頁相對應的,靜態網頁的後綴是以 .htm , .html , .shtml , .xml ,動態網頁的後綴是以 .asp , .jsp , .php , .perl , cgi 等形式。在動態網頁網址中有一個標誌性的符號”?”
Centos7下PHP7最新版怎麼安裝
步驟 1:檢查已安裝的內核版本 # uname -sr 步驟 2:在 CentOS 7 中升級內核 接下來,安裝最新的主線穩定內核: # yum –enablerepo=elrepo-kernel install kernel-ml 最後,重啟機器並應用最新內核,接著運行下面的命令檢查最新內核版本還有一些代碼我不想打了,樓主就自己去後盾人看看吧對你很有幫助的
有誰知道如何安裝配置安全的freeBSD還有php.ini怎麼配置
我的FreeBSD5.3配置筆記(相同於5.4\6.0)
接觸FreeBSD時間不長,我發現配置FreeBSD對於象我這樣的新手還是很有些困難,經過幾天的研究取得了一點進展,現在我的配置方法寫出來希望新手能少走一些彎路。
1.安裝完成配置xorg,命令如下:
#Xorg -configure
這時,當前目錄下就多了一個xorg.conf.new的文件,把它cp到/etc/X11/下:
#cp xorg.conf.new /etc/X11/xorg.conf
然後,編輯xorgcfg -textmode,修改一下屏幕的解析度.
2.啟動gnome
在用戶主目錄下創建.xinitrc文件,加入以下內容:
exec gnome-session
#startx 即進入gnome
3.啟動KDE
方法1:
在用戶主目錄下創建.xinitrc文件,加入以下內容:
exec startkde
方法2:
修改一下/usr/X11R6/1ib/X11/xinit/xinitrc文件
拉到文件最後…看到..twm了嗎…從這裡起..後最後前面都加#吧..
然後加上一句:
startkde
方法3:
直接輸入
# echo “/usr/local/bin/startkde” ~/.xinitrc 就行了
4.打開聲音
修改/boot/defaults/loader.conf
將下面兩項的NO改為YES
sound_load=”NO”
snd_driver_load=”NO”
5.漢化圖形界面
1.安裝kde-i18n-zh_CN:
#cd /usr/ports/chinese/kde3-i18n-zh_CN
#make install clean
2.安裝字體
在/usr/X11R6/lib/X11/fonts/下建立TrueType目錄
將windows下的SIMSUN.TTC複製到TrueType目錄
雙擊SIMSUN.TTC,字體就安裝好了
3.更改語言環境為中國,簡體中文
4.在KDE的控制中心》外觀和主題》字體 中修改字體為SIMSUN
6.安裝fcitx輸入法
1.通過ports安裝fcitx
#cd /usr/ports/chinese/fcitx
#make install
2.修改~/.xinitrc,添加:
export LANG=zh_CN.eucCN
export LC_CTYPE=zh_CN.eucCN
export XMODIFIERS=’@im=fcitx’
fcitx
exec startkde
6.#qtconfig
然後選擇–Interface—XIM Input Style 選Over the Spot(上面的複選框也選上)–File–Save
7.掛載windows分區並支持中文文件名
1.建立掛載點,在/mnt/下建立文件夾C,D,E,F
2.修改/etc/fstab文件,加入windows分區,並把分區掛載到剛才建好的目錄上,設置許可權為讀寫,語言為中文並自動掛載
/dev/ad0s1 /mnt/C msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s5 /mnt/D msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s6 /mnt/E msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s7 /mnt/F msdos rw,-L=zh_CN.eucCN,auto 0 0
8.激活滑鼠滾輪
修改/etc/xorg.conf
在”Mouse”中加入
Option “ZAxisMapping” “4 5”
保存推出,重啟X。
9.調整屏幕偏移
開個終端窗口運行xvidtune,調整好之後現不要退出,點一下那個「Show」按鈕,終端窗口中會顯示幾行類似於這樣的信息:
hsync range 0: 31.50 – 48.50
vsync range 0: 40.00 – 70.00
“1024×768” 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
打開/etc/X11/XF86Config或者xorg.conf文件,找到Section “Monitor”段,在EndSection前面加入一行:
# 這裡填入上面顯示的第3行信息,前面加上ModeLine
ModeLine “1024×768” 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync
保存退出,重啟X。
FreeBSD配置:
更新FreeBSD
完成了安裝、配置,FreeBSD基本上就算裝完了。不過,目前為止沒有哪個通用操作系統能夠保證「bug-free」,FreeBSD也一樣。在重新啟動之後,我們需要做一些調整;並且,通過重新配置內核,我們可以得到一個更小、更快的操作系統。
第一步要做的是同步源代碼。FreeBSD是一套開放源代碼的操作系統,它的全部源代碼都可以通過cvsup與中央cvsup伺服器,或它的某個鏡像同步。
cvsup是一個可選的package,同樣的,它也可以從ports裡面安裝(/usr/ports/devel/cvsup和 /usr/ports/devel/cvsup-nogui)。考慮到許多應用程序都依賴X的庫文件,在前面安裝的部分我安裝了它,並且直接安裝了 cvsup的package。不過,如果你有足夠的耐心去一個一個地make需要的ports,那麼先安裝ports collection,然後make cvsup-nogui也是一個不錯的主意,儘管這需要比較長的時間。
創建一個用於cvsup(1)的supfile,命名為stable-supfile:
(default host中選定的cvsup伺服器——對訪問的IP進行了限制,筆者只在北京工業大學校內使用過,因此如果您無法連接這個伺服器,請嘗試,或cvsup.freebsd.org)
*default host=
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
src-all
ports-all tag=.
隨後執行
cvsup -g -L 2 stable-supfile
這裡需要稍微解釋一下FreeBSD的幾種版本。
FreeBSD包括3類分支:-RELEASE,-STABLE和-CURRENT。FreeBSD 3.x、4.x和5.0是目前受到維護的版本,如果你期待穩定運行,那麼,可以選擇的最新版本將是FreeBSD 4.6-STABLE(如果你是在4.6.2-RELEASE發行之後更新的,那麼它實際上比4.6.2-RELEASE新,並且,它正式的CVS tag是RELENG_4,即FreeBSD 4-STABLE)。
那麼,三類分支有什麼區別呢?
FreeBSD的開發是非常活躍的。系統中可能會隨時引入一些新的特性。最新的代碼是在-CURRENT分支中引入的。-CURRENT的修改非常頻繁,每天都可能有數百處修改。使用-CURRENT分支的FreeBSD需要耐心和勇氣,因為你的系統隨時可能崩潰(隨著FreeBSD 5.0開發尾聲的接近,這種現象已經越來越少),make world也可能空手而歸(沒有人保證-CURRENT分支能夠正常編譯),此外,這個分支的性能也不好(因為調試的原因,這個分支引入了大量的調試選項,這意味著運行速度不會太快)。當然,正像它的名字那樣,-CURRENT分支的版本也是最新的5.0,而且,一切FreeBSD的錯誤和漏洞的修正都是首先在-CURRENT分支引入的。目前,-CURRENT分支碩果僅存的只有FreeBSD 5-CURRENT(指定cvs tag時寫「.」),這個分支包括了FreeBSD 5.0開發的最新進展。
FreeBSD 5中將引入大量的新特性,包括核心級線程(目前FreeBSD中的線程支持僅限於用戶級線程,這在多處理器的環境下性能不夠好,當然,目前使用fork ()來支持的多進程線程模擬能夠提供類似核心級線程的功能,但並不是所有的程序員都知道如何使用fork)、完整的Soft Updates(這一變化將提供更好的文件系統性能,同時提供更好的穩定性),等等。如果你有快速的Internet連接,一台或一些空餘的機器(當然,不是生產用的伺服器),並且希望為FreeBSD的開發作貢獻,或者你關心操作系統的最新發展,那麼,-CURRENT分支是最好的選擇。此外,
由於-CURRENT分支性能不好、穩定性不夠等這些缺點,對於生產的伺服器來說,通常運行的應該是FreeBSD-STABLE。如同它的名字那樣, FreeBSD-STABLE的目的是「穩定地運行」。-CURRENT分支中的代碼,在經過一段時間(通常是7到90天,但安全更新屬於特例,通常會在幾個小時)的驗證之後,符合版本條件(有些新特性只能用於FreeBSD 5.0)的代碼會被FreeBSD-STABLE吸收,這個操作稱作MFC(Merge From -CURRENT,不是Microsoft Foundation Classes:P)。
由於FreeBSD 5.0的第一個RELEASE至今仍然沒有發布,因此,目前還沒有5.0-STABLE。目前,FreeBSD-STABLE有兩個版本,FreeBSD 3-STABLE和FreeBSD 4-STABLE,分別對應3.x和4.x的最新穩定版代碼(對應的cvs tag分別是RELENG_3和RELENG_4)。由於版本的更新換代,其中3.x的-STABLE正在逐漸消亡。FreeBSD-STABLE每天平均會修改10個左右的文件。
每隔一段時間,FreeBSD的發行工程組(Release Engineering Team)會對FreeBSD-STABLE的源代碼樹進行鎖定。這段時間(目前的規定是30天,之前還有30天準備)內,所有的MFC操作都需要發行工程組的批准,因此,FreeBSD-STABLE在這個階段基本不會引入任何新的特性。經過這段時間之後,發行工程組會在最後鎖定ports樹,並 build一份所有的package,之後,這份鎖定的-STABLE,可能經過若干RC(Release Candidate),被命名為RELEASE,並製作光碟發行。
顧名思義,-RELEASE的設計目標是「發行」。一個版本一旦RELEASE,那麼他的功能就不會再增加了。此後的所有維護的目標都只有一個,那就是絕對穩定。如果你和-RELEASE分支同步,那麼絕不會出現make無法通過的情況,而且,通常這也可以保證你的系統「絕對」穩定,因為它不會引入任何新功能(例如,4.6就是4.6,如果你想要4.6.2的功能,必須明確地指定4.6.2)。
目前,FreeBSD有很多RELEASE版本,它們的cvs tag如下。我個人建議使用最新的4.6.2-RELEASE。
對於多數人來說,-RELEASE是一個比較極端的選擇。無論何時出現版本升級,如果你想跟進,那都必須修改supfile,如果你選擇不跟進,那麼就可能造成ports工作異常。如果經常更新,-RELEASE可以保證操作系統本身的安全性,但同其他分支一樣,如果ports出了問題,那麼也得一塊 make,而既然這樣,還不如使用-STABLE。
如果你符合下面的條件,那麼RELEASE分支可能比-STABLE分支更適合你
* 你使用的軟體對於操作系統的變化非常敏感,比如,它只能FreeBSD 4.5,而無法在4.6上運行;同時,你不打算採用它的更新版本,或者它的作者拒絕更新
* 操作系統的更新對於你來說沒有任何意義,比如,你打算把FreeBSD當作一個相對固定的嵌入式操作系統來使用,例如,作為防火牆的一部分
* 更新會對你造成困擾,操作系統的絕大多數新特性對於你來說除了增加煩惱之外,不能帶來任何其他東西。
-並且,符合以下的全部條件-
* 你每天察看FreeBSD,以及使用的全部軟體的安全公告
* 你的Internet連接比較通暢
目前我本人維護的所有主機,除了作為防火牆的那台之外,使用的都是FreeBSD-STABLE。
一旦同步完源代碼,就應該對整個系統進行更新。如果你沒有每天察看安全公告的習慣,那就應該關心一下cvsup到底更新了哪些代碼。nectar是目前 FreeBSD的Security Officer。如果你發現他一下子更新了許多代碼,那麼對你來說立即make world和kernel很可能是必需的。
為了更新整個系統,在/usr/src中執行
make world
以及
make kernel KERNCONF=內核配置文件名
當然,也可以連起來執行:
make world kernel KERNCONF=內核配置文件名
如果你的計算機運行速度較慢,那麼,對於基本系統的更新(相當於不包括庫的一次world),可以用
make most
替代make world,但make world是一個不錯的主意,因為它能夠保證對C運行環境的改變應用到所有的程序中,如果修正的不是動態連接的C函數庫,那麼make world可以保證代碼的一致性。
make kernel是一個需要重新啟動的操作。如果你的make world修改了系統的關鍵服務,那麼最好也重新啟動一下。我很少有耐心看完make world和kernel的執行,根據系統的運行速度不同,這需要一個小時到一天的時間,而且,不是所有的SSH客戶端都能夠長時間正確的執行,例如, SecureCRT的多個版本都有內存泄漏問題。
為了解決這個問題,我用下面的命令來完成更新:
make world kernel KERNCONF=內核配置文件名 clean /var/log/world,out reboot
這個命令能夠記錄更新的全過程,如果在什麼地方編譯失敗,你可以很快地找到原因。對於多數人來說,由於後面的,只需要察看uptime就能知道便以是否成功。
需要說明的是,FreeBSD的make world並不總能成功。有時需要修改一些環境變數才能成功完成make。為了保證make成功,在/usr/src中執行任何make操作之前,建議你看一眼UPDATING中是否有特殊的要求(這種要求並不是在FreeBSD Release的時候才會出現,很多時候他會在某個CURRENT中引入,然後隨著MFC進入-STABLE分支),並且,在進行大的版本升級之前(跨 RELEASE,甚至主版本號),首先執行下面的命令
mergemaster -p
並在make world之後執行
mergemaster -i
運行mergemaster腳本需要一定的Unix配置知識,不過,由於配置文件中包含很多幫助信息,因此,只要master.passwd、group 這樣的文件不出大問題(如果cvsup更新了master.passwd,那麼就需要留神,因為master.passwd標準配置是root口令為空,這時需要用m來合併,而不是使用i安裝),mergemaster並不會引入什麼新的問題。
前一條命令是更新make的配置(/etc/defaults/make.conf和/etc/make.conf)。對於多數人來說,除非進行跨版本升級,否則一般情況下是不需要這樣做的。後一條命令是同步全部配置,並安裝以前不存在的配置文件,而不進行提示。
筆者曾經遇到過FreeBSD因為系統日期不正確而無法make的情況,因此,再次特別提醒大家,如果你的系統日期不正確,最好是用date命令修改一下,或者乾脆用ntpdate或ntpd來同步時間。關於如何使用ntp,將在以後說明。
以後我們將講解FreeBSD內核的配置,以及如何配置make.conf來優化FreeBSD的編譯結果。
「簡單的東西不容易出問題。」
至理名言!事實上,削減操作系統中那些對你沒用的功能是一件非常重要的事情。這不僅僅意味著一個更小的操作系統,佔用更少的磁碟空間(現在的硬碟少說也有幾十GB,幾兆的空間根本就是九牛一毛),而且意味著你被攻擊的可能性也更低——簡而言之,你不需要擔心操作系統中沒有安裝的模塊存在問題會對你造成影響。
這篇文章中,我們將一起對FreeBSD-i386的內核進行優化配置。這篇文章是針對FreeBSD4.7-STABLE寫的,並且,FreeBSD 4.x的配置不會和這篇文章有太大出入。如果你要優化FreeBSD 5或FreeBSD 2/3的內核的話,則需要仔細參考它們的LINT文件了(後面將會提到)。
[注意:FreeBSD 5.0預定將於2002年11月20日發布。FreeBSD的開發組非常重視發行版本的質量,並認為這比發行版本的計劃還重要,但由於同樣的原因,我們往往會發現FreeBSD實際發行的版本比預定計劃晚一些,通常在半個月之內。FreeBSD 5.0作為FreeBSD近期最為重要的發行版本,很可能也會延後發表,但筆者個人認為無論如何我們在今年年底之前肯定是可以看到最終的發行版本的。 FreeBSD 5.0對系統進行了大量的修改,這一系列的文章將在FreeBSD 5.0發布當天發表針對5.0的修訂版本,而現有版本將保留,但進入維護階段,不再引入新的內容。]
FreeBSD的源代碼可以直接從中央cvsup伺服器同步,也可以作為系統的一部分在安裝的時候一兵裝上。前面已經說過如何同步源代碼,在此不再贅述。 FreeBSD的源代碼(通常在/usr/src)包含建造基本系統的全部代碼,而在/usr/src/sys中則有若干個目錄,對應不同的計算機體系結構(4.x只支持i386和alpha)。i386是一個泛指的名字,包含了與Intel 80386兼容的所有機器,並不是特指80386。
簡單介紹一下FreeBSD的內核文件。在4.x系統中,/kernel這個文件是默認的內核,通常正常啟動使用的就是它。 /kernel.GENERIC這個文件是兼容性較強的內核,如果/kernel無法引導系統,就得靠這個文件來引導。/kernel.old是本次make kernel之前的內核,通常如果你的kernel壞掉,也可以考慮使用/kernel.old來引導系統。
/modules/是內核的模塊,而/modules.old/是對應/kernel.old的模塊。這些文件在每次替換kernel的時候都會同時替換。
在5.0中,內核以及內核的模塊都被保存在/boot/kernel中。
在/usr/src/sys/i386/conf中有兩個配置文件,GENERIC和LINT。其中GENERIC是make kernel的默認配置文件,直接make kernel生成的是GENERIC內核,但安裝時命名為/kernel。系統在安裝時會安裝一個kernel.GENERIC,以後,這個文件不會跟隨系統的make kernel更新,因此,如果你認為這個文件有必要更新的話,需要手工make kernel,並把/kernel改名為kernel.GENERIC。當然,通常並不需要這樣做。
LINT是包括幾乎所有內核編譯配置詳細信息的文件。這個配置並不是用來真正建立kernel的,他的主要用途是向用戶展示可用的內核編譯配置。在修改內核編譯配置時,最好先參考這個文件。
為了配置自己的內核,應將GENERIC複製為一個另外的文件。習慣上這個文件和主機名相同。例如,我把自己的這台Web機器命名為apache.intranet.frontfree.net,就把配置文件命名為APACHE:
cd /usr/src/sys/i386/conf
cp GENERIC APACHE
隨後,用ee APACHE編輯它。我們拿一個實際的GENERIC文件來說明。
為了節省篇幅,這個文件頭上的注釋被刪掉了一部分。
machine i386 # 體系模型為i386
cpu I386_CPU # 支持80386
cpu I486_CPU # 支持80486
cpu I586_CPU # 支持Pentium
cpu I686_CPU # 支持Pentium Pro以及更高
ident GENERIC # 內核文件的名字
maxusers 0 # 自動檢測同時允許的最大用戶數
#makeoptions DEBUG=-g # 包含調試符號。通常只有current版本打開
options MATH_EMULATE #支持協處理器模擬
options INET #支持互聯網
options INET6 #IPv6通訊協議
options FFS #伯克利快速文件系統
options FFS_ROOT #FFS作為根設備[必須保留]
options SOFTUPDATES #打開FFS soft updates支持
options UFS_DIRHASH #提高大型目錄的支持
options MFS #內存文件系統
options MD_ROOT #MD作為根設備
options NFS #Network Filesystem
options NFS_ROOT #NFS作為根設備(需要NFS)
options MSDOSFS #MSDOS文件系統
options CD9660 #ISO 9660文件系統(光碟)
options CD9660_ROOT #CD-ROM作為根設備(需要CD9660)
options PROCFS #進程文件系統
options COMPAT_43 #兼容4.3BSD[必須保留]
options SCSI_DELAY=15000 #檢測SCSI設備前的延時(ms)
options UCONSOLE #用戶可以奪取控制台
options USERCONFIG #boot -c編輯器 editor
options VISUAL_USERCONFIG #菜單式boot -c編輯器
options KTRACE #ktrace(1)支持
options SYSVSHM #SYSV-風格的共享內存
options SYSVMSG #SYSV-風格的消息隊列
options SYSVSEM #SYSV-風格的信號量(semaphores)
options P1003_1B #Posix P1003_1B實時擴展
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM #對惡意ICMP請求進行限制
options KBD_INSTALL_CDEV # 在/dev安裝一個CDEV設備
# 下面兩項在製作對稱多處理器(SMP)內核時需要
#options SMP #對稱多處理器內核
#options APIC_IO #對稱(APIC) I/O
device isa
device eisa
device pci
# 軟碟機
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1
#
# 如果使用東芝Libretto以及他的Y-E Y-E Data PCMCIA軟碟機
# 不要使用上面的fdc0,而應使用
#device fdc0
# ATA以及ATAPI設備
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk # ATA 磁碟驅動器(IDE硬碟)
device atapicd # ATAPI 光碟機
device atapifd # ATAPI 軟碟機
device atapist # ATAPI 磁帶機
options ATA_STATIC_ID #靜態設備編號
# SCSI控制器
device ahb # EISA AHA1742 family
device ahc # AHA2940 板載AIC7xxx設備
device amd # AMD 53C974 (Tekram DC-390(T))
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (較新的晶元組)
options SYM_SETUP_LP_PROBE_MAP=0x40
# 使用ncr可以在配置了sym和ncr的情況下掛接舊的NCR設備
device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
# SCSI 外設
device scbus # SCSI 匯流排(如果使用SCSI設備,必須有)
device da # Direct Access (硬碟)
device sa # Sequential Access (磁帶,等等)
device cd # CD
device pass # Passthrough device (直接 SCSI 訪問)
# 通過SCSI子系統介面的RAID控制器
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device dpt # DPT Smartcache – See LINT for options!
device iir # Intel Integrated RAID
device mly # Mylex AcceleRAID/eXtremeRAID
device ciss # Compaq SmartRAID 5* series
# RAID控制器
device aac # Adaptec FSA RAID, Dell PERC2/PERC3
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 family
device twe # 3ware Escalade
# atkbdc0 控制鍵盤和PS/2滑鼠
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12
device vga0 at isa?
# 啟動畫面和屏幕保護程序
pseudo-device splash
# syscons 是默認的控制台驅動,類似SCO控制台
device sc0 at isa? flags 0x100
# 對於pcvt vt220控制台,啟用這個和PCVT_FREEBSD
#device vt0 at isa?
#options XSERVER # 在vt控制台支持X伺服器
#options FAT_CURSOR # 使用大游標
# 如果你是用ThinkPad,將下面的一行和其他PCVT相關設備的注釋去掉
#options PCVT_SCANSET=2 # IBM使用非標準鍵盤
# 浮點運算支持 – 請勿禁用
device npx0 at nexus? port IO_NPX irq 13
# 電源管理支持
device apm0 at nexus? disable flags 0x20 # Advanced Power Management
# PCCARD (PCMCIA) 支持
device card
device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable
# 串口(COM)
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9
# 並口
device ppc0 at isa? irq 7
device ppbus # 並口匯流排 (所有並口設備都需要)
device lpt # 印表機
device plip # 並口TCP/IP
device ppi # 並口介面設備
#device vpo # 需要scbus和da
# PCI 乙太網適配器
device de # DEC/Intel DC21x4x (“Tulip”)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card (“Wiseman”)
device txp # 3Com 3cR990 (“Typhoon”)
device vx # 3Com 3c590, 3c595 (“Vortex”)
# 使用公共的MII匯流排控制器代碼的PCI乙太網適配器
# 注意:一定要保留’device miibus’以確保可用
device miibus # MII匯流排支持
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device pcn # AMD Am79C97x PCI 10/100 NICs
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (“Starfire”)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 “EPIC”)
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (“Boomerang”, “Cyclone”)
device bge # Broadcom BCM570x (“Tigon III”)
# ISA乙太網適配器
# ‘device ed’ 需要 ‘device miibus’
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ex
device ep
device fe0 at isa? port 0x300
# Xircom Ethernet
device xe
# PRISM I IEEE 802.11b wireless NIC.
device awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
#device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
# 偽設備 – 數字表示分配多少個
pseudo-device loop # 環回網路
pseudo-de
想測試PHP網站,需要哪些軟體並如何安裝
下個xampp,一次安裝好環境
最簡單的是appserv集成環境.
上面兩個軟體集成了apache+mysql+PHPmyadmin+php屬於集成開發環境,直接把你的文件放到WWW里,就可以測試了,如果這些軟體全部重新裝的話要好長時間的,可以用上面這兩種集成環境其中一種就可以,直接就可以運行PHP了!
PHP環境安裝
下載PHP5:
下載apache:
一.php的安裝與調試
由於php是一個zip文件(非install版),安裝較為簡單,解壓就行。把解壓的 php5.2.1-Win32重命名為 php5。並複製到C盤目錄下。即安裝路徑為 c:\php5
1 找到php目錄下的 php.ini-dist或 php.ini.recommended文件,重命名為 php.ini
並複製到系統盤的windows目錄下(以c:\windows為例).
2 再把php目錄下的php5ts.dll,libmysql.dll複製到目錄 c:\windows\system32下。
3 把php5\ext目錄下的php_gd2.dll,php_mysql.dll,php_mbstring.dll文件複製到c:\windows\system32下
如果沒有載入 php_gd2.dll php將不能處理圖像。沒有載入php_mysql.dll php將不支持mysql函數庫
php_mbstring.dll在後面使用phpmyadmin時支持寬字元。
4 打開c:\windows\php.ini文件(關聯到mysql)
設置擴展路徑
查找 extension_dir 有這麼一行extension_dir = “./”
將此行改成
extension_dir = “C:\php5\ext”
其中C:\php5是你安裝php的路徑。路徑不正確將無法載入dll
(注意:有些php版本是 ;extension_dir = “./” 要把前面的分號去掉)
查找 extension
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dl
把上面3項前面的分號去掉,這樣apache啟動時就可以載入這些dll了
當然前面我們也把這些dll複製到system32下了l
php5時差問題
?php echo date(“Y-m-d H:i:s”);?時間相差八小時
為什麼呢?PHP5系列版本新增了時區設置,默認為格林威治時間,與中國所在的東8區正好相差8個小時
查找date.timezone有這麼一行
;date.timezone =
將;去掉,改成
date.timezone = PRC
二.apache的調試和整合
1.修改網站根目錄
查找 DocumentRoot有這麼一行
DocumentRoot”C:/Program Files/Apache Group/Apache2/htdocs”
這就是你網站的根目錄,你可以修改,也可以用默認的.如果改,還要修改下面這項,否則可能會出現 403 錯誤
查找 This should be changed to whatever you set DocumentRoot to
在它下面兩行有
Directory “C:/Program Files/Apache Group/Apache2/htdocs”
把上面兩項的 C:/Program Files/Apache Group/Apache2/htdocs 改成你想要的目錄
2.讓apache支持*.php(網頁)
查找 DirectoryIndex index.html index.html.var
修改成
DirectoryIndex index.html index.html.var index.php
這樣index.php 可以充當默認頁面了
3.Apache中模塊化安裝php
查找 # LoadModule foo_module modules/mod_foo.so
在此行後加入一行
LoadModule php5_module C:/php5/php5apache2.dll //注意:其中C:/php5/php5apache2.dll是你安裝php的相應路徑.不要把php5apache2.dll和php5apache.dll混淆.php5apache.dll只適用於apache 版本1的.PHP5壓縮包里的php5apache2.dll只適用於apache2.0.*版本,如果是2.2.*以上版本,就可能會出現”Cannot load C:/php/php5apache2.dll into server: The specified module could not be found.”或者:”The requested operation has failed”
4.查找 AddType application/x-gzip .gz .tgz
在此行後加入一行
AddType application/x-httpd-php .php (記住:前邊有一個空格哦!!!)
這樣apache就可以解釋php文件了
5.測試
在網站根目錄下創建一個 phpinfo.php 文件
?php
phpinfo();
?
在瀏覽器打開
5.測試php和mysql資料庫的關聯
在網站根目錄下創建一個test.php 文件
?php
$link=mysql_connect(“localhost”,”root”,”12345″); //12345改成你的mysql密碼
if(!$link) echo “失敗!”;
else echo “成功!”;
mysql_close();
?
在瀏覽器打開
如果輸出成功,則說明大功告成了
以上回答你滿意么?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/160104.html