概述php
Lamp架構是目前成熟的網站應用模式之一,指的是協同工做的一整套系統和相關軟件,可以提供動態web站點服務及其應用開發環境。html
組成:Linux 、Apache、MySQL、php/perl/pythonpython
優點:成本低廉、可定製、易於開發、方便易用、安全和穩定mysql
(1)準備工做linux
setenforce 0 #關閉selinuxc++
systemctl stop firewalld.servicegit
apr-utils apache移植運行庫github
--prefix=:指定安裝目錄web
--enable-so:啓用動態加載模塊支持,使httpd具有進一步擴展功能的能力sql
--enable-rewrite::啓用網頁地址重寫功能,用於網站優化及目錄遷移維護。(若是訪問網站未找到,將自動跳轉到其餘網頁)
--enable-charset-lite:啓動字符集支持,以便支持使用各類字符集編碼的網頁。
--enable-cgi:啓用CGI腳本程序支持,以便於網站的應用訪問能力
--help:幫助信息
make && make install
cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd
chmod +x /etc/rc.d/init.d/httpd
checkconfig --add httpd
報錯1:httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName 不能找到徹底合格的域名
解決:vim /usr/local/httpd/conf/httpd.conf
97 #ServerName www.example.com:80
98 ServerName localhost:80
報錯2:
/usr/local/apache/bin/httpd: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
有不少so模塊在/usr/local/lib目錄下,因此在/etc/ld.so.conf中加入/usr/local/lib這一行
/usr/local/httpd/bin/apachectl start啓動httpd服務
下載工具
[root@E tools]# pwd
/home/evan/tools
[root@E tools]# wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
[root@E tools]# ls -l cmake-3.5.2.tar.gz
-rw-r--r-- 1 root root 6863498 4月 16 01:40 cmake-3.5.2.tar.gz
解壓cmake3.5.2
[root@E tools]# tar xf cmake-3.5.2.tar.gz
[root@E tools]# ls -ld cmake-3.5.2
drwxr-xr-x 11 root root 4096 4月 27 09:45 cmake-3.5.2
安裝cmake3.5.2
[root@E tools]# cd cmake-3.5.2
[root@E cmake-3.5.2]# ./configure
[root@E cmake-3.5.2]# gmake
[root@E cmake-3.5.2]# gmake install
[root@E cmake-3.5.2]# cd ../
3.yum -y install gcc gcc-c++ ncurses-devel perl openssl-devel bison 解決依賴
4.安裝MySQL
建立用戶和組
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
mkdir -p /usr/local/mysql
mkdir -p /data/mysql
chown -R mysql.mysql /data/mysql
chown -R mysql.mysql /usr/local/mysql
解壓編譯安裝(編譯文檔附件)
安裝openssl 和 ncurses
tar zxf mysql-5.5.32.tar.gz
cd mysql-5.5.32
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql
#-- Build files have been written to: /home/evan/tools/mysql-5.5.32
提示,編譯時可配置的選項不少,具體可參考結尾附錄或官方文檔:
make && make install
cp supports-file/my-medium.cnf /etc/my.cnf 使用樣原本給mysql做爲配置文件
[root@localhost mysql-5.5.11]#scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/ 初始化
指定basedir 和 datadir
cp support-file/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
checkconfig --add mysqld
checkconfig --list mysqld
vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
編譯安裝php
整合lamp
php須要php.ini做爲配置文件
在/php-5.3.6安裝包中有兩個配置文件一個是php.ini-development還有一個是php.ini-production
將production拷到/usr/local/php中
修改配置文件
修改httpd的配置文件/usr/local/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
modules/libphp5.so 模塊位置 54 AddType application/x-httpd-php .php .phtml 添加對「.php」類型網頁支持 169 DirectoryIndex index.php index.html 識別常見的php首頁文件
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
測試是否能連同mysql
<?php
$conn = mysql_connection('127.0.0.1','root','')
if ($conn)
echo "ok";
else
echo 'not ok';
?>
Xcache 以及 fastcgi配置
下載地址:
http://xcache.lighttpd.net/wiki/Release-3.2.0
編譯安裝:
配置文件參數解釋:
[xcache-common]
extension = xcache.so
; extension = php_xcache.dll
[xcache.admin]
; 登陸管理界面的用戶名和密碼,留空則禁用管理界面
xcache.admin.enable_auth = On
; 管理用戶名
xcache.admin.user = "xcache-admin"
; MD5加密後的密碼,# echo -n pass | md5sum
xcache.admin.pass = ""
[xcache]
; 決定 XCache 如何從系統分配共享內存
xcache.shm_scheme = "mmap"
; 所用共享緩存的大小。若是爲0,緩存將沒法使用
xcache.size = 60M
; 指定將 cache 切分紅多少塊, 建議設置爲 cpu 數 (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 只是做爲 hash 槽個數的參考值, 您能夠放心地緩存超過這個個數的項目.
xcache.slots = 8K
; Opcode文件的生存時間。若是將此值設置爲0,則將無限期緩存 (int)
xcache.ttl = 0
; 觸發垃圾回收的時間間隔。默認設置爲0 (秒)
xcache.gc_interval = 0
; 同上, 只是針對變量緩存設置
xcache.var_size = 4M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
; 啓用或禁用測試功能
xcache.test = off
; 若是啓用了 ReadonlyProtection, 將會略微下降性能, 可是會提升必定的安全係數.
; 這個選項對於xcache.mmap_path = /dev/zero 無效.
xcache.readonly_protection = On
; 用於只讀保護的文件路徑
; 這將限制兩個 php 進程組共享同一個 /tmp/xcache 目錄, 指定爲 /dev/zero 時無效
xcache.mmap_path = "/tmp/xcache"
; 在遇到故障時,放置核心轉儲的目錄。必須是PHP可寫入的目錄。保留爲空表明禁用.
xcache.coredump_directory = ""
; 僅用於 Windows
xcache.coredump_type = 0
xcache.disable_on_crash = off
xcache.experimental = off
; 使用/不使用 opcode 緩存. xcache.size = 0 時無效.
xcache.cacher = On
; 使用 stat() 發現檢查腳本更新.
xcache.stat = ON
; 啓用或禁用優化。默認狀態爲禁用
xcache.optimizer = off
[xcache.coverager]
; 啓用代碼覆蓋信息採集器
; 啓用後 xcache.coveragedump_directory 設置以及 xcache_coverager_start/stop/get/clean() 系列函數纔可使用. (啓用後會對下降影響).
xcache.coverager = off
; 每一個頁面請求自動調用 xcache_coverager_start()
xcache.coverager_autostart = off
; 放置數據採集信息的目錄位置。默認使用目錄 /tmp/pcovis
xcache.coveragedump_directory = ""
https://my.oschina.net/angelangel/blog/338458 eaccelerator
這幾個PHP加速插件的主要原理都相同,就是把PHP執行後的數據緩衝到內存中從而避免重複的編譯過程,可以直接使用緩衝區已編譯的代碼從而提升速 度,下降服務器負載,它們的效率是顯而易見的,像drupal這種龐大的CMS,每次打開一個頁面要調用數十個PHP文件,執行數萬行代碼,效率可想而 知,在安裝APC等加速器後打開頁面的速度明顯加快。
Zend Opcache 已經集成在了PHP 5.5裏面,編譯安裝PHP5.5的時候加上–enable-opcache就好了。但也支持低版本的 PHP 5.2.*, 5.3.*, 5.4.*,將來會取消對5.2的支持,下面是我在PHP 5.4下的安裝方法:
依次執行下面的命令
wget http:
//pecl.php.net/get/zendopcache-7.0.2.tgz
tar xzf zendopcache-7.0.2.tgz
cd zendopcache-7.0.2
/usr/local/php/bin/phpize (此處根據實際php安裝路徑)
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
若是顯示Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 表示安裝完成,下面要修改php的配置文件讓它生效
接着呢,配置下php.ini,在最後加上:
[opcache]
zend_extension=opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.enable=1
通常來講,按照以往的經驗,若是加在ZendGuardLoader以前會穩定多了。
128意思是給它分配128M內存,而後重啓apache,用phpinfo查看是否生效,顯示下面的信息就說明生效了
在phpinfo頁面的下面能夠看到的運行狀態
若是嫌這個不直觀能夠裝個PHP文件查看,地址在https://gist.github.com/ck-on/4959032,把上面的代碼保存爲一個php文件放到你的網站目錄下面打開就能夠看到:
命中率100%。