LAMP和LNMP加速與快取優化

技術小牛人發表於2017-11-21

LAMPLNMP的優化,兩者php的優化差不多:

apache+php(libphp5.so)

nginx+php(fcgi php-fpm)

優化都是對應一個主配置檔案php.ini

nginx php(fcgi php-fpm)有一個自己的配置檔案php-fpm.conf

 

php web引擎快取加速優化實戰

php慢的瓶頸點有兩點:1、解析需要時間 2、需要找後面mysql要,需要時間。

1.操作碼快取。。。將php引擎解析資料請求編譯後的資料快取起來。

 

 

php在高版本後可直接編譯時加上異地mysql引數,然後php配置檔案裡指路徑即可:

–with-mysql=mysqlnd 本地就不需要安裝mysql軟體包了。

 

DNS直接修改/etc/resolv.conf這個檔案是沒用的,只是暫時的,重啟之後就會恢復原樣,網路服務重啟以後會根據/etc/sysconfig/network-scripts/ifcfg-eth0來過載配置,如果ifcfg-eth0沒有配置DNS,那麼resolv.conf會被沖掉,重新變成空值。

 

檢視mysql編譯引數:

[root@web2 ~]# grep CONFIGURE_LINE /application/mysql/bin/mysqlbug

CONFIGURE_LINE=”./configure  `–prefix=/application/mysql5.1.72` `–with-unix-socket-path=/application/mysql5.1.72/tmp/mysql.sock` `–localstatedir=/application/mysql5.1.72/data` `–enable-thread-safe-client` `–with-mysqld-user=mysql` `–with-big-tables` `–without-debug` `–without-pthread` `–enable-assembler` `–with-extra-charsets=complex` `–with-readline` `–with-ssl` `–with-embedded-server` `–enable-local-infile` `–with-plugins=partition,innobase` `–with-mysqld-ldflags=-all-static` `–with-client-ldflags=-all-static`”

`test -n “$CONFIGURE_LINE”  && echo “Configure command: $CONFIGURE_LINE”`

 

檢視apache編譯引數:/application/apache/bin/apachectl -V

檢視php編譯引數:

/application/php/bin/php -i|grep configure

Configure Command =>  `./configure`  `–prefix=/application/php5.3.27` `–with-apxs2=/application/apache/bin/apxs` `–with-mysql=/application/mysql` `–with-xmlrpc` `–with-openssl` `–with-zlib` `–with-freetype-dir` `–with-gd` `–with-jpeg-dir` `–with-png-dir` `–with-iconv=/usr/local/libiconv` `–enable-short-tags` `–enable-sockets` `–enable-zend-multibyte` `–enable-soap` `–enable-mbstring` `–enable-static` `–enable-gd-native-ttf` `–with-curl` `–with-xsl` `–enable-ftp` `–with-libxml-dir`

PHP Warning:  Unknown: It is not safe to rely on the system`s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected `Asia/Chongqing` for `CST/8.0/no DST` instead in Unknown on line 0

 

字符集會影響正規表示式的匹配:

echo export LC_ALL-C>>/etc/profile

source /etc/profile

由於php加速器大多是perl語言寫的,所以要安裝以下內容:

yum install perl-CPAN -y

yum install perl-devel -y

 

eaccelerator:優點,PHP加速、優化、和動態內容快取的擴充套件模組,缺點,快倒閉,開發不活躍了。可提高php效率10倍。

XCache:跟eaccelerator一樣,安裝時21,效率比eaccelerator高,開發更活躍。

上傳nginx-php-ext-soft.zip到伺服器,然後unzip解壓。upzip -o是覆蓋解壓,指令碼時可利用上,但要注意非常危險,直接覆蓋不提示。

 tar jxf eaccelerator-0.9.6.tar.bz2

 cd eaccelerator-0.9.6

/application/php/bin/phpize php裡安裝第三方程式都要執行此條命令,擴充套件php模組的,所有外掛都要執行它。

./configure –enable-eaccelerator=shared –with-php-config=/application/php/bin/php-config

make&&make install

編譯完後檢視:

[root@web2 nginx-php-ext-soft]# ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/

eaccelerator.so   —-代表編譯成功

 

 

安裝xchache

/application/php/bin/phpize

解壓軟體進入目錄

./configure –enable-xcache –with-php-config=/application/php/bin/php-config

make&&make install

最後檢視安裝上了沒:

[root@mysql1 xcache-1.3.2]# ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/ 這個路徑跟apache裡的不一樣,注意。

 

PHP快取加速器軟體種類

xcache,eaccelerator,Zend(只支援php5.2,開發慢),apc

如何選擇:

建議xcacheeaccelerator,二選一,首選xcache,更快開發更活躍。

 

Memcache分為服務端軟體和客戶端外掛兩部分:

服務端軟體的名字為:memcached-1.4.3.tar.gz

客戶端軟體的名字為:memcache-2.2.5.tgz,本文就是客戶端外掛在php服務中的安裝。

 

tar xf  memcache-2.2.5.tgz  

cd memcache-2.2.5

/application/php/bin/phpize

./configure  –with-php-config=/application/php/bin/php-config

make&&make install

 

安裝PDO_MYSQL它是資料庫的一個輔助工具,非必選。

tar PDO_MYSQL-1.0.2.tgz

[root@mysql1 nginx-php-ext-soft]# tar xf PDO_MYSQL-1.0.2.tgz    

[root@mysql1 nginx-php-ext-soft]# cd PDO_MYSQL-1.0.2

/application/php/bin/phpize

./configure  –with-php-config=/application/php/bin/php-config –with-pdo-mysql=/application/mysql&&

make&&make install

ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

 

ImageMagick影像處理軟體,可將大圖處理成縮圖,它不是擴充套件包,不用/application/php/bin/phpize來處理。

tar xf ImageMagick.tar.gz

cd ImageMagick-6.5.1-2/

./configure &&

make&&make install

 

再安裝imagick-2.3.0.tgz,只有將上面的ImageMagick裝了後才能裝它,它們有先後順序的。因為imagick-2.3.0.tgz需要呼叫到上面的ImageMagick

 tar xf imagick-2.3.0.tgz

cd imagick-2.3.0

/application/php/bin/phpize

./configure  –with-php-config=/application/php/bin/php-config &&

make&&make install

 本文轉自  流顆星  51CTO部落格,原文連結:http://blog.51cto.com/liukexing/1969457



相關文章