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文件放在后面,會先解釋index.html,除非你的Apache ROOT根目錄下沒有html文件
</IfModule>
(細節配置 — 可忽略)
Listen 8080 //監聽端口,因為1024以內的端口都是需要超級管理員root的權限去開啟的,不修改就會在你啟動Apache服務的時候報錯
<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參數:
在GUI 上面有必要修改php參數vim /home/stt/server/php/etc/php.ini 根據GUI上面的提示修改max_input 和timezone的參數,這是ZABBI服務的要求。
php.ini配置文件修改:(根據zabbix官方文檔對PHP的最低配置要求為準,否則在打開zabbix setup頁面就會有相應的紅叉×)
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
測試LAMP功能:
到這里基本的LAMP ZABBIX環境已經搭建完成,理論上是可以完成對php頁面的支持。這里可以測試一下php能否和mysql通信
啟動服務進行測試:
啟動mysql
啟動httpd(就是Apache服務)
在頁面放置的位置編寫一個php能否連接mysql的測試頁
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用戶權限:
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;
導入zabbix數據:(注意導入順序,如果是package的,就不需要顧慮這點,因為三合一了)
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參數:
vim zabbix_server.conf
DBHost=localhost //注意下面我再討論中發現的問題
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
##############################
討論:為什么不用LNMP?
其實理論上是可以的,只是一直有道坎邁不過,就是zabbix對nginx的兼容性。當訪問zabbix setup頁面的時候,總是會停留在第一步的頁面,點擊Next Step無反應。檢查各服務的日志后會發現問題報錯的唯有MySQL上面,zabbix一直在報錯 [Note] Aborted connection 16830 to db: \\\’zabbix\\\’ user: \\\’zabbix\\\’ host: \\\’localhost\\\’ (Got timeout reading communication packets) ,問題顯然出現在zabbix對MySQL的連接上 。但是當我進入MySQL中查詢連接數 show full processlist; 的時候會發現,zabbix請求的進程已經連接到MySQL中了,所以肯定不是連接不上數據庫的問題。
經我查找,有友友這么解決:直接修改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;
解釋:
復制一份zabbix.conf.php.example文件為zabbix.conf.php,因為zabbix.conf.php.example在WEB頁面而設置后會生成zabbix.conf.php這樣的頁面,所以我們可以直接通過手動修改該配置頁面,就可以直接訪問zabbix的登錄頁了。但事實上,我并沒有成功。我發現WEB頁面會提示MySQL失去連接。
現在談到一個問題,當我在LAMP中進行zabbix的WEB頁面配置時發現,如果配置MySQL的地址為localhost,則不能成功進入下一步設置,頁面會提示MySQL連接失敗,但是我改為127.0.0.1就可以成功連接并完成zabbix的所有setup頁面配置。由此我在這點聯想到:在LNMP環境中手動修改配置文件不成功的原因是否也是如此。By the way,肯定有人疑問:服務器中一文件 /etc/hosts 會解釋 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 地址不一樣。這個問題嘛,我也的確沒有去研究,希望能有人給我解答,畢竟我也是個小白。然而,我在此和大家說明一點,在 MySQL 中,貌似由版本5.0開始,(有些版本) \\\’%\\\’ 不包括localhost,要單獨對 @\\\’localhost\\\’ 進行賦值。對用了 % %u5219代表了所有的 host 都能遠程訪問該 MySQL 。
其中 MySQL 官方文檔有說明:% %u5E76不包括 localhost ,此處配置 % %u8FDC程其他 host 有權限訪問,那么在 MySQL 的配置文件中my.cnf,也需要做一些配置,將 bind_address=0.0.0.0 或者直接屏蔽掉此項。
當主機填寫為 localhost 時 MySQL 會采用unix domain socket連接
當主機填寫為 127.0.0.1 時 MySQL 會采用tcp方式連接
經搜查表明 MySQL 設計到的很多應用,比如wordpress這些默認訪問localhost的應用,都會不可用,需要更改 host 為 127.0.0.1 才行。
更多關于云服務器,域名注冊,虛擬主機的問題,請訪問三五互聯官網:m.shinetop.cn