LAMP擴展

一、開啓apache虛擬主機

編輯httpd.conf配置文件

   vim /usr/local/apache2/conf/httpd.conf

         找到# Virtual hosts

         #Include conf/extra/httpd-vhosts.conf  此行註釋去掉

編輯虛擬主機文件

   vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

        找到:

        <VirtualHost *:80>

        ServerAdmin [email protected]

        #管理員郵箱此行可註釋掉

        DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"

        #修改爲網站根目錄

        #如網站位置在/data/www/index.html 則該行命令修改爲:

        #DocumentRoot "/data/www/index.html"

        ServerName dummy-host.example.com

        #主域名,主域名可增加多條

        ServerAlias www.dummy-host.example.com

        #次域名

        ErrorLog "logs/dummy-host.example.com-error_log"

        #錯誤日誌存放位置

        CustomLog "logs/dummy-host.example.com-access_log" common

        #訪問成功日誌存放位置

        </VirtualHost>

PS:若配置好虛擬主機,出現無法訪問,請修改httpd.conf

    vim /usr/local/apache2/conf/httpd.conf         

  <Directory />                  修       <Directory />

    Options FollowSymLinks                  Options FollowSymLinks

    AllowOverride None          改          AllowOverride None

    Order deny,allow                         Order deny,allow

    Deny from all                爲          Allow from all

  </Directory>                            </Directory>

 

 

二、頁面認證

增加驗證安全,修改虛擬主機配置文件httpd-vhosts.conf<VirtualHost *:80>虛擬主機模塊裏面加入以下代碼admin.php爲例

      <filesmatch admin.php>    #表示當訪問此目錄此頁面時需要驗證密碼

         AllowOverride AuthConfig

         AuthName www        #此處引號內容爲自定義

          AuthType Basic

           AuthUserFile /data/www/.htpasswd     

           #這裏的/data/www/.htpasswd 可隨便寫一個路徑或名字,沒有限制

          require valid-user
      </filesmatch>   #filesmatch用於單個文件,Directory用於目錄

 #若改成<Directory /data/www></Directory>表示當訪問該目錄都需要密碼驗證。

 

創建apache的驗證用戶

    /usr/local/apache2/bin/htpasswd -c –/data/www/.htpasswd  liang #創建liang用戶,以md5方式加密,再添加用戶時不需要-c參數。

重新加載配置文檔

/usr/local/apache2/bin/apachectl graceful     #直接重新加載不需要restart

 

三、域名跳轉

增加驗證安全,修改httpd-vhosts.conf配置文件,<VirtualHost *:80></VirtualHost>裏面加入以下代碼:

       <IfModule mod_rewrite.c>

          RewriteEngine on 

          #多個域名跳轉則加入:

          # RewriteCond %{HTTP_HOST} ^www.1chuangshe.com$ [OR]

          RewriteCond %{HTTP_HOST} ^www.1chuangshe.com$     

          RewriteRule ^/(.*)$ http://www.yichuangshe.net/$1 [R=301,L]    

          #重定向到此域名(301表示永久重定向,last結束符

    </IfModule> 

 

四、日誌配置

增加驗證安全,修改虛擬主機配置文件httpd-vhosts.conf<VirtualHost *:80></VirtualHost>模塊裏面的ErrorLog以及CustomLog修改成以下代碼:   

         ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/discuz-error_%Y%m%d.log 86400"

         SetEnvIf Request_URI ".*\.gif$" image-request

         SetEnvIf Request_URI ".*\.jpg$" image-request

         SetEnvIf Request_URI ".*\.png$" image-request

         SetEnvIf Request_URI ".*\.bmp$" image-request

         SetEnvIf Request_URI ".*\.swf$" image-request

         SetEnvIf Request_URI ".*\.js$" image-request

         SetEnvIf Request_URI ".*\.css$" image-request

      CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/discuz-access_%Y%m%d.log 86400" combined env=!image-request

  以上配置表示,錯誤以及正確日誌每天歸檔一次,日誌不記錄圖片訪問相關信息

 

五、配置靜態文件緩存(節點存儲時效)

