程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> APACHE-PHP-MYSQL-ZEND(一)

APACHE-PHP-MYSQL-ZEND(一)

編輯:關於MYSQL數據庫
1、下載centos 4.4
我是下載的DVD版本,大家也可以下載服務器CD安裝版本,其實都差不多。大家可以到這兒下載,速度很快的。
http://FTP.iasi.roedu.Net/mirrors/centos.org/4.4/isos/i386/
下載後當然就刻錄成光盤。我建議你刻錄DVD啦,如果是菜鳥,也可以在圖形界面進行學習,不會這麼抓不住頭腦。
2、(1)安裝CentOS4.4
作為服務器,不安裝不需要的組件,所以在選擇組件的時候,除了選擇FTP SERVER外取消所有組件的選擇。也不要選web服務器。因為我們後面要手動編譯安裝。
系統約定RPM包和源碼包存放位置
RPM包和源碼包存放位置 /usr/local/src
源碼包編譯安裝位置(prefix) /usr/local/xxx
腳本以及維護程序存放位置 /usr/local/sbin
MySQL 數據庫位置 /var/lib/MySQL
apache 網站根目錄 /home/www
apache 虛擬主機日志根目錄 /data/logs/www
yum RPM包信息文件 /etc/yum.list
(2)更新系統,此處我們使用up2date,先修改up2date鏡像。
vi /etc/sysconfig/rhn/sources
我把源修改成這樣了:
yum centos4-Base http://mirror.be10.com/centos/4/os/$ARCH/
yum centos4-Updates http://mirror.be10.com/centos/4/updates/$ARCH/
yum centos4-extras http://mirror.be10.com/centos/4/extras/$ARCH/
yum centos4-contrib http://mirror.be10.com/centos/4/contrib/$ARCH/
yum centos4-addons http://mirror.be10.com/centos/4/addons/$ARCH/
yum centos4-centosplus http://mirror.be10.com/centos/4/centosplus/$ARCH/
然後執行:
# up2date -l //列出更新
# up2date -uf //更新包括版本的所有程序。如果不包括內核,則用up2date -u
3、系統環境部署及調整
(1). 檢查系統是否正常
# more /var/log/messages //檢查有無系統內核級錯誤信息
# demesg //檢查硬件設備是否有錯誤信息
# ifconfig //檢查網卡設置是否正確
# ping // 檢查網絡是否正常
(2). 關閉不需要的服務
# export LANG='en_US' //設置語言
# setup //選擇啟動的服務
進入system service 選項。
以space 鍵選定所需服務。
以下僅列出需要啟動的服務,未列出的服務一律關閉:
crond
irqbalance 僅當服務器CPU為S.M.P架構或支持雙核心、HT技術時,才需開啟,否則關閉。
microcode_ctl
network
vsFTPd
sshd
syslog
(3)、修改/etc/yum.repos.d/CentOS-Base.repo,將鏡象站點地址改為在中國的鏡象站點地址。不然我們通過yum安裝軟件速度會極慢。修改如下:
# CentOS-Base.repo
#
# This file uses a new mirrorlist system developed by Lance Davis for CentOS.
# The mirror system uses the connecting IP address of the clIEnt and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the clIEnt. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.vmmatrix.Net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://FTP.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#released updates
[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.vmmatrix.Net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://FTP.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
baseurl=http://mirror.vmmatrix.Net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://FTP.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirror.vmmatrix.Net/CentOS/$releasever/os/$basearch/
http://mirror.be10.com/centos/$releasever/os/$basearch/
http://centos.hostlink.com.hk/$releasever/os/$basearch/
http://FTP.hostrino.com/pub/centos/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
保存。
然後導入key升級相應yum數據
# rpm --import /usr/share/doc/centos-release-4/RPM-GPG-KEY-centos4
# yum list tee /etc/yum.list //讀取yum list 數據,將其輸出到 /etc/yum.list。
(4)、定時校正服務器時間
# yum install ntp
# crontab -e
0 23 * * * root /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1
以上命令設置好後存盤。您的機器將在每天的23:00根據中國國家授時中心的NTP服務器時間自動校准時間。
(5). 對TCP/IP網絡參數進行調整,加強抗SYN Flood能力
# echo 'net.ipv4.tcp_syncookies = 1' >> /etc/sysctl.conf //將net.ipv4.tcp_syncookIEs = 1寫入sysctl.conf 文件
# sysctl -p //查看
(6)、FTP服務器的配置
vi /etc/vsftpd/vsFTPd.conf
把anonymous_enable=YES注釋掉不允許匿名登錄。
把chroot_list_enable=YES
chroot_list_file=/etc/vsFTPd.chroot_list
前的注釋去掉。
把ftpd_banner=*前的注釋去掉。後面改成你的歡迎信息(這樣設置可以避免顯示FTP服務器的版本信息)
然後保存,service vsFTPd start就可以了。
這時應當添加用戶,因為root默認不能通過FTP方式登錄。
# adduser username
# passwd userpassWord
這樣對於我們上傳一些文件到系統中很方便。
4. 重新啟動系統
# init 6
5. 使用 yum 程序安裝所需開發包(以下為標准的 RPM 包名稱)
# yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel
#這裡我們將編譯GD所必須的一些小軟件比如libpng,libtiff,freetype,libjpeg等先用RPM的方式一並安裝好,避免手動編譯浪費時間,同時也能避免很多錯誤,這幾個小軟件的編譯很麻煩。這幾個小軟件編譯錯誤了,GD當然安裝不了,PHP5的編譯當然也沒戲了。所以我們抓大放小,對這些小牛鬼蛇神采取快速簡潔的方式進行安裝。並且對服務器的性能也不能產生什麼影響。
6. 源碼編譯安裝所需包 (Source)
(1) GD2
# cd /usr/local/src
# wget
http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
# tar xzvf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --mandir=/usr/share/man //./configure 配置。
# make //make 是用來編譯的,它從 Makefile 中讀取指令,然後編譯。
# make install //make install 是用來安裝的,它也從 Makefile 中讀取指令,安裝到指定的位置。
(2) apache 日志截斷程序
# cd /usr/local/src
# wget
http://cronolog.org/download/cronolog-1.6.2.tar.gz
# tar xzvf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure --prefix=/usr/local/cronolog
# make
# make install
(3) libXML 庫程序
# cd /usr/local/src
# wget
http://FTP.gnome.org/pub/gnome/sources/libxml2/2.6/libXML2-2.6.26.tar.gz
# tar zxvf libXML2-2.6.26.tar.gz
# cd libXML2-2.6.26
# ./configure --prefix=/usr/local/libXML2
# make
# make install
7、編譯MySQL 5.0.33
cd /usr/local/src
# wget
http://mysql.oss.eznetsols.org/Downloads/MySQL-5.0/MySQL-5.0.33.tar.gz
# tar xzvf MySQL-5.0.33.tar.gz
# cd MySQL-5.0.33
修改MySQL 客戶端最大連接數,默認的只有100,遠遠達不到我們的要求。
# vi sql/MySQLd.cc
搜索找到下面一行:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clIEnts allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
0},
將其中的100改為1500, 當然小點也可以,根據你的需要來,不建議改的太大。
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clIEnts allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
0},
保存。
# CHOST="i686-pc-Linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/mysql --localstatedir=/var/lib/mysql --with-comment=Source --with-server-suffix=-Community-Server --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=latin1 --with-collation=latin1_swedish_ci --with-extra-charsets=all --with-pthread --enable-static --enable-thread-safe-client --with-clIEnt-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-innodb --without-ndb-debug --without-isam MySQL has a Web site at which carrIEs details on the
latest release, upcoming features, and other information to make your
work or play with MySQL more productive. There you can also find
information about mailing lists for MySQL discussion.
Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.
Thank you for choosing MySQL!
// 注意 ,CHOST="i686-pc-Linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" 這個環境參數只針對intel P4 芯片,如果你的CPU是AMD的,注意不能使用。請查看相應的編譯優化參數。否則程序會無法編譯,即使編譯成功也無法運行,嘿嘿。
# make
編譯的時間可能會比較長,畢竟優化的比較厲害。
# make install
編譯安裝完成後執行後續操作:
# useradd mysql //添加 MySQL 用戶
# cd /usr/local/MySQL
# bin/mysql_install_db --user=MySQL
# chown -R root:MySQL . //設置權限,注意後面有一個 "."
# chown -R mysql /var/lib/mysql //設置 MySQL 目錄權限
# chgrp -R MySQL . //注意後面有一個 "."
# cp share/MySQL/my-medium.cnf /etc/my.cnf
# cp share/mysql/mysql.server /etc/rc.d/init.d/mysqld //開機自動啟動 MySQL。
# chmod 755 /etc/rc.d/init.d/MySQLd
# chkconfig --add MySQLd
# /etc/rc.d/init.d/mysqld start //啟動 MySQL
# bin/MySQLadmin -u root password "passWord_for_root"
# service mysqld stop //關閉 MySQL
8. 編譯安裝 apache
# cd /usr/local/src
# wget
http://www.ip97.com/apache.org/httpd/httpd-2.2.4.tar.gz
# tar zxvf httpd-2.2.4.tar.gz
# cd httpd-2.2.4
依次安裝apr和apr-util
# cd srclib/apr
# ./configure --prefix=/usr/local/apr --enable-threads --enable-other-child USE=ipv6
# make && make install
# cd ../apr-util
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-mysql=/usr/local/MySQL
# make && make install
cd /usr/local/src/httpd-2.2.4
# CHOST="i686-pc-Linux-gnu" CFLAGS="-O3 -msse2 -mmmx -mfpmath=sse -funroll-loops -mcpu=pentium4 -march=pentium4 -pipe -fomit-frame-pointer" ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate=shared --with-mysql=/usr/local/MySQL --enable-cache --enable-file-cache --enable-mem-cache --enable-disk-cache --enable-static-support --enable-static-htpasswd --enable-static-htdigest --enable-static-rotatelogs --enable-static-logresolve --enable-static-htdbm --enable-static-ab --enable-static-checkgid --disable-cgid --disable-CGI --with-mpm=worker --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-ssl --with-ssl=/usr/include/openssl
# make
# make install
# echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local //將 apachectl 的調用加入到你的系統啟動文件中。
注解:
./configure //配置源代碼樹
--prefix=/usr/local/apache2 //體系無關文件的頂級安裝目錄PREFIX ,也就apache的安裝目錄。
--enable-module=so //打開 so 模塊,so 模塊是用來提 DSO 支持的 apache 核心模塊
--enable-mods-shared=all //編譯全部的模板,對於不需要我們可以在httpd.conf去掉。
--enable-cache //支持緩存
--enable-file-cache //支持文件緩存
--enable-mem-cache //支持記憶緩存
--enable-disk-cache //支持磁盤緩存
--enable-static-support //支持靜態連接(默認為動態連接)
--enable-static-htpasswd //使用靜態連接編譯 htpasswd - 管理用於基本認證的用戶文件
--enable-static-htdigest //使用靜態連接編譯 htdigest - 管理用於摘要認證的用戶文件
--enable-static-rotatelogs //使用靜態連接編譯 rotatelogs - 滾動 apache 日志的管道日志程序
--enable-static-logresolve //使用靜態連接編譯 logresolve - 解析 apache 日志中的IP地址為主機名
--enable-static-htdbm //使用靜態連接編譯 htdbm - 操作 DBM 密碼數據庫
--enable-static-ab //使用靜態連接編譯 ab - apache HTTP 服務器性能測試工具
--enable-static-checkgid //使用靜態連接編譯 checkgid
--disable-cgid //禁止用一個外部 CGI 守護進程執行CGI腳本
--disable-cgi //禁止編譯 CGI 版本的 PHP
--with-mpm=worker // 讓apache以worker方式運行
--enable-ssl // 編譯 ssl模塊。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved