㈠ php問題 :1000個並發訪問某個頁面,只允許20個通行,其他的等待,如何實現,新手,請講的詳細點
並發數應該是用apache iis 或nginx控制,看你用的是什麼. PHP控制不到並發數.
㈡ PHP做游戲服務端可以達到多少並發
PHP做游戲服務端可以達到並發十萬。
包括使用緩存加速工具,經過優化後web性能有明顯的提高。這是我用壓力測試工具測試的並發數量。
自己下載個軟體來做下壓力測試才能得出較准確的數據,使用nginx更多是用來支持動態頁面,而且還可以做代理和一些限制設置,但論功能而言比apache更廣, apache 更擅長於對靜態頁面的解釋,穩定且比nginx配置更為簡單。
2012年數據:
2012上半年,中國游戲市場(包括PC網路游戲市場、移動網路游戲市場、PC單機游戲市場等)實際銷售收入248.4億元人民幣,比2011上半年增長了18.5%。
2012上半年,中國PC網路游戲市場實際銷售收入(包括了客戶端網游、網頁游戲、社交遊戲及游戲平台的市場銷售額)為235.5億元人民幣,比2011上半年增長了16.9%。
2012上半年,中國自主研發的PC網路游戲市場實際銷售收入為168.6億元人民幣,占網路游戲市場實際銷售收入的71.6%,較2011年同期的63%左右有明顯提升。
㈢ php怎麼用啊我是初學者(環境搭建好了)
後,默認用戶名為root,默認密碼為mysql)
下載時下載編譯好的那種
解壓MySQL,把所有文件復制到/usr/local/mysql
[root@Bleach usr]# groupadd mysql
[root@Bleach usr]# useradd -g mysql mysql
[root@Bleach mysql]# cd mysql
[root@Bleach mysql]# scripts/mysql_install_db --user=mysql
[root@Bleach mysql]# chown -R root .
[root@Bleach mysql]# chown -R mysql data
[root@Bleach mysql]# chgrp -R mysql .
[root@Bleach mysql]# ./bin/mysqld_safe --user=mysql &
[root@Bleach mysql]# ./bin/mysqladmin -u root password mysql
[root@Bleach mysql]# cp ./support-files/mysql.server /etc/init.d/mysql
[root@Bleach mysql]# cd /etc/rc3.d/
[root@Bleach rc3.d]# ln -s /etc/init.d/mysql S85mysql
[root@Bleach rc3.d]# ln -s /etc/init.d/mysql K85mysql
安裝GD庫基本包gd-devel
#rpm -ivh gd-devel-1.8.4-11.i386.rpm
安裝XPM支持
#rpm -ivh xpm-3.4k-2.i386.rpm
安裝libxml2 (記得PHP5.1.1隻支持libxml2-2.6.11以上版本)
#tar zxvf libxml2-2.6.11.tar.gz
#cd libxml2-2.6.11
#./configure
#make
#make install
開始裝GD庫支持
-------------------------------------------------------
先安裝GD基礎rpm包
#rpm –ivh gd-devel.rpm
ZLIB
#./configure
#make
#make install
JPEGSRC
#./configure --enable-shared
#make
#make install-lib
#make install
LIBPNG
#cp scripts/makefile.std Makefile
#make
#make install
最後是GD2.*
#./configure --with-png=/usr/local --with-jpeg=/usr/local --with-freetype=/usr
#make
#make install
----------------------------------------------
上面一切都很順利的話,GD就算成功的安裝上了. 如果有問題,應該是缺少支持包,總之是少什麼就下載什
么來安裝上.
跟著下來,開始安裝APAHCHE2和PHP5
#./configure --prefix=/usr/local/apache2 --enable-mole=so
#make
#make install
PHP5
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-gd=/usr/local --enable-trace-vars --with-zlib-dir=/usr/local -with-mysql=/usr/local/mysql --enable-mbstring=all
#make
#make install
復制PHP.INI文件到正確位置
在PHP目錄下運行
#cp php.ini-dist /usr/local/php/lib/php.ini
編輯apache配置文件httpd.conf
#vi /usr/local/apache2/conf/httpd.conf
要改的有如下幾處:
一般都在
#AddType application/x-tar .tgz
下加一行
AddType application/x-httpd-php .php
查找
index.html
在後面加 index.htm index.php 讓它把index.php做為默認頁
再找
#ServerName
把#去掉,後面的IP改成你的IP.
找到
"/usr/local/apache2/htdocs"
把兩個"/usr/local/apache2/htdocs"改為你存放網頁文件的路徑
保存httpd.conf文件.
啟動它
# /usr/local/apache2/bin/apachectl start
如果沒有出錯,寫一個測試頁放到你網頁目錄下, 我的就是上面所說的 /www
phpinfo();
?>
保存.試試在測試器里打IP進去就可以看到PHPINFO頁了
把Apache2加入系統服務
#cd /etc/init.d
#cp /usr/local/apache/bin/apachectl ./httpd
用文本編輯/etc/init.d/httpd
在頭部加入
#chkconfig: 345 79 15
#description: Activates/Deactivates Apache Web Server
# processname: httpd
#chkconfig --add httpd
安裝ZendOptimizer-2.5.3加速PHP
#./install.sh
------------------------
一直想寫篇關於linux下 PHP環境的詳細安裝配置文章, 沒什麼時間
趁現要配幾台伺服器, 藉此機會把自己安裝配置的步驟寫出來, 供初學者參考!
有什麼錯誤的地方請大家指證批評,謝謝! - by Mayer
首先我在 /root 目錄下建了一個 soft 文件夾來保存我要安裝的源碼包
mkdir /root/soft
cd /root/soft
先找到 apache php mysql proftpd 源碼包下載的URL地址
請瀏覽
等官方網站
使用wget 直接下載
wget
...
wget
...
wget
...
第一步:安裝apache
註:當前目錄為/root/soft ,
目錄下有
httpd-2.0.55.tar.gz, php-5.0.5.tar.gz
等二進制源碼包
#號代表為root 根許可權,#後是輸入的一條命令
執行下列命令
解壓源碼包
# tar -zxf httpd-2.0.55.tar.gz
進入安裝目錄
# cd httpd-2.0.55
配置apache安裝信息
# ./configure --prefix=/usr/local/apache --enable-moles=so --enable-rewrite
執行make安裝
# make; make install
安裝完後
# vi /usr/local/apache/conf/httpd.conf
找到 prefork.c 下的
MaxClients 150
改為
ServerLimit 2000
MaxClients 1000
apache默認工作在prefork.c模式下,並發進程為150,超過後就無法訪問,150是遠遠不夠的,所以這里按自己網站的需求改, 如1000
由於apache默認最大並發進程是 256 所以要先設置 ServerLimit 2000 將伺服器可設的最大並發數設為2000, 然後再設置最大並發數 MaxClients 1000
找到 #ServerName
在其下設置 ServerName 如下
ServerName
基中
為你網站名,也可用IP代替
找到 DocumentRoot "/usr/local/apache/htdocs"
設置你的 WEB 伺服器的根目錄 如
DocumentRoot "/myweb"
找到 DirectoryIndex index.html index.html.var 改為
DirectoryIndex index.html index.php index.htm
找到 ForceLanguagePriority Prefer Fallback 在其下加上
AddDefaultCharset gb2312
改完後保存(vi 的用法請查 Linux vi 命令)
用下面命令啟動WEB伺服器
# /usr/local/apache/bin/apachectl start
查看自己的站點是否正常
也可用IP
用 # /usr/local/apache/bin/apachectl stop 可停止服務
安裝MYSQL
# tar -zxf mysql-standard-5.0.15-linux-i686.tar.gz
# cp -r mysql-standard-5.0.15-linux-i686 /usr/local/mysql
# vi /usr/local/mysql/support-files/my-medium.cnf
在後面加上
max_connections = 1000
log-slow-queries
long_query_time = 5
注 max_connections 為允許的最大連接數
log-slow-queries 打開低速查詢日誌
long_query_time 低速查詢的秒數(運行一句sql達到此時間記錄在日誌里)
然後COPY 它為 /etc/my.cnf 文件
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
添加mysql用戶及用戶組
# groupadd mysql
# useradd -g mysql mysql
修改mysql目錄許可權
# chown -R root /usr/local/mysql
# chgrp -R mysql /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
生成mysql系統資料庫
# /usr/local/mysql/scripts/mysql_install_db --user=mysql&
啟動mysql服務
# /usr/local/mysql/bin/mysqld_safe --user=mysql&
如出現 Starting mysqld daemon with databases from /usr/local/mysql/data
代表正常啟動mysql服務了, 按Ctrl + C 跳出
修改 mysql 的 root 密碼
# /usr/local/mysql/bin/mysqladmin -u root -p password 123456
回車出現 Enter password: 最開始密碼默認為空 繼續回車即可
123456 即為你的新密碼
安裝GD庫(讓PHP支持GIF,PNG,JPEG)
首先下載 jpeg6,libpng,freetype 並安裝模塊
wget
...
wget
...
wget
...
wget
...
安裝 jpeg6
建立目錄
# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/bin
# mkdir /usr/local/jpeg6/lib
# mkdir /usr/local/jpeg6/include
# mkdir /usr/local/jpeg6/man
# mkdir /usr/local/jpeg6/man/man1
# cd /root/soft
# tar -zxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static
# make; make install
安裝libpng
# cd /root/soft
# tar -zxf libpng-1.2.8.tar.gz
# cd libpng-1.2.8
# cp scripts/makefile.std makefile
# make; make install
安裝 freetype
# cd /root/soft
# tar -zxf freetype-2.1.10.tar.gz
# cd freetype-2.1.10
# ./configure --prefix=/usr/local/freetype
# make;make install
安裝最新的GD庫
# cd /root/soft
# tar -zxf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --prefix=/usr/local/gd2 --with-jpeg=/usr/local/jpeg6/ --with-png --with-zlib --with-freetype=/usr/local/freetype/
# make; make install
安裝最新的Curl庫
# cd /root/soft
# wget
...
# tar -zxf curl-7.15.0.tar.gz
# ./configure --prefix=/usr/local/curl
# make; make install
安裝PHP
由於php5需libxml2的支持, 所以先下載並安裝libxml2
# cd /root/soft
# wget
...
# tar -zxf libxml2-2.6.19.tar.gz
# cd libxml2-2.6.19
# ./configure --prefix=/usr/local/libxml2
# make; make install
安裝 libxslt
# cd /root/soft
# wget
...
# tar -zxf libxslt-1.1.15.tar.gz
# cd libxslt-1.1.15
# ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2
# make; make install
# tar -zxf php-5.0.5.tar.gz
# cd php-5.05
# ./configure --prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/
--with-curl=/usr/local/curl --enable-ftp
--with-libxml-dir=/usr/local/libxml2 --with-expat-dir=/usr/lib
--enable-soap --with-xsl=/usr/local/libxslt --enable-xslt
--with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg6/
--with-zlib-dir=/usr/lib --with-png
--with-freetype-dir=/usr/local/freetype
# make
# make install
其中./configure 後的
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql/
--with-libxml-dir=/usr/local/libxml2
是必要的選項
--with-gd=/usr/local/gd2/
--with-jpeg-dir=/usr/local/jpeg6/
--with-png
--with-zlib-dir=/usr/lib
--with-freetype-dir=/usr/local/freetype
這是讓PHP支持GD庫的配置選項
--with-curl=/usr/local/curl 支持CURL庫
--enable-ftp 打開FTP庫函數支持
--enable-soap --with-xsl=/usr/local/libxslt --enable-xslt
讓PHP支持SOAP, 上面這些一般用得少, 可以去掉
配置 httpd.conf 讓apache支持PHP
# vi /usr/local/apache/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下內容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
重啟apache
# /usr/local/apache/bin/apachectl restart
在你Web目錄里建一內容為 PHP文件, 輸入URL地址查看PHP配置是否正確
安裝 phpmyadmin
下載
# cd /root/soft
# wget
...
# tar -zxf phpMyAdmin-2.6.4-pl3.tar.gz
# vi phpMyAdmin-2.6.4-pl3/config.inc.php
找到 $cfg['Servers'][$i]['auth_type'] = 'config'; 將config 改為 http
保存後
mv phpMyAdmin-2.6.4-pl3 /你的phpmyadmin目錄
關於mysql4.1-4移植4.0舊資料庫中文亂碼問題的解決方法
進入phpmyadmin管理
建立你資料庫名並選上 gb2312_bin 的編碼
然後導入你先前備份好的SQL文件, 導入時選擇 文件的字元集:gb2312
完成後就OK了
注: PHP連接mysql4.1和5.0 資料庫後需指定字元集 需執行如 mysql_query("SET NAMES 'gb2312' ");
否則會產生中文亂碼問題!
㈣ php 高並發解決思路解決方案
php 高並發解決思路解決方案,如何應對網站大流量高並發情況。本文為大家總結了常用的處理方式,但不是細節,後續一系列細節教程給出。希望大家喜歡。
一 高並發的概念
在互聯網時代,並發,高並發通常是指並發訪問。也就是在某個時間點,有多少個訪問同時到來。
二 高並發架構相關概念
1、QPS (每秒查詢率) : 每秒鍾請求或者查詢的數量,在互聯網領域,指每秒響應請求數(指 HTTP 請求)
2、PV(Page View):綜合瀏覽量,即頁面瀏覽量或者點擊量,一個訪客在 24 小時內訪問的頁面數量
--註:同一個人瀏覽你的網站的同一頁面,只記做一次 pv
3、吞吐量(fetches/sec) :單位時間內處理的請求數量 (通常由 QPS 和並發數決定)
4、響應時間:從請求發出到收到響應花費的時間
5、獨立訪客(UV):一定時間范圍內,相同訪客多次訪問網站,只計算為 1 個獨立訪客
6、帶寬:計算帶寬需關注兩個指標,峰值流量和頁面的平均大小
7、日網站帶寬: PV/統計時間(換算到秒) * 平均頁面大小(kb)* 8
三 需要注意點:
1、QPS 不等於並發連接數(QPS 是每秒 HTTP 請求數量,並發連接數是系統同時處理的請求數量)
2、峰值每秒請求數(QPS)= (總 PV 數*80%)/ (六小時秒數*20%)【代表 80%的訪問量都集中在 20%的時間內】
3、壓力測試: 測試能承受的最大並發數 以及測試最大承受的 QPS 值
4、常用的性能測試工具【ab,wrk,httpload,Web Bench,Siege,Apache JMeter】
四 優化
1、當 QPS 小於 50 時
優化方案:為一般小型網站,不用考慮優化
2、當 QPS 達到 100 時,遇到數據查詢瓶頸
優化方案: 資料庫緩存層,資料庫的負載均衡
3、當 QPS 達到 800 時, 遇到帶寬瓶頸
優化方案:CDN 加速,負載均衡
4、當 QPS 達到 1000 時
優化方案: 做 html 靜態緩存
5、當 QPS 達到 2000 時
優化方案: 做業務分離,分布式存儲
五、高並發解決方案案例:
1、流量優化
防盜鏈處理(去除惡意請求)
2、前端優化
(1) 減少 HTTP 請求[將 css,js 等合並]
(2) 添加非同步請求(先不將所有數據都展示給用戶,用戶觸發某個事件,才會非同步請求數據)
(3) 啟用瀏覽器緩存和文件壓縮
(4) CDN 加速
(5) 建立獨立的圖片伺服器(減少 I/O)
3、服務端優化
(1) 頁面靜態化
(2) 並發處理
(3) 隊列處理
4、資料庫優化
(1) 資料庫緩存
(2) 分庫分表,分區
(3) 讀寫分離
(4) 負載均衡
5、web 伺服器優化
(1) nginx 反向代理實現負載均衡
(2) lvs 實現負載均衡
㈤ Linux的虛擬主機 4核的電腦 CPU和並發連接數都不限 一個PHP網站的同時在線人數峰值可以到多少
不是看硬體的一般linux上都是lamp apache+php+mysql
Apache2.0以上最大連接數為4000-6000
一般峰值超過4000個並發連接apache就差不多了,再上去性能就不行了。
Nginx號稱可以最大並發連接數超過10000個,實際達到8000左右。
不過這些都是在硬體高新能的情況下的。你的4核應該不是問題了。
一般提高並發訪問連接有如下方法:1。 使用反向代理
2。 建立lamp集群 + 反向代理 (大型網站多是如此)