�������� LAMP Ӧ�ó����� 5 �ּ���
John Mertic, ��������ʦ, SugarCRM
����
Wikipedia��Facebook �� Yahoo! ����Ҫ web ����ʹ�� LAMP �ܹ���Ϊÿ���������������ṩ���� Wordpress��Joomla��Drupal �� SugarCRM �� web Ӧ�ó�������ʹ�����ܹ�������֯���ɲ������� web ��Ӧ�ó�����
�üܹ������������������ԡ��� .NET �����Ķ�ջ�� Java™ ��������ʹ�ô���Ӳ��������������ջ���ӵ����ܵ��ţ�LAMP ��ջ������������ƷӲ��֮�ϣ�ʹ�ÿ�Դ����ջ����������ջ��һ����ɢ��������������һ��������ջ�����ܵ�����һ����ս����Ϊ��Ҫ�����͵���ÿ��������
Ȼ�������м����������������������κι�ģ����վ�����ܲ�������Ӱ�졣�ڱ����У����ǽ�̽��ּ���Ż� LAMP Ӧ�ó������ܵ� 5 ����������������Щ��ĿӦ��������Ҫ������Ӧ�ó������мܹ����ģ�ʹ����Ϊ���������� web Ӧ�ó�����������Ӧ������Ӳ�������İ�ȫ�����ݵ�ѡ����
--------------------------------------------------------------------------------
�����κ� PHP Ӧ�ó���Ȼ�� LAMP �е� “P”�������ܵ�����ʽ������һ�������뻺�档������ʹ�õ��κ���վ��������ȷ�����ڵ�һ�����ݣ���Ϊ����Ӱ���ܴܶ�ʱ�����˲����뻺�棬��Ӧʱ���ɼ���һ�룩�����Ƕ� PHP ����Ϥ�Ĵ��˵�һ���ܴ��������ǣ�Ϊ�θĽ�������֮�������� PHP ���δ��� web ������ͼ 1 ������ PHP ���������̡�
���� PHP ��һ�ֽ������ԣ����� C �� Java �ȱ������ԣ���ÿ������ִ���� “����-����-ִ��” ���������衣�����Կ���Ϊ��������ʱ������Դ���ر��ǵ��ű�������֮�����ٱ仯ʱ�������ͱ����ű�֮�ű���Ϊһϵ�в����봦�ڻ����ɽ���״̬�����Dz����뻺�淢��Ч�õĵط�������Ϊһϵ�в����뻺����Щ�����ű����Ա���Ϊ�����ͱ���ÿ���������衣������ͼ 2 �п��������Ĺ����������������ġ�
���˵� PHP �ű��Ļ�������������ʱ�����ǿ������� PHP �������̵Ľ����ͱ��벽�裬ֱ��ִ�л��������벢���������������㷨�������������ܶԽű��ļ������˸��ĵ��������������ѱ����ű��ĵ�һ��������Ϊ�����������Զ����±����ͻ��������룬�滻�����Ľű���
�����뻺������ PHP �����Ѿã��������ڵ�һЩҪ�ݵ� PHP V4 ��ȫʢ�ڡ�Ŀǰ��һЩ����ѡ�����ڻ���������ʹ���У�
- ���� PHP ���棨APC�������� PHP �����еIJ����뻺�棨�μ� �ο����������������ɺ��� PHP ������Ա�������������˺ܴ����ף�Facebook �� Yahoo! �Ĺ���ʦ���������ٶȺ��ȶ��ԡ�����֧�����ڴ��� PHP ���������������ٶȸĽ�������һ���û������������⽫�ڱ��ĺ���̽�֡�
- Wincache ����Ҫ�� Microsoft® �� Internet Information Services (IIS) �Ŷӻ���������һ�������뻺�棬������ʹ�� IIS web �������� Windows® ��ʹ�ã��μ� �ο�������������������Ҫ��������ʹ PHP ��Ϊ Windows-IIS-PHP ��ջ�ϵ�һ������ƽ̨����Ϊ��֪ APC �ڸö�ջ�������IJ��Ǻܺá����ڹ����Ϸdz������� APC����֧��һ���û������������Լ�һ�����ûỰ�����������Խ� Wincache ��Ϊһ���Ự��������ֱ�Ӽ������á�
- eAccelerator ��ԭʼ PHP ����֮һ Turck MMCache �����뻺�棨�μ� �ο���������һ����������ͬ�� APC �� Wincache��������һ�������뻺�����Ż������������������û��������������� UNIX® �� Windows ��ջ����ȫ���ݣ��Ҷ��ڲ��������� APC �� Wincache �ṩ���������ܵ�վ�������С�������Ҫʹ�� memcache �����Ľ���������Ϊ�� web �����������ṩһ���������û���������������ô�����dz���������
�������ʣ�һ�������뻺����ͨ����ÿ�����������������ͱ����ű�����Ҫ������ PHP �ĵ�һ�������ɵ�һ��֮������Ӧ��������Ӧʱ���ͷ��������ط����ĸĽ��������Ż� PHP �������IJ�ֹ��Щ�����ǽ��������������ۡ�
--------------------------------------------------------------------------------
������ PHP ����
��Ȼʵ�ֲ����뻺�������ܸĽ���һ�٣�����Ҳ�д��������Ż�ѡ���ɹ������� php.ini �ļ��е������Ż����� PHP ���á���Щ���ø��ʺ�������ʵ�����ڿ���������ʵ���ϣ������ܲ�ϣ������Щ��������Ϊ����ʹ��Ӧ�ó��������ĵ��Ա��ø��ѡ�
�����ǿ�һ�¶���������������Ҫ��һЩ��Ŀ��
Ӧ�����õ�ѡ��
������ php.ini ����Ӧ�����Խ��ã���Ϊ���dz��������������ԣ�
•register_globals — �� PHP V4.2 ֮ǰ�ù��ܳ�����Ĭ��ֵ�����д����������������Զ�������ͨ PHP ���������������������ش���ȫ����֮�⣨ʹδ���˵Ĵ���������������ͨ PHP �����������죩����ÿһ�����������������������������˽�����һ����ʹ����Ӧ�ó�������ȫ�����������ܡ�
•magic_quotes_* — ���� PHP V4 ����һ��������д��������ݻ��Զ��ܿ��з��յı������ݡ���ּ����Ϊһ����ȫ���ԣ��ڽ����������ݷ��͵����ݿ�֮ǰ�������������������Ǻ���Ч����Ϊ�����ܰ����û�Ԥ�������� SQL ע�빥�������ڴ����ݿ���֧���ܸ��õش����÷��յ������䣬���ø����û��ٴ������������˵��������⡣
•always_populate_raw_post_data — ������������ijЩԭ����Ҫ�鿴������δ���� POST ���ݵ���������ʱ����Ҫ���������������ڴ��д洢 POST ���ݵ�һ������������û�б�Ҫ��
Ȼ���������������Ͻ�����Щѡ�����з��գ���Ϊ���ǿ���ȡ������������ʵ����ȷִ�С���Ӧ�����ڱ����õ���Щѡ���������κ��´��룬���ҿ��ܵĻ�����Ӧ��Ѱ�����ع��������д��룬����ʹ�����ǡ�
Ӧ�����û��������õ�ѡ��
���������� php.ini �ļ���һЩ��������ѡ����������Ľű��ٶȣ�
•output_buffering — ��Ӧ��ȷ�����ø�ѡ���Ϊ�����Կ�Ϊ��λ������ˢ�ص���������������ÿ�� echo �� print ����Ϊ��λ��������������������������Ӧʱ�䡣
•variables_order — ����ָ�����ƴ��������� EGPCS��Environment��Get��Post��Cookie �� Server����������˳����������û��ʹ��ij�ֳ�ȫ�ֱ��������绷����������������ȫ��ɾ������������һ�����٣��Ӷ�������ÿһ�������Ͻ������ǡ�
•date.timezone — ������ PHP V5.1 �����ӵ�һ��ָ���������Ĭ��ʱ����Ȼ�����ں��潫Ҫ���ܵ� DateTime ���������������� php.ini �ļ������ø�ѡ�PHP ��ִ�д���ϵͳ������Ū������ʲô������ PHP V5.3 �У���ÿһ�������ᷢ��һ�����档
����Ӧ������������ʵ�������õ����ö��ԣ���Щ�������� “���ֿɵ�”���� PHP ���ԣ�����һ������Ҫ���ǡ�����������Ӧ�ó����� require() �� include()���Լ���ͬ�� require_once() �� include_once()����ʹ�á���Щ�����Ż����� PHP ���úʹ��룬�Է�ֹ��ÿ���������в���Ҫ���ļ�״̬���飬�Ӷ�������Ӧʱ�䡣
--------------------------------------------------------------------------------
�������� require() �� include()
�������������ļ�״̬���ã���Ϊ����һ���ļ��Ƿ����ڶ��Եײ��ļ�ϵͳ���еĵ��ã��൱�������ļ�״̬������Ԫ��֮һ�� require() �� include() ��������ʽ���֣��������������ڽ����������ű��С�require_once() �� include_once() ��ͬ�����ø������⣬��Ϊ���Dz�����Ҫ��֤�ļ��Ƿ����ڣ�������֮ǰû�а������ڡ�
��ô�����������������÷�ʽ��ʲô����������һЩ�����ӿ�������
•Ϊ���� require() �� include() ����ʹ�þ���·�����⽫ʹ PHP ��������ϣ��������ȷ���ļ�����������Ϊ�����ļ��������� include_path��
•���� include_path �е���Ŀ���ϵ͡����ں���Ϊÿ�� require() �� include() �����ṩ����·����������ͨ���ڴ�������Ӧ�ó����л����������������º����ã��������Dz��������������ļ����ڵ�λ�á�
APC �� Wincache �������ڻ��� PHP ���е��ļ�״̬���������Ļ��ƣ������������з������ļ�ϵͳ���顣������ include �ļ�������Ϊ��̬���DZ���������ʱ����������Ч�����˾����ܳ��������������á�
--------------------------------------------------------------------------------
�Ż��������ݿ�
���ݿ��Ż��ܿ�����Ϊһ��ǰ�ػ��⣬�Ҽ���û�пռ���������ȫ���������������⡣������������Ѱ���Ż��������ݿ����ٶȣ�����Ӧ����ȡһЩ���裬��Ӧ���Գ�����������������
�����ݿ������Լ��Ļ�����
���ݿ���ѯ�������Ա����൱���ң�ͨ���ڶԴ�С���������ݼ�ִ�м� SELECT ����ʱ���� 100% �� CPU���������� web �����������ݿ����������ھ��õ�һ�����ϵ� CPU ʱ�䣬�����ɽ��������������ٶȡ�����������һ�������ǽ� web �����������ݿ����������ڵ����Ļ����ϣ�ȷ���������ݿ��������������и�ǿ���ģ����ݿ�������ϲ�������ڴ��Ͷ��� CPU����
�������ƺͱ��Ʊ�����
���ݿ����ܵ�������������Դ���ڲ������ݿ����ƺ�ȱʧ������SELECT ����ͨ���������ڵ��� web Ӧ�ó����е�����IJ�ѯ���͡�����Ҳ�������ݿ������������е�����ʱ�IJ�ѯ�����⣬��Щ���͵� SQL �������ʵ������������ݿ����������У����˲鿴����ָʾ����ȡʵ���������ܵļ��ɡ�
•ȷ��ÿ��������һ����������Ϊ���ṩһ��Ĭ��˳���Ϳ��ٷ�ʽ��������������
•ȷ��һ�����е��κ������������Ӽ�¼����һ�����еļ�¼�ļ����������õ��������ơ��������ݿ����Զ�����Щ��ʩ��Լ�����Ա�ֵ����ƥ����һ�����е�һ����¼���������ڰ�����һ���ѡ�
•��ͼ����һ�����е�������һ��������̫���бȽ���һЩ��ʱ���в�ѯ������ɨ��ʱ��Ҫ�������⣬�������в����õĺ������е�һ��������Ҳ��ͨ�� NULL ֵ�ֶ��˷Ѵ��̿ռ䡣�ı��� blob �ȿɱ���С�ֶ�Ҳ�����ˣ����б���С����������Զ���������������������£���Ӧ�����ǽ��������ֳɲ�ͬ�ı����ڼ�¼�������Ͻ�������������
�����ڷ����������еIJ�ѯ
�Ľ����ݿ����ܵ����ѷ����Ƿ������������ݿ�������������ʲô��ѯ��������������Ҫ�ʱ�䡣����ÿ�����ݿⶼ�о������ֹ��ܵĹ��ߡ����� MySQL����������������ѯ��־�������������IJ�ѯ��Ҫʹ�������� MySQL �����ļ��н� slow_query_log ����Ϊ 1��Ȼ���� log_output ����Ϊ FILE�������Ǽ�¼���ļ� hostname-slow.log �С����������� long_query_time ��ֵ��ȷ����ѯ�������ж������ű������� “����ѯ”�����뽨�齫����ֵ��������Ϊ 5 �룬����ʱ�������ƽ�������Ϊ 1 �룬����ȡ�����������ݼ���������̽�����ļ������ῴ���������嵥 1 ����ϸ��ѯ��
�嵥 1. MySQL ����ѯ��־
/usr/local/mysql/bin/mysqld, Version: 5.1.49-log, started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument
# Time: 030207 15:03:33
# User@Host: user[user] @ localhost.localdomain [127.0.0.1]
# Query_time: 13 Lock_time: 0 Rows_sent: 117 Rows_examined: 234
use sugarcrm;
select * from accounts inner join leads on accounts.id = leads.account_id;
������Ҫ���ǵĹؼ������� Query_time����ʾ��ѯ��Ҫ��ʱ�䡣��һ��Ҫ���ǵ��� Rows_sent �� Rows_examined ����������Ϊ��Щ��ָ��������������������һ����ѯ�쿴̫���л�̫���У��ͻᱻ��������д�������Ը���������������д��ѯ�����ڲ�ѯ��ʼ������ EXPLAIN�����᷵�ز�ѯ�ƻ������ǽ����������嵥 2 ��ʾ��
�嵥 2. MySQL EXPLAIN ����
mysql> explain select * from accounts inner join leads on accounts.id = leads.account_id;
+----+-------------+----------+--------+--------------------------+---------+---
| id | select_type | table | type | possible_keys
| key | key_len | ref | rows | Extra |
+----+-------------+----------+--------+--------------------------+---------+--------
| 1 | SIMPLE | leads | ALL | idx_leads_acct_del | NULL | NULL
| NULL | 200 | |
| 1 | SIMPLE | accounts | eq_ref | PRIMARY,idx_accnt_id_del | PRIMARY | 108
| sugarcrm.leads.account_id | 1 | |
+----+-------------+----------+--------+--------------------------+---------+---------
2 rows in set (0.00 sec)
MySQL �ֲ�������̽�� EXPLAIN ���������⣨�μ� �ο����ϣ��������ҿ��ǵ�һ����Ҫ������ ‘type’ ��Ϊ ‘ALL’ �ĵط�����Ϊ����Ҫ MySQL ��һ��ȫ��ɨ�裬�Ҳ���Ҫ����ִ�в�ѯ����Щ����������������ʱ���������߲�ѯ�ٶȡ�
--------------------------------------------------------------------------------
����������
������������һ�ڿ����ģ����ݿ��������׳�Ϊ�� web Ӧ�ó������ܵ�����ʹ�㡣����������Ҫ��ѯ�����ݲ������ı���ô�죿�����������£�һ���õ�ѡ�������ڱ��ش洢��Щ��������������ÿ���������ò�ѯ��
����֮ǰ̽�������������뻺�� APC �� Wincache ����ʵ�����������Ĺ��ߣ����������Խ� PHP ����ֱ�Ӵ洢��һ�������ڴ����У����ڿ��ٲ�ѯ���嵥 3 �ṩ�˾���ʾ����
�嵥 3. ʹ�� APC �������ݿ�������ʾ��
<?php
function getListOfUsers()
{
$list = apc_fetch('getListOfUsers');
if ( empty($list) ) {
$conn = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'dbuser', 'dbpass');
$sql = 'SELECT id, name FROM users ORDER BY name';
foreach ($conn->query($sql) as $row) {
$list[] = $row;
}
apc_store('getListOfUsers',$list);
}
return $list;
}
���ǽ���һ��ִ�в�ѯ��֮�������ǽ��������͵� getListOfUsers ���µ� APC �����С������↑ʼ��ֱ�����浽�ڣ������ܹ�ֱ�Ӵӻ����л�ȡ�������飬���� SQL ��ѯ��
APC �� Wincache ����һ���û�������Ωһѡ����memcache �� Redis �Dz���Ҫ������ Web ��������ͬ�ķ������������û���������������ѡ�����������������ܺ������ԣ��ر��ǵ����� web Ӧ�ó��������� Web ������������չʱ��
--------------------------------------------------------------------------------
������
�ڱ����У�����̽���˵������� LAMP ���ܵ� 5 �ּ��������Dz���ͨ������һ�������뻺�����Ż� PHP ����̽���� PHP �����ļ���������̽���������Ż��������ݿ�������ʵ�ֺ������������ơ����ǻ�̽������������һ���û����棨�� APC Ϊ������չʾ���������ݲ������ı�ʱ�����ظ������ݿ����á�
--------------------------------------------------------------------------------
����Դ���� os-5waystunelamp.zip
ԭ�ģ�http://www.ibm.com/developerworks/cn/opensource/os-5waystunelamp/index.html
- ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
- �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
- ������������������̸�����ɶ��ر�
- ��������������ѡʳƷ����2020�ļ��ȵ�Ͷ�ʲ��Ժ���������
- �����ڵ�����֤50���ƴ�50����ָ֤�������Ĺ���
- ����֤50����Щ��Ʊ_��֤50Ȩ����������
- ������300����֤50����֤500��ָ��2019���ڶ��ζ��ڵ���������
- ������300��ֵ/�ɳ�ָ�����Ʒ����������й�ƽ��Ȩ���½�
- ����ָ֤��������֤50��ָ��������
- ����ָ֤��������֤����ָ��������
- ����ָ֤��������֤100ָ��������
- ����ָ֤����������300ָ��������