簡易拓撲:
相關係統版本等內容:詳見《zabbix操作系統及軟件版本》
一,編譯安裝apache
請安照編譯方式進行安裝-à如下↓
apache 安裝實戰指南
#rpm -e --nodeps httpd*
#卸載已安裝的http rpm安裝包。如果是使用yum安裝的,可以#yum -y remove httpd*來進行卸載。
-e 等同於 --erase表示移除意思。
-- nodeps英文解釋don't do a dependencycheck .意思是不做軟件間的依賴檢查。
一,開始安裝apache
[root@apache]#mkdir -p /home/oldboy/tools
#建立一個軟件下載目錄。
[root@apache]#cd /home/oldboy/tools
[root@apache]# wget http://apache.fayea.com/apache-mirror/httpd/httpd-2.2.23.tar.gz
#可進官網去下載,http://www.apache.org
http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.gz
[root@apache]#yum install zlib-devel -y
#需要安裝zlib函數庫。
[root@apache]#./configure \
--prefix=/application/apache2.2.23\
--enable-deflate \
--enable-expires \
--enable-headers \
--enable-modules=most \
--enable-so \
--with-mpm=worker \
--enable-rewrite
#./configure後的參數說明:
#1.--prefix=/application/apache2.2.22表示指定apache安裝路徑爲/application/apache2.2.22.如果不指定會安裝在默認安裝路徑,默認安裝路徑爲[/usr/local/apache2]
#2.--enable-deflate提供對內容的壓縮傳輸編碼支持,一般html,js,css等內容的站點,使用此參數功能會大大提高傳輸速凍,提升訪問者的訪問體驗。再生產環境中,這是apache調優的一個重要選項之一。
#3.--enable-expires激活允許通過配置文件控制HTTP的“Expires:”和“Cache-Control:”頭內容,即對網站圖片,js,css等內容,提供在客戶端瀏覽器緩存的設置,這是apache調優的一個重要選項之一。
#4.--enable-headers提供允許對HTTP請求頭的控制。
#5--with-mpm=worker選擇apache mpm的模式爲worker模式,因worker模式原理是更多的使用線程來處理請求,所以可以處理更多的併發請求,而系統資源的開銷小於基於進程的mpm prefork。如果不指定此參數,默認的模式是prefork進程模式。這是apache調優的一個重要選項之一。
#6.--enable-rewrite 提供基於URL規則的重寫功能,即根據已知URL地址,轉換其它想要的URL地址。如前文講解的僞靜態功能就是這個模塊實現的。這是apache在生產環境中必用的一個重要功能。
#7.--enable-so 激活apache服務的DSO支持,即在以後可以使用DSO的方式編譯安裝共享模塊,這個模塊本身不能以DSO方式編譯。
[root@apache]#make
[root@apache]#make install
[root@apache]#ln -s /application/apache2.2.22 /application/apache
#重要步驟
[root@apache]#/application/apache2.2.22/bin/apachectl - l #查看安裝後的模塊。檢查編譯的情況。
二,apache啓動檢查和錯誤排查
[root@apache]# application/apache/bin/apachectl start
#啓動apache服務。
[root@apache]#netstart -lnt #查看服務端口信息。
[root@apache]#lsof -i tcp:80 #檢查端口對應的服務名稱。
[root@apache]#ps -ef|grep http #查看服務進程。
如果不出現it works 的內容頁面,請從下面原因一次排除。
1.iptables防火牆和selinux是否關閉。
1.#/etc/init.d/iptales stop
#這是關閉防火牆的命令。
如果在生產環境中,需要更改iptables文件,允許80端口訪問
命令如下:
#iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#添加允許條目到iptables文件中去。
#/etc/init.d/iptables status
#查看防火牆啓用狀態。
2.關閉selinux
#setenforce 0 #這是臨時關閉方法。
#vi /etc/selinux/config #更改selinux配置文件,將SELINUX=disabled 這是永久關閉方法。
2.通過命令查看httpd端口80是否存在:
#netstat -lnt |grep 80
3.查看是否有http進程存在。
#ps -ef|grep http
4.在服務器本地wget http://服務器地址測試
5.查看apache的錯誤日誌看看是否有特殊異常。
#tail -100 /application/apache/logs/erro_log
二,編譯安裝mysql
編譯安裝完成後,初始化時將數據庫放置在/data下。à如下↓
lamp系列之-MYSQL單實例的安裝配置
mysql 開源領域的關係型數據庫產品。
社區GA版本爲環境使用版本。
存儲引擎:常用 myisam 和 innodb引擎。
mysql5.0 -5.1 使用myisam引擎。生產環境當中使用innodb引擎比較多。
MySQL數據庫生產環境如何選擇合適的版本
1,分析本企業業務,需要使用到MYSQL那些基本功能和特性,特性重點方向研究爲:mysql複製,分區表,plugin-innodb等。
2,mysql數據庫產品線第一個GA版本推出時間,至少超過10個月,在考慮使用到生產環境:
3,mysql數據庫產品線上的最新GA版本,一般向後退3-4個版本的GA版本數據庫,作爲可選的目標;
一,單實例mysql數據庫的安裝
1,建立mysql賬號
#groupadd mysql
#useradd -s /sbin/nologin-g mysql -M mysql
-M表示不創建用戶家目錄。
建立mysql軟件目錄:
#mkdir -p/home/oldboy/tools
2,編譯安裝mysql
#yum install libtermcap-develncurses-devel -y #安裝該函數庫可以避免以下錯誤。
#wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.62.tar.gz
#tar zxfmysql-5.1.62.tar.gz
[root@mysql mysql-5.1.62]#./configure \
--prefix=/usr/local/mysql\
--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock\
--localstatedir=/data/mysql/data\
--enable-assembler \
--enable-thread-safe-client\
--with-mysqld-user=mysql \
--with-big-tables \
--without-debug \
--with-pthread \
--enable-assembler \
--with-extra-charsets=complex\
--with-readline \
--with-ssl \
--with-embedded-server \
--enable-local-infile \
--with-plugins=partition,innobase\
--with-plugin-PLUGIN \
--with-mysqld-ldflags=-all-static\
--with-client-ldflags=-all-static
##可用./configure --help 來查看參數配置。
安裝完mysql後需要執行以下步驟:
1,獲取mysql配置文件;
2,創建mysql數據庫文件。初始化數據庫。
3,啓動數據庫;
4,配置mysql命令全局使用路徑;
5,配置/etc/init.d/mysqld start 方式啓動數據庫;
6,配置開機自啓動;
7,檢查mysql數據庫錯誤日誌;
獲取mysql配置文件
#/bin/cpsupport-files/my-medium.conf /etc/my.cnf
#mysql 默認配置文件路徑。
創建mysql數據庫文件
#mkdir -p/usr/local/mysql/data
#chown -R mysql/usr/local/mysql #授權mysql用戶訪問mysql的安裝目錄
#/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql--datadir=/data/mysql/data --user=mysql #初始化mysql數據庫文件
啓動數據庫
#/usr/local/mysql/bin/mysqld_safe& #啓動mysql數據庫。
#netstat -lnt |grep3306 #檢查mysql數據庫端口。
#mysql #默認登錄mysql,不需要密碼。
檢查錯誤文件
#tail -10/usr/local/mysql/data/oldboy.err #默認mysql的錯誤日誌,是放在data目錄下以主機名命名的err日誌。
配置mysql命令全局使用路徑
1#echo 'exportPATH=$PATH:/usr/local/mysql/bin' >>/etc/profile #添加全局配置,這樣以後輸入mysql命令就能進入mysql。
#. /etc/profile #使變量生效。
2#還有另外一個辦法,就是把/usr/local/mysql/bin下面的命令拷貝到全局系統命令路徑/usr/local/sbin下面也可以。
配置/etc/init.d/mysqld start 方式啓動數據庫
#cpsupport-files/mysql.server /etc/init.d/mysqld #拷貝mysql啓動腳本到/etc/init.d/下。
#chmod 700/etc/init.d/mysqld #授權700權限,即腳本可執行。
#/etc/init.d/mysqldrestart #可用這種方式啓動了..
配置開機自啓動
#chkconfig --add mysqld
#chkconfig mysqld on
#chkconfig --list mysqld
也可以將mysql啓動命令,加入到/etc/rc.local中。
三,編譯安裝php
請安照編譯方式進行安裝。à如下↓
lamp系列之PHP安裝配置指南
1,安裝PHP程序環境
php安裝要依賴apache和mysql。
1,1檢查apache及mysql的安裝情況
檢查apache和mysql是否安裝。
#/application/apache/bin/apachectl-v #檢查apache版本
#mysql -uroot -p'oldboy123' -e "selectversion();" #檢查mysql的版本。
1,2檢查安裝php所需要的lib庫
#rpm -qa zlib libxml libjpeg freetype libpng gdcurl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devellibpng-devel gd-devel curl-devel
#如果沒有安裝這些庫,可以使用以下方法:
#yum groupinstall "xsoftware development"
1,3安裝libiconv庫
#cd /server/soft #自定義的軟件下載目錄
#wgethttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
#tar zxflibiconv-1.14.tar.gz
#cd libiconv-1.14
#./configure--prefix=/usr/local/libiconv
#make &&makeinstall
##相關地址:http://www.gnu.org/software/libiconv/ (獲得地址的方法:www.g.cn 輸入download libiconv 使用谷歌進行搜索)
2,開始安裝PHP
2.1獲取php軟件包
#cd /server/soft
#wgethttp://php.net/get/php-5.3.20.tar.gz/from/cn2.php.net/mirror
##當然也可以去網上下載http://php.net
2.2解壓配置
#tar zxf php-5.3.20.tar.gz
#cd php-5.3.20
--prefix=/application/php5.3.20\
--with-apxs2=/application/apache2.2.25/bin/apxs\
--with-mysql=/usr/local/mysql\
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv\
--enable-short-tags \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir
--enable-pcntl \
--enable-bcmath
安裝:
#make
#make install
配置:
#ln -s/application/php5.3.10 /application/php #創建軟連接。
#ls -l /application/php
#ls php.ini-* #爲php的配置文件。
php.ini-development(開發測試版) php.ini-production(生產環境正式版)
#diff php.ini-development php.ini-production #可以比較以下。
#/bin/cpphp.ini-production /application/php/lib/php.ini #拷貝配置文件到php路徑下面。
3,配置apache支持php
3.1修改apache配置文件
執行如下命令編輯apache的主配置文件httpd.conf:
#cd/application/apache/conf/
#cp httpd.confhttpd.conf.oldboy.20130502 #養成操作前備份的習慣。
#vi/application/apache/conf/httpd.conf +98 #切換到httpd.conf第98行。
#此時的apache配合文件的路徑爲 /application/apache/conf
#增加如下內容:
ServerName 127.0.0.1:80
轉換到311行即AddType application/X-gizp.gz.tgz行的下一行加兩行對php的解析支持內容:
AddType application/x-httpd-php .php .phptml
AddType application/x-httpd-php-source .phps
修改damon用戶爲ett #也可以不修改。
User ett
Group ett
#如果不存在ett用戶,一會保存好配置,需要執行 useradd ett -M-s /sbin/nologin建立ett
轉到166行修改默認的首頁文件,本例中增加一個index.php
DirectoryIndex index.phpindex.html
#完成後保存並比較修改結果:
#diff httpd.confhttpd.conf.oldboy.20130502
3.2檢查並啓動apache
檢查apache配置文件的語法:
#/application/apache/bin/apachectl-t #檢查語法正確性
重啓apache服務:
#/application/apache/bin/apachectlgraceful #平滑啓動apache
#特別說明:此處如果不關閉SELINUX將報下面的錯誤:
臨時解決:
#setenforce 0
永久解決:
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config
提示:兩者同時使用,這樣重啓前後都是生效的。
3.3測試php環境
進入指定的默認站點目錄後,編輯index.php添加:
關閉開啓的虛擬主機包含的文件:
#sed -i 's#Includeconf/extra/httpd-vhosts.conf#\#Include conf/extra/httpd.vhosts.conf#g' /application/apache/conf/httpd.conf #註釋掉虛擬主機配置
#grep httpd-vhosts.conf/application/apache/conf/httpd.conf #檢查是否正確
#/application/apache/bin/apachectl-t #檢查語法。
#/application/apache/bin/apachectlgraceful #重啓apache
進入默認的apache站點目錄
#cd/application/apache/htdocs/
#vi phpinfo.php
<?php
phpinfo();
?>
注意:
如果phpinfo的內容如下:
#vi phpinfo.php
<?
phpinfo();
?>
需要修改php.ini將short_open_tag= Off ---->改成On
重啓apache或nginx
總結:更改php短標籤,也就是讓php程序認識<? ?>裏面的語句,這樣的格式:<? php語句 ?> 而長標籤就應該是<?php php語句?>如果你現在把php.ini將short_open_tag = Off修改會後,並吧 <? phpinfo(); ?> 改成 <?php phpinfo(); ?>後之後也是可以正常訪問的。
3.4開啓瀏覽器,輸入IP地址進行訪問。
測試完需要刪掉。
4,測試php連接mysql是否正常
編輯test_mysql.php加入如下內容
<?php
//$link_id=mysql_connect('主機名','用戶','密碼');
$link_id=mysql_connect('localhost','root','oldboy123')or mysql_error();
//$link_id=mysql_connect('localhost','test','');
if($link_id){
echo "mysql successful byoldboy!";
} else{
echo mysql_error();
}
//這是php單行註釋
/* 這是php多行註釋 */
?>
linux php擴展安裝gettext模塊
# cd/server/soft/php-5.3.20
# cd ext/
# cd gettext/
[root@3350 gettext]#/application/php/bin/phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
[root@3350 gettext]# ./configure --with-php-config=/applicaiton/php/bin/php-config --with-gettext
[root@3350 gettext]# make && make install
[root@3350 etc]# vim php.ini 添加如下內容
extension_dir = /application/php5.3.20/lib/php/extensions/no-debug-zts-20090626/
extension = gettext.so
[root@3350 etc]# /application/php/bin/apachectl restart
四:編譯安裝zabbix
具體步驟如下:
解壓zabbix安裝包
tarzxvfzabbix-2.0.8.tar.gz
增加系統用戶zabbix
useraddzabbix-s/sbin/nologin
啓動數據庫:
/data/3306/mysqlstart
設置mysql登陸密碼
登陸數據庫,並創建zabbix數據庫
mysql -uroot -p'autohome' -S /data/3306/mysql.sock
create database zabbix;
grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;
exit
安裝fping
http://download.chinaunix.net/down.php?id=41795&ResourceID=3222&site=1
tar zxf fping-3.0.tar
./configure
make&&makeinstall
/usr/local/sbin/fping#直接鍵入命令後運行
/usr/local/man/man8/fping.8#此處爲man文件
yum install elfutils
yum install elfutils-devel
編譯安裝zabbix:
./configure --prefix=/usr/local/zabbix --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy
make;make install
將數據文件導入數據庫:
mysql -uroot -p'autohome' -S /data/3306/mysql.sock -A zabbix < schema.sql
mysql -uroot -p'autohome' -S /data/3306/mysql.sock -A zabbix < p_w_picpaths.sql
mysql -uroot -p'autohome' -S /data/3306/mysql.sock -A zabbix < data.sql
在/etc/service文件中添加如下參數
zabbix-agent 10050/tcp # zabbix agent
zabbix-agent 10050/udp # zabbix agent
zabbix-trapper 10051/tcp # zabbix trapper
zabbix-trapper 10051/udp # zabbix trapper
[root@zabbix etc]# pwd
/usr/local/zabbix/etc
[root@zabbix etc]# vi zabbix_server.confDBName=zabbix
DBUser=zabbix
DBPassword=zabbix
FpingLocation=/usr/local/sbin/fping
修改Agentd配置文件,更改HOST NAME 爲本機的hostname就好了
[root@zabbix etc]# pwd
/usr/local/zabbix/etc
vi zabbix_agent.conf
啓動zabbix服務
# /usr/local/zabbix/sbin/zabbix_server
# /usr/local/zabbix/sbin/zabbix_agentd
[root@zabbix etc]# /usr/local/zabbix/sbin/zabbix_server
[root@zabbix etc]# /usr/local/zabbix/sbin/zabbix_agentd
[root@zabbix etc]# ps -ef|grep zabbix
zabbix 15773 1 014:14 ? 00:00:00/usr/local/zabbix/sbin/zabbix_server
zabbix 15789 1 014:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd
zabbix 15790 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd
zabbix 15791 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd
zabbix 15792 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd
zabbix 15793 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd
zabbix 15794 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd
root 15796 5577 0 14:16 pts/1 00:00:00 grep zabbix
報錯
19299:20130922:134700.123 [Z3001] connection to database 'zabbix' failed:[2002] Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock' (2)
解決
[root@zabbix mysql]# ln /usr/local/mysql/tmp/mysql.sock mysql.sock
更改web
cd /server/soft/zabbix-2.0.8/frontends/
cp -rf php/ /application/apache/htdocs/zabbix
cd /application/apache/htdocs/
chown -R zabbix:zabbix zabbix
重啓apache服務
錯誤總結:
zabbix 服務器端啓動時,ps -ef|grep zabbix 顯示,服務啓動,但是端口沒有打開。這個問題是zabbix沒有正確連接後臺數據庫造成的。
檢查:
檢查zabbix日誌:
LogFile=/tmp/zabbix_server.log
[root@zabbix data]# tail -f /tmp/zabbix_server.log
3675:20131008:134705.183 [Z3001]connection to database 'zabbix' failed: [2002] Can't connect to local MySQLserver through socket '/var/lib/mysql/mysql.sock' (111)
3675:20131008:134705.183 Databaseis down. Reconnecting in 10 seconds.
3675:20131008:134715.183 [Z3001]connection to database 'zabbix' failed: [2002] Can't connect to local MySQLserver through socket '/var/lib/mysql/mysql.sock' (111)
###由於我的數據庫是編譯安裝的,所以zabbix默認查找的並不是我指定的sock。
問題出在這裏,由於連接不到數據庫造成的。
解決方法:
方法1,更改配置文件;
vi /usr/local/zabbix/etc/zabbix_server.conf
### Option: DBSocket
# Path to MySQL socket.
#
# Mandatory: no
# Default:
DBSocket=/usr/local/mysql/tmp/mysql.sock
##添加我們編譯指定的sock 然後重啓zabbix服務。
方法2,做指定數據庫sock的軟連接
ln -s /usr/local/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock
既然它回去找這個目錄下的sock,那麼就給它創建一個。
創建軟連接後,服務自動就啓動了。
至此zabbix--server安裝成功.