Linux下部署php多版本共存
背景說明
自php7問世,身為最新版本控的我馬上升級體驗,但是由於伺服器上還有舊程序在運行,只好部署一個php多版本共存環境。
現有環境是lnmp
- CentOS 6.7
- nginx 1.10.1
- mariadb-10.0.26
- php 7.0.8
為了更好兼容舊的php程序,推薦使用5.4.45. 主要是兼容mysql擴展。
開始安裝
首先要下載php-5.4.45.tar.gz源碼包。
通過源碼安裝
# tar xzvf php-5.4.45.tar.gz
# cd php-5.4.45
# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-intl --with-xsl
# make ZEND_EXTRA_LIBS='-liconv'
# make install
# cp php.ini-proction /usr/local/php/etc/php.ini
------------------------------------------------------------------------------------------------
php.ini 配置
post_max_size = 50M
upload_max_filesize = 50M
date.timezone = PRC
short_open_tag = On
cgi.fix_pathinfo=0
max_execution_time = 300
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
------------------------------------------------------------------------------------------------
php-fpm.conf 配置
------------------------------
# vim /usr/local/php/etc/php-fpm.conf1
[global]
pid = /usr/local/php54/var/run/php-fpm.pid
error_log = /usr/local/php54/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
----------------------------------------------------------------------------------
啟動 php-fpm
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm
# chmod +x /etc/init.d/php54-fpm
# /etc/init.d/php54-fpm start
-------------------------------------------------------------------------------------------
修改nginx配置,對需要的服務配置使用php-5.4.45
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php54-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
----------------------------------------------------------------------------------------
配置php-5.4.45 的php54-fpm 開機自動啟動
# chkconfig --add php54-fpm
# chkconfig php54-fpm on
⑵ linux伺服器中木馬怎麼處理
以下從幾個方面在說明Linux系統環境安排配置防範和木馬後門查殺的方法:
一、Web Server(以Nginx為例)
1、為防止跨站感染,將虛擬主機目錄隔離(可以直接利用fpm建立多個程序池達到隔離效果)
2、上傳目錄、include類的庫文件目錄要禁止代碼執行(Nginx正則過濾)
3、path_info漏洞修正:
在nginx配置文件中增加:
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 404;
}
4、重新編譯Web Server,隱藏Server信息
5、打開相關級別的日誌,追蹤可疑請求,請求者IP等相關信息。
二.改變目錄和文件屬性,禁止寫入
find -type f -name \*.php -exec chmod 444 {} \;
find -type d -exec chmod 555 {} \;
註:當然要排除上傳目錄、緩存目錄等;
同時最好禁止chmod函數,攻擊者可通過chmod來修改文件只讀屬性再修改文件!
三.PHP配置
修改php.ini配置文件,禁用危險函數:
disable_funcions = dl,eval,exec,passthru,system,popen,shell_exec,proc_open,proc_terminate,curl_exec,curl_multi_exec,show_source,touch,escapeshellcmd,escapeshellarg
四.MySQL資料庫賬號安全:
禁止mysql用戶外部鏈接,程序不要使用root賬號,最好單獨建立一個有限許可權的賬號專門用於Web程序。
五.查殺木馬、後門
grep -r –include=*.php 『[^a-z]eval($_POST』 . > grep.txt
grep -r –include=*.php 『file_put_contents(.*$_POST\[.*\]);』 . > grep.txt
把搜索結果寫入文件,下載下來慢慢分析,其他特徵木馬、後門類似。有必要的話可對全站所有文件來一次特徵查找,上傳圖片肯定有也捆綁的,來次大清洗。
查找近2天被修改過的文件:
find -mtime -2 -type f -name \*.php
注意:攻擊者可能會通過touch函數來修改文件時間屬性來避過這種查找,所以touch必須禁止
六.及時給Linux系統和Web程序打補丁,堵上漏洞
⑶ linux下curl下載不全的原因
linux下curl下載不全的原因:
1、stl的string在多線程下不安全導致崩潰。
2、編譯環境沒設為多線程的崩潰問題。
3、設置超時時間。
4、404錯誤的異常問題。
⑷ AMH 面板curl 請求https頁面伺服器報404錯誤
那說明WEB目錄在HTTPS配置中沒有具體綁定。或者文件不支持HTTPS調用。