詳解FreeBSD 8下部署Apache+MySQL+PHP 5
原創(chuàng)【51CTO獨(dú)家特稿】眾所周知,在生產(chǎn)環(huán)境下配置Apache+PHP 5環(huán)境或Nginx+PHP 5環(huán)境還是很復(fù)雜的,即大家熟悉的LAMP或NAMP架構(gòu),就算按照詳細(xì)的部署文檔來(lái)安裝的話(huà)也是一個(gè)較長(zhǎng)和麻煩的過(guò)程;但這一切在FreeBSD下用ports就簡(jiǎn)化了,本人感覺(jué)特別適應(yīng)于開(kāi)發(fā)環(huán)境,特將FreeBSD 8下的部署過(guò)程記錄如下,方便與大家交流共享。
推薦專(zhuān)題:企業(yè)內(nèi)網(wǎng)開(kāi)發(fā)環(huán)境部署與管理全攻略(FreeBSD+PHP)
一、安裝Apache2.2
- cd /usr/ports/www/apache22
- make install clean
◆去掉IPV6
◆添加MySQL
安裝完成后,需要編輯/etc/rc.conf文件,添加下面內(nèi)容到/etc/rc.conf:
- apache22_enable="YES"
配置Apache 2.2
安裝完成后,備份/usr/local/etc/apache22/httpd.conf文件:
- cp /usr/local/etc/apache22/httpd.conf /usr/local/etc/apache22/httpd.conf.bak
編輯/usr/local/etc/apache22/httpd.conf文件,以使Apache22 Server支持PHP:
- vim /usr/local/etc/apache22/httpd.conf
1.大約354行
在A(yíng)ddType application/x-gzip .gz .tgz下面添加以下內(nèi)容:
- AddType application/x-httpd-php .php
- AddType application/x-httpd-php-source .phps
2.大約212行
添加'index.php' 到'DirectoryIndex' 主目錄索引:
- DirectoryIndex index.php index.html
3.第152行
DocumentRoot "/home/www" #存放web的路徑,根據(jù)自己需求更改
4.第178行
<Directory "/home/www"> #存放web的路徑,這個(gè)根據(jù)自己需求更改
二、安裝PHP 5.2
- cd /usr/ports/lang/php52
- make install clean
選擇如下安裝選項(xiàng):
◆去掉IPV6
◆添加CLI、CGI、APACHE、SUHOSION、FASTCGI、PATHINFO
三、安裝PHP 5.2-extensions擴(kuò)展
- cd /usr/ports/lang/php52-extensions
- make config
- make install clean
make config安裝添加選項(xiàng)如下:
添加BZ2、CALENDAR、CTYPE、GD、GETTEXT、ICONV、MBSTRING、MCRYPT、MHASH、MYSQL、MYSQLI、OPENSSL、PCRE、POSIX、SESSION、SOCKETS、TOKENIZER、ZIP、ZLIB。
我在線(xiàn)上服務(wù)器的centos5.4下,一個(gè)個(gè)手動(dòng)源碼編譯PHP 5的擴(kuò)展包,感覺(jué)是件非常痛苦的事情;Apache如是,Nginx下亦如是;在FreeBSD 8下一切都簡(jiǎn)單了,這個(gè)過(guò)程有點(diǎn)長(zhǎng)。
復(fù)制/usr/local/etc/php.ini-dist為/usr/local/etc/php.ini:
- cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
四、安裝ZendOptimizer
- cd /usr/ports/devel/ZendOptimizer
- make install clean
安裝完成提示如下:
- ********************************************************************************
- You have installed the ZendOptimizer package.
- Edit /usr/local/etc/php.ini and add:
- [zend]
- zend_optimizer.optimization_level=15
- zend_extension_manager.optimizer="/usr/local/lib/php/20060613/Optimizer"
- zend_extension_manager.optimizer_ts="/usr/local/lib/php/20060613/Optimizer_TS"
- zend_extension="/usr/local/lib/php/20060613/ZendExtensionManager.so"
- zend_extension_ts="/usr/local/lib/php/20060613/ZendExtensionManager_TS.so"
- *********************************************************************
編輯php.ini,復(fù)制以上[Zend]內(nèi)容到文本末尾:
- vim /usr/local/etc/php.ini
重新啟動(dòng)你的Web Server.
- /usr/local/etc/rc.d/apache22 restart
測(cè)試Apche Server對(duì)PHP和ZendOptimizer支持,在/home/www里面建立一個(gè)index.php,輸入以下內(nèi)容:
- <?
- phpinfo();
- ?>
我這里安裝此版本為5.2.13,新的PHP已近更新至5.3.3,但是老版本的ZendOptimizer對(duì)其不支持,所以本著穩(wěn)定就好的原則,繼續(xù)使用5.2.13;
#p#
五、安裝MySQL Server5.0
- cd /usr/ports/databases/mysql50-server
- make install clean
配置MySQL
安裝完成后,需要編輯/etc/rc.conf文件,添加下面內(nèi)容到/etc/rc.conf:
- mysql_enable="YES"
復(fù)制文件:
- cp /usr/local/share/mysql/my-medium.cnf /etc/my.conf
啟動(dòng)MySQL服務(wù):
- /usr/local/etc/rc.d/mysql-server start
新裝的mysql是沒(méi)有密碼的,使用mysqladmin命令更改MySQL密碼:
- /usr/local/bin/mysqladmin -uroot password '你的密碼'
- 例如:/usr/local/bin/mysqladmin -uroot password 12345678
六、安裝PHPmyadmin
1.安裝
- cd /usr/ports/databases/phpmyadmin
- make fetch #只下載,不安裝
PHPmyadmin解壓以后直接使用了:
- cp /usr/ports/distfiles/phpMyAdmin-3.3.2-all-languages.tar.bz2 /home/www #/home/www為apache指定路徑
- tar zxvf phpMyAdmin-3.3.2-all-languages.tar.bz2
- mv phpMyAdmin-3.3.2-all-languages phpmyadmin #phpmyadmin文件名就為外部地址路徑http://xxx.xxx.xxx.xxx/phpmyadmin
2.配置
- cd /home/www/phpmyadmin
- cp config.sample.inc.php config.inc.php# ee config.inc.php
3.修改
- cfg[‘blowfish_secret’]=’host’; #隨便輸入,不要留空這個(gè)一定要設(shè)置
- cfg[‘Servers’][$i][‘auth_type’]=’cookie’#設(shè)置認(rèn)證方式,默認(rèn)即可
4.設(shè)置權(quán)限
- chmod 755 config.inc.php
這時(shí)候你就可以在內(nèi)網(wǎng)用root等用戶(hù)進(jìn)行登陸管理了,PHPMyadmin的強(qiáng)大是有目共睹的,這也是它現(xiàn)在作為L(zhǎng)inux/unix發(fā)行版的默認(rèn)軟件之一。
值得注意的是,基于線(xiàn)上環(huán)境的嚴(yán)謹(jǐn)性,我一般采用64位的Cenots系統(tǒng),軟件均采用源碼安裝;而以上所述,均是出于開(kāi)發(fā)環(huán)境的考慮,即快速方便的部署測(cè)試服務(wù)器,如果用于線(xiàn)上環(huán)境,還需要注意的細(xì)巧還有許多,比如PHP要禁用危險(xiǎn)的函數(shù)、Apache要考慮其Web安全及SSL證書(shū)(一個(gè)不小心就要考慮支持多域名的SSL證書(shū))等、MySQL要考慮生產(chǎn)環(huán)境下的壓力及備份等,這里細(xì)節(jié)繁多就不細(xì)述了。
【本文為51CTO獨(dú)家特稿,轉(zhuǎn)載請(qǐng)表明出處及作者!】
【編輯推薦】