修改httpd.conf文件,(可以緩存全局環境,若修改在httpd-vhosts.conf只在該虛擬機生效),一般修改在全局配置文件httpd.conf加入以下代碼:

    <IfModule mod_expires.c>

       ExpiresActive on

       ExpiresByType image/gif "access plus 1 days"

       ExpiresByType image/jpeg "access plus 24 hours"

       ExpiresByType image/png "access plus 24 hours"

       ExpiresByType text/css "now plus 2 hours"

       ExpiresByType application/x-javascript "now plus 2 hours"

       ExpiresByType application/x-shockwave-flash "now plus 2 hours"

       ExpiresDefault "now plus 0 min"

    </IfModule>

 

六、設置防盜鏈(防止服務器成爲他人存儲)

修改全局配置文件httpd.conf

  SetEnvIfNoCase Referer "^http://.*\.lc-pb\.com" local_ref

  SetEnvIfNoCase Referer "^www\.lc-pb\.com" local_ref

  <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png|css)">

   Order Allow,Deny 

   Allow from env=local_ref 

   Deny from env!=local_ref

 </filesmatch>

七、訪問控制

控制該目錄訪問訪問

    <Directory /data/www/install>     #定義/data/www/install目錄按規則操作 

       Order Deny,Allow            #規則順序,先執行Deny後執行Allow  

       Deny from all                #拒絕所有訪問

       Allow from 127.0.0.1          #允許127.0.0.1訪問

    </Directory>         

控制該文件訪問控制                   

      <filesmatch "(.*)admin(.*)">   #定義根目錄下含有admin字符按規則操作

          Order Deny,Allow        #規則順序,先執行Deny後執行Allow  

          Deny from all           #拒絕所有訪問含有admin關鍵字的文件

          Allow from 127.0.0.1    #允許自己訪問含有admin關鍵字的文件

      </filesmatch>

控制該目錄下的該文件訪問控制

    <Directory /data/www/>        #定義/data/www目錄訪問規則 

        <filesmatch "(.*)admin(.*)">

          Order Deny,Allow        #規則順序,先執行Deny後執行Allow  

          Deny from all           #拒絕所有訪問

          Allow from 127.0.0.1          #允許自己訪問

        </filesmatch>

</Directory>

 

八、 禁止目錄下解析PHP(針對某些上傳頁面做的安全設置,使用apache

     <Directory /data/www/data>

php_admin_flag engine off    ##禁止解析 php 的控制語句

<filesmatch "(.*)php">

Order deny,allow

Deny from all

</filesmatch>

     </Directory>

 

九、通過rewrite 限制某個目錄和限制user_agent(即用戶代理,不僅表示瀏覽器標識還包括搜索引擎)

    <IfModule mod_rewrite.c>

       RewriteEngine on

       RewriteCond %{REQUEST_URI} ^.*/tmp/* [NC,OR]

       RewriteCond %{HTTP_USER_AGENT} ^*Firefox/4.0* [NC,OR]

       RewriteCond %{HTTP_USER_AGENT} ^*Baiduspider/2.0*  [NC]

       RewriteRule .* - [F]    

    </IfModule>

  ##限制了/tmp目錄訪問,並把火狐瀏覽器以及百度引擎RewriteRule .* - [F]直接禁止訪問

 

十、擴展模塊安裝(以PHP爲例子,該方法適用於apachenginx服務等)

    當編譯安裝時缺少沒一個模塊(即選項)時,可用一下方法

    需要安裝yum install y autoconf

下載mencache源碼包,並解壓,進入解壓後的源碼包目錄;

加載編譯文件

  /usr/local/php/bin/phpize    ##此路徑爲PHP已安裝的路徑

  ./configure with-php-config=/usr/local/php/bin/php-config

  make

  make install

  cp modules/memcache.so /usr/local/php/ext

修改php.ini文件,在最後加上extension = memcache.so

    vim /usr/local/php/etc/php.ini

重新加載apachel服務,然後檢驗是否加載成功:

/usr/local/apache2/bin/apachectl graceful

查看加載模塊

   /usr/local/php/bin/php m

   ##memcache則表示成功。

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章