TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
加入php可以作為首頁:
<IfModule dir_module>
DirectoryIndex index.php index.html //php文件放在后面,會(huì)先解釋index.html,除非你的Apache ROOT根目錄下沒有html文件
</IfModule>
(細(xì)節(jié)配置 — 可忽略)
Listen 8080 //監(jiān)聽端口,因?yàn)?024以內(nèi)的端口都是需要超級(jí)管理員root的權(quán)限去開啟的,不修改就會(huì)在你啟動(dòng)Apache服務(wù)的時(shí)候報(bào)錯(cuò)
<IfModule unixd_module>
User stt
Group stt
</IfModule>
ServerAdmin you@example.com
ServerName javazabbix.java.com:8080
DocumentRoot "/home/stt/server/apache/htdocs/zabbix"
<Directory "/home/stt/server/apache/htdocs/zabbix">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
修改PHP參數(shù):
在GUI 上面有必要修改php參數(shù)vim /home/stt/server/php/etc/php.ini 根據(jù)GUI上面的提示修改max_input 和timezone的參數(shù),這是ZABBI服務(wù)的要求。
php.ini配置文件修改:(根據(jù)zabbix官方文檔對(duì)PHP的最低配置要求為準(zhǔn),否則在打開zabbix setup頁面就會(huì)有相應(yīng)的紅叉×)
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
always_populate_raw_post_data = -1
date.timezone = Asia/Shanghai
測(cè)試LAMP功能:
到這里基本的LAMP ZABBIX環(huán)境已經(jīng)搭建完成,理論上是可以完成對(duì)php頁面的支持。這里可以測(cè)試一下php能否和mysql通信
啟動(dòng)服務(wù)進(jìn)行測(cè)試:
啟動(dòng)mysql
啟動(dòng)httpd(就是Apache服務(wù))
在頁面放置的位置編寫一個(gè)php能否連接mysql的測(cè)試頁
cd /home/stt/server/apache/htdocs/ ;vim index.php
<?php
$conn=mysql_connect(\\\’localhost\\\’,\\\’root\\\’,\\\’123456\\\’);
if ($conn)
echo "connect mysql Success……";
else
echo "Failusr…..";
?>
(很明顯,我是直接通過IP訪問的,域名需要自己去綁定IP,在此不多扯)
配置MySQL的zabbix用戶權(quán)限:
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by \\\'<password>\\\’;
mysql> flush privileges;
mysql>quit;
導(dǎo)入zabbix數(shù)據(jù):(注意導(dǎo)入順序,如果是package的,就不需要顧慮這點(diǎn),因?yàn)槿弦涣耍?/p>
cdzabbix-3.0.5/database/mysql
mysql -u zabbix-p<password> < schema.sql
mysql -u zabbix-p<password> < images.sql
mysql -u zabbix-p<password> < data.sql
修改zabbix參數(shù):
vim zabbix_server.conf
DBHost=localhost //注意下面我再討論中發(fā)現(xiàn)的問題
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
##############################
討論:為什么不用LNMP?
其實(shí)理論上是可以的,只是一直有道坎邁不過,就是zabbix對(duì)nginx的兼容性。當(dāng)訪問zabbix setup頁面的時(shí)候,總是會(huì)停留在第一步的頁面,點(diǎn)擊Next Step無反應(yīng)。檢查各服務(wù)的日志后會(huì)發(fā)現(xiàn)問題報(bào)錯(cuò)的唯有MySQL上面,zabbix一直在報(bào)錯(cuò) [Note] Aborted connection 16830 to db: \\\’zabbix\\\’ user: \\\’zabbix\\\’ host: \\\’localhost\\\’ (Got timeout reading communication packets) ,問題顯然出現(xiàn)在zabbix對(duì)MySQL的連接上 。但是當(dāng)我進(jìn)入MySQL中查詢連接數(shù) show full processlist; 的時(shí)候會(huì)發(fā)現(xiàn),zabbix請(qǐng)求的進(jìn)程已經(jīng)連接到MySQL中了,所以肯定不是連接不上數(shù)據(jù)庫的問題。
經(jīng)我查找,有友友這么解決:直接修改zabbix根目錄下的conf/zabbix.conf.php.example :
<?php
// Zabbix GUI configuration file.
global $DB;
$DB[\\\’TYPE\\\’] = \\\’MYSQL\\\’;
$DB[\\\’SERVER\\\’] = \\\’localhost\\\’;
$DB[\\\’PORT\\\’] = \\\’0\\\’;
$DB[\\\’DATABASE\\\’] = \\\’zabbix\\\’;
$DB[\\\’USER\\\’] = \\\’zabbix\\\’;
$DB[\\\’PASSWORD\\\’] = \\\’\\\’;
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB[\\\’SCHEMA\\\’] = \\\’\\\’;
$ZBX_SERVER = \\\’localhost\\\’;
$ZBX_SERVER_PORT = \\\’10051\\\’;
$ZBX_SERVER_NAME = \\\’\\\’;
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
解釋:
復(fù)制一份zabbix.conf.php.example文件為zabbix.conf.php,因?yàn)閦abbix.conf.php.example在WEB頁面而設(shè)置后會(huì)生成zabbix.conf.php這樣的頁面,所以我們可以直接通過手動(dòng)修改該配置頁面,就可以直接訪問zabbix的登錄頁了。但事實(shí)上,我并沒有成功。我發(fā)現(xiàn)WEB頁面會(huì)提示MySQL失去連接。
現(xiàn)在談到一個(gè)問題,當(dāng)我在LAMP中進(jìn)行zabbix的WEB頁面配置時(shí)發(fā)現(xiàn),如果配置MySQL的地址為localhost,則不能成功進(jìn)入下一步設(shè)置,頁面會(huì)提示MySQL連接失敗,但是我改為127.0.0.1就可以成功連接并完成zabbix的所有setup頁面配置。由此我在這點(diǎn)聯(lián)想到:在LNMP環(huán)境中手動(dòng)修改配置文件不成功的原因是否也是如此。By the way,肯定有人疑問:服務(wù)器中一文件 /etc/hosts 會(huì)解釋 localhost 到 127.0.0.1 中,為毛使用 locahost 不行呢?并且,我在 zabbix_server.conf 配置DB MySQL 的地址是localhost,而在 WEB setup 頁面中配置的DB MySQL 的地址在 localhost 和 127.0.0.1 中只有 127.0.0.1 正常連接,并且WEB頁面中配置的和配置文件中添加的DB 地址不一樣。這個(gè)問題嘛,我也的確沒有去研究,希望能有人給我解答,畢竟我也是個(gè)小白。然而,我在此和大家說明一點(diǎn),在 MySQL 中,貌似由版本5.0開始,(有些版本) \\\’%\\\’ 不包括localhost,要單獨(dú)對(duì) @\\\’localhost\\\’ 進(jìn)行賦值。對(duì)用了 % %u5219代表了所有的 host 都能遠(yuǎn)程訪問該 MySQL 。
其中 MySQL 官方文檔有說明:% %u5E76不包括 localhost ,此處配置 % %u8FDC程其他 host 有權(quán)限訪問,那么在 MySQL 的配置文件中my.cnf,也需要做一些配置,將 bind_address=0.0.0.0 或者直接屏蔽掉此項(xiàng)。
當(dāng)主機(jī)填寫為 localhost 時(shí) MySQL 會(huì)采用unix domain socket連接
當(dāng)主機(jī)填寫為 127.0.0.1 時(shí) MySQL 會(huì)采用tcp方式連接
經(jīng)搜查表明 MySQL 設(shè)計(jì)到的很多應(yīng)用,比如wordpress這些默認(rèn)訪問localhost的應(yīng)用,都會(huì)不可用,需要更改 host 為 127.0.0.1 才行。
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問題,請(qǐng)?jiān)L問三五互聯(lián)官網(wǎng):www.shinetop.cn