周玉雙
摘要:LAMP(Linux+Apache+MySQL+PHP)網站架構是性能非常穩定的Web框架,該框架包括:Linux操作系統、Apache網絡服務器、MySQL數據庫、PHP編程語言,所有組成產品均是開源軟件。LAMP具有輕量、通用、跨平臺、高性能、低價格、資源豐富、快速開發的優勢,因此LAMP無論是性能、質量還是價格都是企業搭建網站的首選平臺。
關鍵詞:Linux;Apache;PHP;Mysql;GD;http
正文
1 安裝Linux系統
1.1 啟動字符界面
為了調試方便,修改linux的啟動進程,以便直接啟動到字符界面下。
#vi inittab
修改:id:5:initdefault:為id:3:initdefault:
1.2 編譯內核啟動配置文件
# vi /etc/sysctl.conf
編輯/etc/sysctl.conf文件,增加三行:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
2 設置Mysql數據庫
2.1 修改數據庫密碼
#mysql –u root –p(進入mysql數據庫,開始密碼為空)
#use mysql
#update user set password=password(yourpassword)where user=root;
#flush privileges;
2.2 修改數據庫最大連接數
#vi my.cnf
在[Mysqld]中添加
max_connections=20000(設置mysql數據庫最大連接數,默認為100)
#mysqladmin –u root –p variables|grep max_connections
顯示:| max_connections|20000|
2.3 禁止遠程連接數據庫
在命令行netstat -ant下看到3306端口是打開的,為了禁止該功能,啟動skip-networking,不監聽sql的任何TCP/IP的連接,切斷遠程訪問的權利,保證安全性。
2.4 用戶目錄權限限制
默認的mysql是安裝在/usr/local/mysql,而對應的數據庫文件在/usr/local/mysql/var目錄下,因此,必須保證該目錄不能讓未經授權的用戶訪問后把數據庫打包拷貝走了,所以要限制對該目錄的訪問。確保mysqld運行時,只使用對數據庫目錄具有讀或寫權限的linux用戶來運行。
3 安裝apache和php
3.1 編譯Apache
#./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max --enable-module=most
3.2 編譯apache的限制IP并發數的模塊
#/usr/local/apache/bin/apxs –c –i –a mod_limitipconn.c
3.3 卸載GD庫
重新編譯GD庫,編譯時必須加上相應參數
#./configure –prefix=/usr/local/gd –with-png=/usr/lib –with-jpeg=/usr/lib –with-freetype=/usr/lib –with-xpm=/usr/lib
3.4 編譯php
#./configure --prefix=/usr/local/php --with-mysql --with-apxs=/usr/local/apache/bin/apxs --with-xml --enable-ftp --enable-force-cgi-redirect --enable-trans-sid --enable-track-vars --enable-url-includes --enable-sockets --with-gd=/usr/local/gd --with-zlib-dir=/usr/lib --with-gdbm-dir=/usr/lib
3.5 COPY PHP的配置文件
cp../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini
修改php.ini文件
register_globals = On
3.6 編輯httpd.conf文件
修改DocumentRoot "/yourdir
查找
把#ExtendedStatus On這一行注釋掉,
添加
#this is my new mod
MaxConnPerIP 1(每個IP用戶的最大連接數)
這里的 / 代表所有目錄
ok!重新啟動一下apache服務器
/usr/local/apache/bin/apachectl restart
4 測試
寫個php測試頁info.php:內容如下
<?php
phpinfo();
?>
正常的話,應該能看到php的信息了,恭喜你的Apche+Mysql +PHP安裝成功。
如果不正常,有Cannot load /usr/local/apache/libexec/libphp4.so into server等提示,那就是系統的SELINUX沒有關閉。
修改/etc/selinux/config文件中的SELINUX="" 為 disabled,然后重啟。
到此,LAMP系統架構及性能優化全部完成。
參考文獻:
[1] Michael D Bauer.Linux Server Security[M].O'Reilly,2005.
[2] Russel Dyer.MySQL in a Nutshell[M].O'Reilly,2005.
[3] Ivan Ristic.Apache Security[M].O'Reilly,2005.
[4] John Coggeshall,ncy Malcolm.PHP Security Collection[M].O' Reilly,2004.
(作者單位:吉化集團信息網絡技術有限公司)