本文詳細介紹了CentOS6.4系統中安裝LAMP服務並對其進行配置的過程,即安裝Apache+PHP+Mysql,參照了網上大神的設置,其他Linux發行系統可以參考~
在本文中部分命令操作需要root權限,輸入‘su -’命令后輸入密碼即可切換root身份。
一、修改設置對安裝做准備
1. 防火牆設置
設置/etc/sysconfig/iptables文件允許80端口和3306端口。因為80端口是http協議所使用的端口,如果防火牆禁止80端口的話,網站配置好了也無法從外網訪問。3306端口是MySql數據庫的默認端口。使用VIM打開iptables文件並添加規則:
1 打開iptables文件進行修改 2 vim /etc/sysconfig/iptables 3 4 加入下列兩行 5 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 6 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
添加好后文件應該如下圖,如果以前修改過該文件責可能和筆者的圖中略有不同:
修改完成注意檢查下拼寫,不要有錯誤。保存之后重啟防火牆生效:
/etc/init.d/iptables restart
2. 關閉SELINUX
SELinux 是 2.6 版本的 Linux 內核中提供的強制訪問控制(MAC)系統。對於目前可用的 Linux安全模塊來說,SELinux 是功能最全面,而且測試最充分的。SELinux提供了比默認ugo+rwx更詳細的權限控制。打開SELinux后,即使因為0day漏洞被提權,相應程序的權限在SELinux控制下也不會造成太大影響。但是在實際應用情況中,SELinux並不實用,沒人會閑的去用0day漏洞攻擊個人電腦,業務服務器基本上都是用負載均衡設備做流量分發,對外僅開放了僅有的幾個端口。所以綜合安全性和復雜性來說,SELinux的性價比並不高。修改/etc/selinux/config文件關閉SELinux,設置后如圖:
1 vim /etc/selinux/config 2 3 注釋掉如下兩行,在行首添加#注釋。 4 SELINUX=enforcing 5 SELINUXTYPE=targeted 6 7 在后面增加: 8 SELINUX=disabled
關閉SELinux后需要重啟系統,輸入‘shutdown -r now’重啟系統。
二、開始安裝軟件
1. MySql的安裝和配置
安裝MySql:
1 通過yum軟件包管理器安裝MySql,管理器會自動安裝依賴項,遇到詢問直接輸入y確認,直到顯示“Complete!”完成。 2 yum install mysql mysql-server 3 4 啟動MySql 5 /etc/init.d/mysqld start 6 7 設置MySql服務為開機啟動 8 chkconfig mysqld on 9 10 復制MySql默認配置文件,直接覆蓋/etc/my.cnf 11 cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
MySql設置:
設置MySql管理員root賬戶的密碼。
輸入如下命令后需要連續輸入兩次密碼確認,有詢問輸入Y同意即可,成功后顯示Thanks for using MySQL!。
mysql_secure_installation
設置成功后需要重啟MySql服務:
1 /etc/init.d/mysqld stop 2 /etc/init.d/mysqld start
2. Apache服務的安裝和配置
1 安裝httpd 2 yum install httpd 3 4 啟動Apache服務 5 /etc/init.d/httpd start 6 7 編輯apache設置 8 vim /etc/httpd/conf/httpd.conf 9 查找 #ServerName www.example.com:80 10 修改成 ServerName www.XXXX.com:80 11 其中的“www.XXXX.com”自己的域名,沒有可設置為localhost,如圖 12 13 設置Apache服務開機啟動 14 chkconfig httpd on 15 16 重啟Apache服務 17 /etc/init.d/httpd restart
安裝好Apache服務后,打開系統自帶的火狐瀏覽器,打開localhost這個網址即可看到Apache的示例網頁。
3.安裝PHP
安裝PHP非常簡單:
遇到詢問直接輸y確認 yum install php
安裝PHP插件:
插件包括MySql支持等,遇到詢問一如既往的y確認~~ 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和MySql:
/etc/init.d/mysqld restart
/etc/init.d/httpd restart
到此軟件的安裝就結束了,接下來進行配置和測試。
三、修改Apache和PHP的配置
1.修改Apache配置
作為一個架設在公網上的服務器,我們可不能讓服務器所使用的軟件版本或者錯誤等信息暴露網頁上,這就需要對Apache進行設置:
1 編輯文件Apache設置文件 2 vi /etc/httpd/conf/httpd.conf 3 4 44行: 修改 ServerTokens OS 為 ServerTokens Prod 5 防止錯誤頁顯示操作系統名字 6 7 76行: 修改 KeepAlive Off 為 KeepAlive On 8 允許程序性聯機 9 10 83行: 修改 MaxKeepAliveRequests 100 為 MaxKeepAliveRequests 1000 11 增加同時連接數 12 13 331行: 修改 Options Indexes FollowSymLinks 為 Options Includes ExecCGI FollowSymLinks 14 允許服務器執行CGI及SSI,防止列出目錄 15 16 338行: 修改 AllowOverride None 為 AllowOverride All 17 允許.htaccess 18 19 402行: 修改 DirectoryIndex index.html index.html.var 為 DirectoryIndex index.php Default.php index.html index.htm Default.html Default.htm 20 添加php默認文檔 21 22 536行: 修改 ServerSignature On 為 ServerSignature Off 23 防止錯誤頁顯示Apache版本 24 25 554行: 修改 Options Indexes MultiViews FollowSymLinks 為 Options MultiViews FollowSymLinks 26 不顯示樹狀目錄結構 27 28 759行: 根據需要設置為 AddDefaultCharset UTF-8 或者 AddDefaultCharset GB2312 29 筆者大多數時候都在使用UTF-8編碼,所以不進行修改 30 31 796行: 修改 #AddHandler cgi-script .cgi 為 AddHandler cgi-script .cgi .pl 32 允許擴展名為.pl的CGI腳本運行
修改完成后保存退出並重啟Apache,刪除測試網頁:
/etc/init.d/httpd restart 刪除測試網頁 rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html
2. 修改PHP配置
1 編輯php設置文件 2 vim /etc/php.ini 3 4 946行: 修改 ;date.timezone = PRC 為 date.timezone = PRC (去掉分號) 5 6 386行: 修改 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 7 設置PHP的禁用函數,若程序中需要使用的函數可以刪除掉。 8 9 432行: 設置 expose_php = Off 10 禁止顯示php版本的信息 11 12 745行: 設置 magic_quotes_gpc = On 13 打開magic_quotes_gpc,用於防止SQL注入 14 15 229行: 設置 short_open_tag = ON 16 支持php短標簽 17 18 380行: 設置 open_basedir = .:/tmp/ 19 設置允許訪問的目錄和/tmp/目錄,防止php木馬跨站
修改完成保存后重啟服務:
/etc/init.d/mysqld restart
/etc/init.d/httpd restart
四、 測試PHP探針頁面
輸入“vim /var/www/html/index.php”添加PHP探針頁面並輸入以下代碼:
1 <?php 2 phpinfo(); 3 ?>
保存退出后在瀏覽器中輸入localhost查看php信息:
設置文檔文件夾權限:
chown apache.apache -R /var/www/html
LAMP服務器配置完成。