2017年1月13日 星期五

web直接顯示目錄


web直接顯示目錄

最近聽朋友說遇到一個問題,在網站某個目錄之下,直接用目錄list之方式顯示index.php的程式,似乎沒有執行此index.php程式(如下圖),有可能幾個原因進行討論,環境都以CentOS7x為例
f01
1.此台linux上面沒有安裝php的套件
參考解法,透過yum安裝php套件
# yum -y install php php-mysqlyum php-pdo php-gd php-ldap php-odbc php-pear.noarch php-xml php-xmlrpc php-mbstring php-snmp php-soap php-mcrypt curl curl-devel libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel libmcrypt libmcrypt-devel libtool-ltdl-devel
# yum -y install *php* (比較快的方法,直接將php相關套件都安裝起來,但是有可能多裝了不少套件!!)

# systemctl restart httpd.service (php
安裝後要重啟apache)
2.apache httpd設定中沒有指定預設目錄執行檔案
參考解法,透過修改httpd.conf中是否有下面藍色框中加上index.php(通常也會再加上index.htm or index,html)設定目錄預設中有那些檔案時可以自動執行
# nano /etc/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.php index.htm
</IfModule>
# systemctl restart httpd.service (httpd.conf修改完後要重啟apache)
3.apache httpd設定預設目錄沒有對應執行檔案時會顯示目錄,這是不安全的設定
參考解法,透過修改httpd.conf中如設定目錄預設中沒有可以直接執行的檔案時,不要顯示目錄
# nano /etc/httpd/conf/httpd.conf
先找到<Directory "/var/www/html">這一行
然後將Options Indexes FollowSymLinks
改成OptionsFollowSymLinks
f03
# systemctl restart httpd.service (httpd.conf修改完後要重啟apache)
就可以看到如下的狀況了!!
f02


沒有留言:

張貼留言