php相關配置 -apache

php相關配置(總結)

php路徑沒有加載圖1 :mark
mark圖二禁用php.info的結果php

[root@chy ~]# /usr/local/php/bin/php -i
(查看php的路徑)
[root@chy 111.com]# vim index.php
<?php
phpinfo ();
(在indix.php裏面增長phpinfo)
在網頁中能夠查看到php的路徑,可是有加載(如截圖1)
那若是沒有加載時就須要在源碼包中cp一個了,拷貝方式以下:[root@chy 111.com]# cd /usr/local/src/php-5.6.30/ (進入到源碼包中)
[root@chy php-5.6.30]# cp php.ini-development /usr/local/php/etc/php.ini (cp到/etc下)
[root@chy php-5.6.30]# /usr/local/apache2.4/bin/apachectl graceful
(這時還須要刷新配置文件)
[root@chy php-5.6.30]# vim /usr/local/php/etc/php.ini 
(在php的配置文件裏面作一些操做)
disable_functions =eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo
(禁用函數,通常也是須要把phpinfo須要禁用掉,由於若是不由用,php的一些信息就會在網頁中顯示出來)
[root@chy php-5.6.30]# /usr/local/apache2.4/bin/apachectl graceful
(加載一下配置文件)
(圖二是網頁訪問php.info時被拒絕的結果)
[root@chy php-5.6.30]# vim /usr/local/php/etc/php.ini 
date.timezone =Asia/Chongqing
(若是不定義這個會出現報錯)
; http://php.net/display-errors
display_errors = Of
(這個顯示錯誤信息也是須要關閉的,若是不關閉報錯的信息會顯示在網頁的頁面上)
error_log = /tmp/php_errors.log
(定義錯誤日誌的路徑)
error_reporting = E_ALL (記錄日誌的權限,生產環境用的是 E_ALL & ~E_NOTICE )
[root@chy php-5.6.30]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@chy php-5.6.30]# /usr/local/apache2.4/bin/apachectl graceful
(檢查配置,並加載一下配置)
[root@chy php-5.6.30]# curl -A "a" -x127.0.0.1:80 http://www.111.com/index.php
(用curl檢測時發現沒有任何的顯示,這裏加-A是由於以前作了user_agent的配置)
[root@chy php-5.6.30]# ls -l /tmp/php_errors.log 
-rw-r--r-- 1 daemon daemon 438 8月   4 08:09 /tmp/php_errors.log
[root@chy php-5.6.30]# ps aux |grep httpd
root       2448  0.0  0.7 245632 11668 ?        Ss   05:05   0:02 /usr/local/apache2.4/bin/httpd -k start
daemon     5108  0.0  0.5 534596  9132 ?        Sl   08:11   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon     5109  0.0  0.5 534596  9132 ?        Sl   08:11   0:00 /usr/local/apache2.4/bin/httpd -k start
daemon     5110  0.0  0.5 534596  9132 ?        Sl   08:11   0:00 /usr/local/apache2.4/bin/httpd -k start
root       5199  0.0  0.0 112664   976 pts/0    S+   08:13   0:00 grep --color=auto httpd
(這裏須要注意的是若是發現更改了php配置文件後,也設置了錯誤日誌的路徑與權限仍是沒有記錄錯誤日誌,就須要看看錯誤日誌的目錄有沒有寫權限,這個權限是apache的屬主daemon)

錯誤日誌的小案例html

[root@chy php-5.6.30]# vim /data/wwwroot/111.com/2.php (寫一個2.php)
[root@chy php-5.6.30]# curl -A "c" -x127.0.0.1:80 http://www.111.com/2.php -I
HTTP/1.0 500 Internal Server Error
Date: Fri, 04 Aug 2017 00:22:37 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Connection: close
Content-Type: text/html; charset=UTF-8
(狀態碼爲500,爲500的緣由是2.php的語法故意寫錯了)
[root@chy php-5.6.30]# !cat
cat /tmp/php_errors.log 
[04-Aug-2017 08:07:05 Asia/chongqing] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[04-Aug-2017 08:07:09 Asia/chongqing] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[04-Aug-2017 08:09:56 Asia/chongqing] PHP Warning:  phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
[04-Aug-2017 08:22:37 Asia/chongqing] PHP Parse error:  syntax error, unexpected end of file in /data/wwwroot/111.com/2.php on line 4
(查看錯誤日誌)

網站隔離(A,B網站互不影響,當一個網站被黑了,另外一個網站沒有影響)open_basedirshell

[root@chy php-5.6.30]# vim /usr/local/php/etc/php.ini 
open_basedir =/data/wwwroot/111.com/tmp/
(在php.ini下定義的是整個的網站並達不到須要的效果,若是須要實現每一個網站都隔離須要在apache的虛擬配置文件裏進行配置)
[root@chy php-5.6.30]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName www.111.com
    ServerAlias www.exaple.com 222.com
    #<Directory /data/wwwroot/111.com>
     #<filesMatch 123.php>
      #AllowOverride AuthConfig
      #AuthName "111.com user auth"
        #AuthType Basic
        #AuthUserFile /data/.htpasswd
       #require valid-user
      #</FilesMatch>
      #</Directory>
      php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"
(針對不一樣的虛擬主機設置open_basedir,php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"主要配置)
相關文章
相關標籤/搜索