關(guān)于LAMP的各種知識(shí),今天主要是介紹一下在CentOS下安裝,搭建一個(gè)Web服務(wù)器的過程。(本文是使用安裝包安裝)
一、簡(jiǎn)介
什么是LAMP LAMP是一種Web網(wǎng)絡(luò)應(yīng)用和開發(fā)環(huán)境,是Linux, Apache, MySQL, Php/Perl的縮寫,每一個(gè)字母代表了一個(gè)組件,每個(gè)組件就其本身而言都是在它所代表的方面功能非常強(qiáng)大的組件。 LAMP這個(gè)詞的由來最早始于德國(guó)雜志“c't Magazine”,Michael Kunze在1990年最先把這些項(xiàng)目組合在一起創(chuàng)造了LAMP的縮寫字。這些組件并不是開始就設(shè)計(jì)為一起使用的,但是,這些軟件都是開源的,可以很方便的隨時(shí)獲得并免費(fèi)使用,這就導(dǎo)致了這些組件經(jīng)常在一起使用。這些組件的兼容性也在不斷完善,為了改善不同組件之間的協(xié)作,已經(jīng)創(chuàng)建了某些擴(kuò)展功能,在一起的應(yīng)用情形變得非常普便,因而成為目前最流行的web應(yīng)用基礎(chǔ)架構(gòu)。
LAMP的組件 平臺(tái)由四個(gè)組件組成,呈分層結(jié)構(gòu),每一層都提供了整個(gè)架構(gòu)的一個(gè)關(guān)鍵部分: Linux:Linux 處在最底層,提供操作系統(tǒng)。它的靈活性和可定制化的特點(diǎn)意味著它能夠產(chǎn)生一種高度定制的平臺(tái),讓其它組件在上面運(yùn)行。其它組件運(yùn)行于Linux 之上,但是并不一定局限于 Linux,也可以在 Microsoft Windows, Mac OS X 或 UNIX上運(yùn)行。 Apache:Apache位于第二層,它是一個(gè)Web 服務(wù)平臺(tái),提供可讓用戶獲得 Web 頁面的機(jī)制。Apache 是一款功能強(qiáng)大、穩(wěn)定、可支撐關(guān)鍵任務(wù)的Web服務(wù)器,Internet 上超過 50% 的網(wǎng)站都使用它作為 Web 服務(wù)器。 MySQL:MySQL 是最流行的開源關(guān)系數(shù)據(jù)庫管理系統(tǒng),是LAMP的數(shù)據(jù)存儲(chǔ)端。在 Web 應(yīng)用程序中,所有帳戶信息、產(chǎn)品信息、客戶信息、業(yè)務(wù)數(shù)據(jù)和其他類型的信息都存儲(chǔ)于數(shù)據(jù)庫中,通過 SQL 語言可以很容易地查詢這些信息。 PHP/Perl:Perl是一種靈活的語言,特別是在處理文本要素的時(shí)候,這種靈活性使Perl很容易處理通過 CGI接口提供的數(shù)據(jù),靈活地運(yùn)用文本文件和簡(jiǎn)單數(shù)據(jù)庫支持動(dòng)態(tài)要素。PHP 是一種被廣泛應(yīng)用的開放源代碼的多用途腳本語言,它可嵌入到 HTML中,尤其適合 web 開發(fā)。可以使用 PHP 編寫能訪問 MySQL 數(shù)據(jù)庫中的數(shù)據(jù)和 Linux 提供的一些特性的動(dòng)態(tài)內(nèi)容。
二、系統(tǒng)環(huán)境
系統(tǒng)平臺(tái):CentOS6.3
Apache版本:httpd-2.2.9
Mysql 版本:mysql-5.0.41
Php版本:php-5.2.6
在CentOS下安裝軟件有兩種方式,第一種是使用yum命令,自動(dòng)安裝軟件,安裝的軟件具有固定的位置和固定的目錄;第二種是下載源碼安裝包,手動(dòng)解壓,配置,編譯和安裝,在安裝的過程中可以自己選擇安裝的目錄和路徑等。在這里,我選擇的安裝方式是第一種,比較便捷,雖然在靈活性上有所欠缺,但是對(duì)于試驗(yàn)階段已經(jīng)夠了。
三、安裝
(1):配置防火墻(默認(rèn)情況下,端口80和3306是拒絕訪問的,在防火墻上進(jìn)行配置):
1.vi/etc/sysconfig/iptables(在"COMMIT"的上一行加上如下兩句)
2.-AINPUT-mstate--stateNEW-mtcp-ptcp--dport80-jACCEPT(允許80端口通過防火墻)
3.-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3306-jACCEPT(允許3306端口通過防火墻)
接著重啟防火墻使得配置生效:
1./etc/init.d/iptablesrestart
(2):安裝Apache
使用以下命令安裝Apache:
1.yuminstallhttpd
如果出下下面所示的語句,說明已經(jīng)安裝了Apache了,不需要重新安裝:
安裝完之后,重新啟動(dòng)Apache:/etc/init.d/httpd restart
接著將Apache設(shè)置為開機(jī)啟動(dòng):chkconfig httpd on.(這一步使得服務(wù)器不需要在每次重啟的時(shí)候都要手動(dòng)啟動(dòng)httpd服務(wù))
要查看httpd服務(wù)的啟動(dòng)狀態(tài),可以使用命令:chkconfig --list httpd(會(huì)顯示httpd在各個(gè)級(jí)別(level)下的啟動(dòng)狀態(tài))
(3):安裝MySQL
1、使用以下命令安裝MySQL:
1.yuminstallmysqlmysql-server
同樣,如果出現(xiàn)提示已安裝的話,就說明系統(tǒng)安裝了MySQL了,可以跳過這一步,否則,系統(tǒng)接下來會(huì)自動(dòng)安裝MySQL。
安裝完成了之后,啟動(dòng)MySQL:/etc/init.d/mysql start
將MySQL設(shè)置為開機(jī)啟動(dòng):chkconfig mysqld on最后,拷貝配置文件:cp /usr/share/mysql/my-medium.cnf /etc/my.cnf (在/etc下有個(gè)my.cnf文件,直接覆蓋就行了)
2、用以下命令給root賬戶設(shè)置密碼
1.mysql_secure_installation
根據(jù)提示輸入2次密碼,就設(shè)置成功了。注意,在設(shè)置過程中,會(huì)提示刪除是否anonymous用戶,是否拒絕root的遠(yuǎn)程訪問,是否刪除測(cè)試用的數(shù)據(jù)庫等,這些都需要根據(jù)自己的實(shí)際情況進(jìn)行選擇。最后出現(xiàn):Thanks for using MySQL!,設(shè)置密碼成功了。
重新啟動(dòng)MySQL:/etc/init.d/mysqld restart
(4)安裝PHP
1、使用以下命令安裝PHP:
1.yuminstallphp
根據(jù)提示往下安裝就行了。安裝完之后重新啟動(dòng)Apache:/etc/init.d/httpd restart2、安裝PHP組件,是PHP支持MySQL
可以使用命令:yum search php來查看PHP的組件,選擇需要的模塊進(jìn)行安裝:
(php組件列表http://www.php100.com/html/itnews/PHPxinwen/2013/0305/12149.html)
yum install php-mysqlphp-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpcphp-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
安裝完之后,重啟Apache:/etc/init.d/httpd restart
重啟MySQL:/etc/init.d/mysqld restart
到了這一步,LAMP中的AMP都已經(jīng)安裝完畢了,但是web服務(wù)器此時(shí)并不能被訪問,因?yàn)橐L問服務(wù)器,還需要對(duì)Apache和PHP進(jìn)行相應(yīng)的配置。
第一步:配置Apache
修改Apache配置文件:vi /etc/httpd/conf/httpd.conf,并在文件中查找下面所在行,進(jìn)行修改(查找可以在vi的一般模式下輸入“/要查找的字符”進(jìn)行查找):
ServerTokens OS 修改為: ServerTokens PRod (在出現(xiàn)錯(cuò)誤頁的時(shí)候不顯示服務(wù)器操作系統(tǒng)的名稱)
ServerSignature On 修改為: ServerSignature Off (在錯(cuò)誤頁中不顯示Apache的版本)
Options Indexes FollowSymLinks 修改為: Options Includes ExecCGI FollowSymLinks (允許服務(wù)器執(zhí)行CGI及SSI,禁止列出目錄)
#AddHandler cgi-script .cgi 修改為: AddHandler cgi-script .cgi .pl (允許擴(kuò)展名為.pl的CGI腳本運(yùn)行)
AllowOverride None 修改為: AllowOverride All (允許.htaccess)
AddDefaultCharset UTF-8 修改為: AddDefaultCharset GB2312 (添加GB2312為默認(rèn)編碼)
Options Indexes MultiViews FollowSymLinks 修改為 Options MultiViews FollowSymLinks (不在瀏覽器上顯示樹狀目錄結(jié)構(gòu))
DirectoryIndex index.html index.html.var 修改為: DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var (設(shè)置默認(rèn)首頁文件,增加index.php)
KeepAlive Off 修改為: KeepAlive On (允許程序性聯(lián)機(jī))
MaxKeepAliveRequests 100 修改為: MaxKeepAliveRequests 1000 (增加同時(shí)連接數(shù))
修改好之后保存配置,重新啟動(dòng)Apache:/etc/init.d/httpd restart
建議刪除默認(rèn)的測(cè)試頁面:rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html
第二步:配置PHP
修改PHP配置文件:vi /etc/php.ini,以下需要修改的行的位置可以通過vi的查找命令來查找:
date.timezone = PRC #把前面的分號(hào)去掉,改為date.timezone = PRC
(PRC,People’s Republic of China,中華人民共和國(guó),也就是日期使用中國(guó)的時(shí)區(qū))
如果想保證服務(wù)器的安全,請(qǐng)將這個(gè)函數(shù)加到disable_functions里或者將安全模式打開吧
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函數(shù),如果某些程序需要用到這個(gè)函數(shù),可以刪除,取消禁用。
expose_php = Off #禁止顯示php版本的信息
display_errors = OFF #關(guān)閉錯(cuò)誤提示
register_globals = OFF #關(guān)閉注冊(cè)全局變量
magic_quotes_gpc = On #打開magic_quotes_gpc來防止SQL注入
log_errors = On #記錄錯(cuò)誤日志
error_log = /var/log/php/error_log.log #設(shè)置錯(cuò)誤日志存放目錄,文件必須允許apache用戶的和組具有寫的權(quán)限(注意,在修改之前,要先創(chuàng)建文件/var/log/php/error_log.log,然后在修改其屬性,使其屬于apache用戶和用戶組。chown apache /var/log/php/error_log.log和chgrp apache /var/log/php/error_log.log)
open_basedir = .:/tmp/ #設(shè)置表示允許訪問當(dāng)前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,可以防止php木馬跨站
經(jīng)過安裝和配置之后,web服務(wù)器基本上已經(jīng)搭建起來了,可以對(duì)其進(jìn)行訪問。
測(cè)試篇
在目錄/var/www/html下:cd /var/www/html
創(chuàng)建php文件:vi index.php
<?php
phpinfo();
?>
那么,在瀏覽器中輸入本機(jī)地址的時(shí)候,就可以訪問到剛才創(chuàng)建的index.php網(wǎng)頁文件了。
注意:apache的默認(rèn)程序目錄是:/var/www/html,網(wǎng)頁文件放在這里就可以被訪問到。需要保證這個(gè)目錄是屬于用戶apache和用戶組apache的。
MySQL的數(shù)據(jù)庫目錄是:/var/lib/mysql
寫到這里,LAMP就安裝配置完畢了,瀏覽器只要輸入服務(wù)器的IP地址或者是域名的話,就能夠訪問到服務(wù)器上的網(wǎng)頁文件了。
新聞熱點(diǎn)
疑難解答
圖片精選