CentOS下安裝配置LAMP(Linux+Apache+MySQL+PHP)

關於LAMP的各種知識,在這裏就不詳細的介紹了,今天主要是介紹一下在CentOS下安裝,搭建一個Web服務器的過程。

首先說下我的主機和網絡環境:主機系統是win7,在win7下安裝了虛擬機,CentOS在虛擬機中。虛擬機的聯網方式是NAT,主機網絡是校園網,需要賬號認證才能上網。

在CentOS下安裝軟件有兩種方式,第一種是使用yum命令,自動安裝軟件,安裝的軟件具有固定的位置和固定的目錄;第二種是下載源碼安裝包,手動解壓,配置,編譯和安裝,在安裝的過程中可以自己選擇安裝的目錄和路徑等。在這裏,我選擇的安裝方式是第一種,比較便捷,雖然在靈活性上有所欠缺,但是對於試驗階段已經夠了。

安裝篇

第一步:配置防火牆(默認情況下,端口80和3306是拒絕訪問的,在防火牆上進行配置):

  1. vi /etc/sysconfig/iptables(在"COMMIT"的上一行加上如下兩句) 
  2. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允許80端口通過防火牆) 
  3. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允許3306端口通過防火牆) 

接着重啓防火牆使得配置生效:

  1. /etc/init.d/iptables restart 

第二步:安裝Apache

 

使用以下命令安裝Apache:

  1. yum install httpd 

如果出下下面所示的語句,說明已經安裝了Apache了,不需要重新安裝:

 

安裝完之後,重新啓動Apache:/etc/init.d/httpd restart

接着將Apache設置爲開機啓動:chkconfig httpd on.(這一步使得服務器不需要在每次重啓的時候都要手動啓動httpd服務)

要查看httpd服務的啓動狀態,可以使用命令:chkconfig --list httpd(會顯示httpd在各個級別(level)下的啓動狀態)

第三步:安裝MySQL

1、使用以下命令安裝MySQL:

  1. yum install mysql mysql-server 

同樣,如果出現提示已安裝的話,就說明系統安裝了MySQL了,可以跳過這一步,否則,系統接下來會自動安裝MySQL。

 

安裝完成了之後,啓動MySQL:/etc/init.d/mysql start

將MySQL設置爲開機啓動:chkconfig mysqld on
最後,拷貝配置文件:cp /usr/share/mysql/my-medium.cnf  /etc/my.cnf (在/etc下有個my.cnf文件,直接覆蓋就行了)

2、用以下命令給root賬戶設置密碼     

  1. mysql_secure_installation 

根據提示輸入2次密碼,就設置成功了。注意,在設置過程中,會提示刪除是否anonymous用戶,是否拒絕root的遠程訪問,是否刪除測試用的數據庫等,這些都需要根據自己的實際情況進行選擇。最後出現:Thanks for using MySQL!,設置密碼成功了。

 

重新啓動MySQL:/etc/init.d/mysqld restart

第四步:安裝PHP

1、使用以下命令安裝PHP:

  1. yum install php 

 

根據提示往下安裝就行了。安裝完之後重新啓動Apache:/etc/init.d/httpd restart
2、安裝PHP組件,是PHP支持MySQL

可以使用命令:yum search php來查看PHP的組件,選擇需要的模塊進行安裝:

 yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt

安裝完之後,重啓Apache:/etc/init.d/httpd restart 

重啓MySQL:/etc/init.d/mysqld restart

 

到了這一步,LAMP中的AMP都已經安裝完畢了,但是web服務器此時並不能被訪問,因爲要訪問服務器,還需要對Apache和PHP進行相應的配置。


配置篇

第一步:配置Apache

修改Apache配置文件:vi /etc/httpd/conf/httpd.conf,並在文件中查找下面所在行,進行修改(查找可以在vi的一般模式下輸入“/要查找的字符”進行查找):

ServerTokens OS           修改爲:     ServerTokens Prod                       (在出現錯誤頁的時候不顯示服務器操作系統的名稱)
ServerSignature On        修改爲:     ServerSignature Off                      (在錯誤頁中不顯示Apache的版本)
Options Indexes FollowSymLinks     修改爲:     Options Includes ExecCGI FollowSymLinks             (允許服務器執行CGI及SSI,禁止列出目錄)
#AddHandler cgi-script .cgi           修改爲:     AddHandler cgi-script .cgi .pl                                       (允許擴展名爲.pl的CGI腳本運行)
AllowOverride None                      修改爲:     AllowOverride All                                 (允許.htaccess)
AddDefaultCharset UTF-8            修改爲:     AddDefaultCharset GB2312                                     (添加GB2312爲默認編碼)

Options Indexes MultiViews FollowSymLinks      修改爲      Options MultiViews FollowSymLinks        (不在瀏覽器上顯示樹狀目錄結構)
DirectoryIndex index.html index.html.var             修改爲:  DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var  (設置默認首頁文件,增加index.php)
KeepAlive Off                                  修改爲:     KeepAlive On                                (允許程序性聯機)
MaxKeepAliveRequests 100           修改爲:     MaxKeepAliveRequests 1000   (增加同時連接數)

 

修改好之後保存配置,重新啓動Apache:/etc/init.d/httpd restart

建議刪除默認的測試頁面:rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html 

第二步:配置PHP

修改PHP配置文件:vi /etc/php.ini,以下需要修改的行的位置可以通過vi的查找命令來查找:

date.timezone = PRC                    #把前面的分號去掉,改爲date.timezone = PRC

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可以禁用的函數,如果某些程序需要用到這個函數,可以刪除,取消禁用。

expose_php = Off                                     #禁止顯示php版本的信息

display_errors = OFF                               #關閉錯誤提示
register_globals = OFF                           #關閉註冊全局變量
magic_quotes_gpc = On                        #打開magic_quotes_gpc來防止SQL注入
log_errors = On                                         #記錄錯誤日誌
error_log = /var/log/php/error_log.log   #設置錯誤日誌存放目錄,文件必須允許apache用戶的和組具有寫的權限(注意,在修改之前,要先創建文件/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/                             #設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,可以防止php木馬跨站

 

經過安裝和配置之後,web服務器基本上已經搭建起來了,可以對其進行訪問。

 

測試篇

在目錄/var/www/html下:cd /var/www/html

創建php文件:vi index.php

<?php
phpinfo();
?>

那麼,在瀏覽器中輸入本機地址的時候,就可以訪問到剛纔創建的index.php網頁文件了。

注意:apache的默認程序目錄是:/var/www/html,網頁文件放在這裏就可以被訪問到。需要保證這個目錄是屬於用戶apache和用戶組apache的。

             MySQL的數據庫目錄是:/var/lib/mysql

 

寫到這裏,LAMP就安裝配置完畢了,瀏覽器只要輸入服務器的IP地址或者是域名的話,就能夠訪問到服務器上的網頁文件了。

 轉載地址:http://www.linuxidc.com/Linux/2012-06/63847.htm


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