中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      PHP可以做什么

      時(shí)間:2024-10-19 11:51:04 PHP 我要投稿
      • 相關(guān)推薦

      PHP可以做什么

        PHP屬于后起之秀,吸收了java和c以及perl等語(yǔ)言優(yōu)點(diǎn),專注互聯(lián)網(wǎng)領(lǐng)域。WEB領(lǐng)域PHP擁有得天獨(dú)厚的優(yōu)勢(shì),WEB領(lǐng)域沒有語(yǔ)言可以和他比。將來(lái)一定是互聯(lián)網(wǎng)的天下。互聯(lián)網(wǎng)離不開WEB,WEB離不開PHP。那么PHP可以做什么?一起來(lái)看看PHP的用途吧!

        PC端網(wǎng)站開發(fā)

        60%全球互聯(lián)網(wǎng)網(wǎng)站采用php技術(shù),80%國(guó)內(nèi)互聯(lián)網(wǎng)網(wǎng)站使用php開發(fā)。這些網(wǎng)站包含購(gòu)物網(wǎng)站,政府企業(yè)網(wǎng)站,QQ空間,論壇博客等等。

        移動(dòng)端微網(wǎng)站開發(fā)

        移動(dòng)設(shè)備的普及為移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展奠定了基礎(chǔ)!手機(jī)淘寶網(wǎng)站,手機(jī)京東網(wǎng)站等等, 微信公眾號(hào)應(yīng)用中的微網(wǎng)站。 將來(lái)微網(wǎng)站和公眾號(hào)肯定會(huì)取代APP的地位!

        APP后臺(tái)開發(fā)

        APP后臺(tái)開發(fā)也是移動(dòng)互聯(lián)網(wǎng)發(fā)展的一個(gè)產(chǎn)物。大多數(shù)網(wǎng)站為了讓用戶在手機(jī)上能夠得到更好體驗(yàn)效果,都加入開發(fā)APP的開發(fā)行列中。而PHP后端技術(shù)將會(huì)作為他們的不二選擇。

        PHP主要用來(lái)做網(wǎng)站開發(fā),許多小型網(wǎng)站都用PHP開發(fā),PHP是開源的,這是使得PHP經(jīng)久不衰的原因。在電商、社區(qū)等方面,PHP具備非常成熟的開源代碼和模板,因此使得PHP應(yīng)用極為廣泛。

        php-fpm的安裝目錄

        下面是我的平時(shí)的環(huán)境搭建php的各種安裝目錄,大家的基本也差不多。

        centos等linux平臺(tái)

        1./usr/local/php/php

        2./usr/local/php/etc/php.ini

        3./usr/local/php/sbin/php-fpm

        4./usr/local/php/etc/php-fpm.conf

        mac平臺(tái)

        1./usr/bin/php

        2./etc/php.ini

        3./usr/bin/php-fpm

        4./etc/php-fpm.conf

        由于我開發(fā)以Mac為主,所以就用Mac的環(huán)境配置來(lái)學(xué)習(xí)。

        php-fpm配置詳解

        這是搜索的一份還算算比較詳細(xì)的php-fpm.conf配置詳解,我會(huì)針對(duì)性的修改下,當(dāng)然php手冊(cè)上也有詳細(xì)的講解:http://php.net/manual/zh/install.fpm.configuration.php

        1.pid = /usr/local/var/run/php-fpm.pid

        2.#pid設(shè)置,一定要開啟,上面是Mac平臺(tái)的。默認(rèn)在php安裝目錄中的var/run/php-fpm.pid。比如centos的在: /usr/local/php/var/run/php-fpm.pid

        3.

        4.error_log  = /usr/local/var/log/php-fpm.log

        5.#錯(cuò)誤日志,上面是Mac平臺(tái)的,默認(rèn)在php安裝目錄中的var/log/php-fpm.log,比如centos的在: /usr/local/php/var/log/php-fpm.log

        6.

        7.log_level = notice

        8.#錯(cuò)誤級(jí)別. 上面的php-fpm.log紀(jì)錄的登記。可用級(jí)別為: alert(必須立即處理), error(錯(cuò)誤情況), warning(警告情況), notice(一般重要信息), debug(調(diào)試信息). 默認(rèn): notice.

        9.

        10.emergency_restart_threshold = 60

        11.emergency_restart_interval = 60s

        12.#表示在emergency_restart_interval所設(shè)值內(nèi)出現(xiàn)SIGSEGV或者SIGBUS錯(cuò)誤的php-cgi進(jìn)程數(shù)如果超過(guò) emergency_restart_threshold個(gè),php-fpm就會(huì)優(yōu)雅重啟。這兩個(gè)選項(xiàng)一般保持默認(rèn)值。0 表示 '關(guān)閉該功能'. 默認(rèn)值: 0 (關(guān)閉).

        13.

        14.process_control_timeout = 0

        15.#設(shè)置子進(jìn)程接受主進(jìn)程復(fù)用信號(hào)的超時(shí)時(shí)間. 可用單位: s(秒), m(分), h(小時(shí)), 或者 d(天) 默認(rèn)單位: s(秒). 默認(rèn)值: 0.

        16.

        17.daemonize = yes

        18.#后臺(tái)執(zhí)行fpm,默認(rèn)值為yes,如果為了調(diào)試可以改為no。在FPM中,可以使用不同的設(shè)置來(lái)運(yùn)行多個(gè)進(jìn)程池。 這些設(shè)置可以針對(duì)每個(gè)進(jìn)程池單獨(dú)設(shè)置。

        19.

        20.listen = 127.0.0.1:9000

        21.#fpm監(jiān)聽端口,即nginx中php處理的地址,一般默認(rèn)值即可。可用格式為: 'ip:port', 'port', '/path/to/unix/socket'. 每個(gè)進(jìn)程池都需要設(shè)置。如果nginx和php在不同的機(jī)器上,分布式處理,就設(shè)置ip這里就可以了。

        22.

        23.listen.backlog = -1

        24.#backlog數(shù),設(shè)置 listen 的半連接隊(duì)列長(zhǎng)度,-1表示無(wú)限制,由操作系統(tǒng)決定,此行注釋掉就行。backlog含義參考:http://www.3gyou.cc/?p=41

        25.

        26.listen.allowed_clients = 127.0.0.1

        27.#允許訪問FastCGI進(jìn)程的IP白名單,設(shè)置any為不限制IP,如果要設(shè)置其他主機(jī)的nginx也能訪問這臺(tái)FPM進(jìn)程,listen處要設(shè)置成本地可被訪問的IP。默認(rèn)值是any。每個(gè)地址是用逗號(hào)分隔. 如果沒有設(shè)置或者為空,則允許任何服務(wù)器請(qǐng)求連接。

        28.

        29.listen.owner = www

        30.listen.group = www

        31.listen.mode = 0666

        32.#unix socket設(shè)置選項(xiàng),如果使用tcp方式訪問,這里注釋即可。

        33.

        34.user = www

        35.group = www

        36.#啟動(dòng)進(jìn)程的用戶和用戶組,F(xiàn)PM 進(jìn)程運(yùn)行的Unix用戶, 必須要設(shè)置。用戶組,如果沒有設(shè)置,則默認(rèn)用戶的組被使用。

        37.

        38.pm = dynamic

        39.#php-fpm進(jìn)程啟動(dòng)模式,pm可以設(shè)置為static和dynamic和ondemand

        40.#如果選擇static,則進(jìn)程數(shù)就數(shù)固定的,由pm.max_children指定固定的子進(jìn)程數(shù)。

        41.

        42.#如果選擇dynamic,則進(jìn)程數(shù)是動(dòng)態(tài)變化的,由以下參數(shù)決定:

        43.pm.max_children = 50 #子進(jìn)程最大數(shù)

        44.pm.start_servers = 2 #啟動(dòng)時(shí)的進(jìn)程數(shù),默認(rèn)值為: min_spare_servers + (max_spare_servers - min_spare_servers) / 2

        45.pm.min_spare_servers = 1 #保證空閑進(jìn)程數(shù)最小值,如果空閑進(jìn)程小于此值,則創(chuàng)建新的子進(jìn)程

        46.pm.max_spare_servers = 3 #,保證空閑進(jìn)程數(shù)最大值,如果空閑進(jìn)程大于此值,此進(jìn)行清理

        47.

        48.pm.max_requests = 500

        49.#設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù). 對(duì)于可能存在內(nèi)存泄漏的第三方模塊來(lái)說(shuō)是非常有用的. 如果設(shè)置為 '0' 則一直接受請(qǐng)求. 等同于 PHP_FCGI_MAX_REQUESTS 環(huán)境變量. 默認(rèn)值: 0.

        50.

        51.pm.status_path = /status

        52.#FPM狀態(tài)頁(yè)面的網(wǎng)址. 如果沒有設(shè)置, 則無(wú)法訪問狀態(tài)頁(yè)面. 默認(rèn)值: none. munin監(jiān)控會(huì)使用到

        53.

        54.ping.path = /ping

        55.#FPM監(jiān)控頁(yè)面的ping網(wǎng)址. 如果沒有設(shè)置, 則無(wú)法訪問ping頁(yè)面. 該頁(yè)面用于外部檢測(cè)FPM是否存活并且可以響應(yīng)請(qǐng)求. 請(qǐng)注意必須以斜線開頭 (/)。

        56.

        57.ping.response = pong

        58.#用于定義ping請(qǐng)求的返回相應(yīng). 返回為 HTTP 200 的 text/plain 格式文本. 默認(rèn)值: pong.

        59.

        60.access.log = log/$pool.access.log

        61.#每一個(gè)請(qǐng)求的訪問日志,默認(rèn)是關(guān)閉的。

        62.

        63.access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"

        64.#設(shè)定訪問日志的格式。

        65.

        66.slowlog = log/$pool.log.slow

        67.#慢請(qǐng)求的記錄日志,配合request_slowlog_timeout使用,默認(rèn)關(guān)閉

        68.

        69.request_slowlog_timeout = 10s

        70.#當(dāng)一個(gè)請(qǐng)求該設(shè)置的超時(shí)時(shí)間后,就會(huì)將對(duì)應(yīng)的PHP調(diào)用堆棧信息完整寫入到慢日志中. 設(shè)置為 '0' 表示 'Off'

        71.

        72.request_terminate_timeout = 0

        73.#設(shè)置單個(gè)請(qǐng)求的超時(shí)中止時(shí)間. 該選項(xiàng)可能會(huì)對(duì)php.ini設(shè)置中的'max_execution_time'因?yàn)槟承┨厥庠驔]有中止運(yùn)行的腳本有用. 設(shè)置為 '0' 表示 'Off'.當(dāng)經(jīng)常出現(xiàn)502錯(cuò)誤時(shí)可以嘗試更改此選項(xiàng)。

        74.

        75.rlimit_files = 1024

        76.#設(shè)置文件打開描述符的rlimit限制. 默認(rèn)值: 系統(tǒng)定義值默認(rèn)可打開句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。

        77.

        78.rlimit_core = 0

        79.#設(shè)置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整數(shù). 默認(rèn)值: 系統(tǒng)定義值.

        80.

        81.chroot =

        82.#啟動(dòng)時(shí)的Chroot目錄. 所定義的目錄需要是絕對(duì)路徑. 如果沒有設(shè)置, 則chroot不被使用.

        83.

        84.chdir =

        85.#設(shè)置啟動(dòng)目錄,啟動(dòng)時(shí)會(huì)自動(dòng)Chdir到該目錄. 所定義的目錄需要是絕對(duì)路徑. 默認(rèn)值: 當(dāng)前目錄,或者/目錄(chroot時(shí))

        86.

        87.catch_workers_output = yes

        88.#重定向運(yùn)行過(guò)程中的stdout和stderr到主要的錯(cuò)誤日志文件中. 如果沒有設(shè)置, stdout 和 stderr 將會(huì)根據(jù)FastCGI的規(guī)則被重定向到 /dev/null . 默認(rèn)值: 空.

        當(dāng)然還有一些無(wú)關(guān)緊要的設(shè)置,用到了再說(shuō)吧。

        一些重要的設(shè)置

        php-fpm進(jìn)程分配

        在之前的文章中就說(shuō)過(guò)了。在fasgcgi模式下,php會(huì)啟動(dòng)多個(gè)php-fpm進(jìn)程,來(lái)接收nginx發(fā)來(lái)的請(qǐng)求,那是不是進(jìn)程越多,速度就越快呢?這可不一定!得根據(jù)我們的機(jī)器配置和業(yè)務(wù)量來(lái)決定。

        我們先來(lái)看下,設(shè)定進(jìn)程的配置在哪里?

        pm = static | dynamic | ondemand

        pm可以設(shè)置成這樣3種,我們用的最多的就上前面2種。

        pm = static 模式

        pm = static 表示我們創(chuàng)建的php-fpm子進(jìn)程數(shù)量是固定的,那么就只有pm.max_children = 50這個(gè)參數(shù)生效。你啟動(dòng)php-fpm的時(shí)候就會(huì)一起全部啟動(dòng)51(1個(gè)主+50個(gè)子)個(gè)進(jìn)程,頗為壯觀。

        pm = dynamic 模式

        pm = dynamic模式,表示啟動(dòng)進(jìn)程是動(dòng)態(tài)分配的,隨著請(qǐng)求量動(dòng)態(tài)變化的。他由 pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 這幾個(gè)參數(shù)共同決定。

        上面已經(jīng)講過(guò),這里再重申一下吧:

        pm.max_children = 50 是最大可創(chuàng)建的子進(jìn)程的數(shù)量。必須設(shè)置。這里表示最多只能50個(gè)子進(jìn)程。

        pm.start_servers = 20 隨著php-fpm一起啟動(dòng)時(shí)創(chuàng)建的子進(jìn)程數(shù)目。默認(rèn)值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。這里表示,一起啟動(dòng)會(huì)有20個(gè)子進(jìn)程。

        pm.min_spare_servers = 10

        設(shè)置服務(wù)器空閑時(shí)最小php-fpm進(jìn)程數(shù)量。必須設(shè)置。如果空閑的時(shí)候,會(huì)檢查如果少于10個(gè),就會(huì)啟動(dòng)幾個(gè)來(lái)補(bǔ)上。

        pm.max_spare_servers = 30

        設(shè)置服務(wù)器空閑時(shí)最大php-fpm進(jìn)程數(shù)量。必須設(shè)置。如果空閑時(shí),會(huì)檢查進(jìn)程數(shù),多于30個(gè)了,就會(huì)關(guān)閉幾個(gè),達(dá)到30個(gè)的狀態(tài)。

        到底選擇static還數(shù)dynamic?

        很多人恐懼癥來(lái)襲,不知道選什么好?

        一般原則是:動(dòng)態(tài)適合小內(nèi)存機(jī)器,靈活分配進(jìn)程,省內(nèi)存。靜態(tài)適用于大內(nèi)存機(jī)器,動(dòng)態(tài)創(chuàng)建回收進(jìn)程對(duì)服務(wù)器資源也是一種消耗。

        如果你的內(nèi)存很大,有8-20G,按照一個(gè)php-fpm進(jìn)程20M算,100個(gè)就2G內(nèi)存了,那就可以開啟static模式。如果你的內(nèi)存很小,比如才256M,那就要小心設(shè)置了,因?yàn)槟愕臋C(jī)器里面的其他的進(jìn)程也算需要占用內(nèi)存的,所以設(shè)置成dynamic是最好的,比如:pm.max_chindren = 8, 占用內(nèi)存160M左右,而且可以隨時(shí)變化,對(duì)于一半訪問量的網(wǎng)站足夠了。

        慢日志查詢

        我們有時(shí)候會(huì)經(jīng)常飽受500,502問題困擾。當(dāng)nginx收到如上錯(cuò)誤碼時(shí),可以確定后端php-fpm解析php出了某種問題,比如,執(zhí)行錯(cuò)誤,執(zhí)行超時(shí)。

        這個(gè)時(shí)候,我們是可以開啟慢日志功能的。

        slowlog = /usr/local/var/log/php-fpm.log.slow

        request_slowlog_timeout = 15s

        當(dāng)一個(gè)請(qǐng)求該設(shè)置的超時(shí)時(shí)間15秒后,就會(huì)將對(duì)應(yīng)的PHP調(diào)用堆棧信息完整寫入到慢日志中。

        php-fpm慢日志會(huì)記錄下進(jìn)程號(hào),腳本名稱,具體哪個(gè)文件哪行代碼的哪個(gè)函數(shù)執(zhí)行時(shí)間過(guò)長(zhǎng):

        1.[21-Nov-2013 14:30:38] [pool www] pid 11877

        2.script_filename = /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php

        3.[0xb70fb88c] file_get_contents() /usr/local/lnmp/nginx/html/www.quancha.cn/www/fyzb.php:2

        通過(guò)日志,我們就可以知道第2行的file_get_contents 函數(shù)有點(diǎn)問題,這樣我們就能追蹤問題了。

      【PHP可以做什么】相關(guān)文章:

      影視專業(yè)出來(lái)可以做什么08-01

      安全工程師可以做什么工作?08-28

      關(guān)于php面試寶典及PHP面試技巧08-16

      PHP的壓縮函數(shù)06-21

      php高級(jí)教程01-23

      AIA考試難嗎-拿到AIA證書可以在企業(yè)里做什么12-28

      淘米水可以用來(lái)做什么-淘米水12個(gè)妙用01-20

      如何學(xué)好PHP知識(shí)09-20

       PHP的基礎(chǔ)編程與應(yīng)用10-16

      淺析php函數(shù)的實(shí)例06-08

      主站蜘蛛池模板: 国产成人啪精品视频免费网| 页游| 岛国熟女一区二区三区| 99久久国产一区二区三区| 亚洲美女性生活一级片| 亚洲一区二区av偷偷| 亚洲精品熟女乱色一区| 丹阳市| 少妇特殊按摩高潮惨叫无码| 久久国产高潮流白浆免费观看| 人妻少妇精品无码系列| 长寿区| 资源在线观看视频一区二区| 国产高清一区在线观看| 久久99精品这里精品动漫6 | 马山县| 日韩精品中文字幕综合| 国产91久久精品一区二区 | 国产不卡一区二区av| 一本一道AⅤ无码中文字幕| 溧阳市| 无码中文字幕av免费放| 久久久久久免费播放一级毛片| 91日本人妻在线口爆吞精| 亚欧同人精品天堂| 国产成人综合久久精品推荐免费 | 激情亚洲综合熟女婷婷| 五月天婷婷一区二区三区久久| 国产午夜精品美女裸身视频69| 国产丰满乱子伦无码专| 徐汇区| 时尚| 中文字幕少妇人妻视频| 汪清县| 阳原县| 国产精品福利久久香蕉中文| 日本岛国精品中文字幕| 久久99久久99精品免观看女同 | 永德县| 如皋市| 久久久久亚洲AV无码专区一区|