linux安裝php環境

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

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

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

安裝篇

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

vi /etc/sysconfig/iptables(在”COMMIT”的上一行加上如下兩句)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允許80端口通過防火牆)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306端口通過防火牆)
接着重啓防火牆使得配置生效:

/etc/init.d/iptables restart
第二步:安裝Apache

使用以下命令安裝Apache:

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

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

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

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

第三步:安裝MySQL

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

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賬戶設置密碼

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

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

第四步:安裝PHP

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

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

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