1. php開發環境的常用技術組合是什麼
php+mysql+apache這是開發環境,對mysql圖形管理軟體,本地的話就用phpadmin,遠程的資料庫,比如阿里雲的資料庫,就用navicat了,當然navicat也支持本地資料庫啦,編譯軟體初學的話用notepad++,以後用phpstorm吧
2. php後端開發主要會哪些技術
後端開發首頁你要會PHP,其次你要了解PHP 框架。然後你要會HTML、CSS、JS 這個是基礎
其次你要會GIT、SVN 等代碼倉庫的使用
還有就是你要會xshell
3. 北大青鳥設計培訓:學習PHP軟體開發必須知道的技能
PHP軟體開發與其他語言相比,它具有開發迅速、運行效率高、安全性好、可擴展性強、開源自由等優勢。
回首PHP軟體開發這幾年的發展,趨勢勢不可擋,一定是將來web程序開發的主流技術體系。
而作為PHP軟體開發員這些技能你又知道多少呢?不要在SQL查詢中使用*我們通常編寫SQL代碼在PHP軟體開發中,不過切記別在SQL查詢中使用通配符,特別是資料庫存在多列時。
要明確指定所需行,且只獲取它們。
這有利於減少所用資源,保護數據,使之變得更清晰。
不要信任用戶輸入信任用戶輸入是不科學的。
不要故作聰明作為PHP軟體開發員你只需要用優雅的代碼,來清楚地表明你的想法。
恰當命名變數,為代碼編寫文檔,注重清晰而非簡潔。
不要重新發明輪子PHP軟體開發已經發展很長一段時間,你想到的,或許早就有人發明了。
不要恐懼求助,Github,Composer,Packagist都能幫助到你。
無論是日誌、調色、性能分析器、單元測試框架、MailchimpAPI、TwitterBootstrap等都可以。
不要忽略其它語言作為PHP軟體開發員,不要只局限於你專業的,而忽略其他語言,北大青鳥http://www.kmbdqn.cn/建議你應該合理地學習其他語言並高效地使用它們。
4. PHP程序員應該具備什麼基本技能
一名PHP程序員的基本要求:
1、精通html、CSS、JS等網站前端技術。
2、掌握PHP編程技術。
3、了解linux及Apache、MySql
4、知道基本的網路原理,了解TCP/IP協議。
5、了解基本的軟體工程知識和軟體設計技術。
必須具備的基礎知識:
1、LAMP技術(加強):Linux+Apache+Mysql+PHP,是PHP網站最普遍的架構之一,也是效率最好的架構之一。
2、對潛在的安全漏洞有深刻的理解。如:SQL注入漏洞、字元編碼循環、跨站腳本攻擊(XSS)、跨站請求偽造(CSRF)。(好陌生 – -!)
3、掌握MVC模式:Model(模式)、View(視圖)、Controller(控制器)。
4、其他:面向對象編程(OOP)、PHP緩存技術、PHP相關開發框架、軟體重構技術、軟體設計模式。
必須掌握的工具:
1、PHPMyAdmin(安裝完LAMP以後第一個安裝的工具)。
2、PHPDocumenter,會從PHP中找到所有的邏輯結構。
3、Zend,專業PHP集成開發環境,是php程序員首選IDE工具。
5. PHP可以做什麼
PHP可以做什麼
PHP屬於後起之秀,吸收了java和c以及perl等語言優點,專注互聯網領域。WEB領域PHP擁有得天獨厚的優勢,WEB領域沒有語言可以和他比。將來一定是互聯網的天下。互聯網離不開WEB,WEB離不開PHP。那麼PHP可以做什麼?一起來看看PHP的用途吧!
PC端網站開發
60%全球互聯網網站採用php技術,80%國內互聯網網站使用php開發。這些網站包含購物網站,政府企業網站,QQ空間,論壇博客等等。
移動端微網站開發
移動設備的普及為移動互聯網的快速發展奠定了基礎!手機淘寶網站,手機京東網站等等, 微信公眾號應用中的微網站。 將來微網站和公眾號肯定會取代APP的地位!
APP後台開發
APP後台開發也是移動互聯網發展的一個產物。大多數網站為了讓用戶在手機上能夠得到更好體驗效果,都加入開發APP的開發行列中。而PHP後端技術將會作為他們的不二選擇。
PHP主要用來做網站開發,許多小型網站都用PHP開發,PHP是開源的,這是使得PHP經久不衰的原因。在電商、社區等方面,PHP具備非常成熟的開源代碼和模板,因此使得PHP應用極為廣泛。
php-fpm的安裝目錄
下面是我的平時的環境搭建php的各種安裝目錄,大家的基本也差不多。
centos等linux平台
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平台
1./usr/bin/php
2./etc/php.ini
3./usr/bin/php-fpm
4./etc/php-fpm.conf
由於我開發以Mac為主,所以就用Mac的環境配置來學習。
php-fpm配置詳解
這是搜索的一份還算算比較詳細的php-fpm.conf配置詳解,我會針對性的修改下,當然php手冊上也有詳細的講解:http://php.net/manual/zh/install.fpm.configuration.php
1.pid = /usr/local/var/run/php-fpm.pid
2.#pid設置,一定要開啟,上面是Mac平台的。默認在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.#錯誤日誌,上面是Mac平台的,默認在php安裝目錄中的var/log/php-fpm.log,比如centos的在: /usr/local/php/var/log/php-fpm.log
6.
7.log_level = notice
8.#錯誤級別. 上面的php-fpm.log紀錄的登記。可用級別為: alert(必須立即處理), error(錯誤情況), warning(警告情況), notice(一般重要信息), debug(調試信息). 默認: notice.
9.
10.emergency_restart_threshold = 60
11.emergency_restart_interval = 60s
12.#表示在emergency_restart_interval所設值內出現SIGSEGV或者SIGBUS錯誤的php-cgi進程數如果超過 emergency_restart_threshold個,php-fpm就會優雅重啟。這兩個選項一般保持默認值。0 表示 '關閉該功能'. 默認值: 0 (關閉).
13.
14.process_control_timeout = 0
15.#設置子進程接受主進程復用信號的超時時間. 可用單位: s(秒), m(分), h(小時), 或者 d(天) 默認單位: s(秒). 默認值: 0.
16.
17.daemonize = yes
18.#後台執行fpm,默認值為yes,如果為了調試可以改為no。在FPM中,可以使用不同的設置來運行多個進程池。 這些設置可以針對每個進程池單獨設置。
19.
20.listen = 127.0.0.1:9000
21.#fpm監聽埠,即nginx中php處理的地址,一般默認值即可。可用格式為: 'ip:port', 'port', '/path/to/unix/socket'. 每個進程池都需要設置。如果nginx和php在不同的機器上,分布式處理,就設置ip這里就可以了。
22.
23.listen.backlog = -1
24.#backlog數,設置 listen 的半連接隊列長度,-1表示無限制,由操作系統決定,此行注釋掉就行。backlog含義參考:http://www.3gyou.cc/?p=41
25.
26.listen.allowed_clients = 127.0.0.1
27.#允許訪問FastCGI進程的IP白名單,設置any為不限制IP,如果要設置其他主機的nginx也能訪問這台FPM進程,listen處要設置成本地可被訪問的IP。默認值是any。每個地址是用逗號分隔. 如果沒有設置或者為空,則允許任何伺服器請求連接。
28.
29.listen.owner = www
30.listen.group = www
31.listen.mode = 0666
32.#unix socket設置選項,如果使用tcp方式訪問,這里注釋即可。
33.
34.user = www
35.group = www
36.#啟動進程的用戶和用戶組,FPM 進程運行的Unix用戶, 必須要設置。用戶組,如果沒有設置,則默認用戶的組被使用。
37.
38.pm = dynamic
39.#php-fpm進程啟動模式,pm可以設置為static和dynamic和ondemand
40.#如果選擇static,則進程數就數固定的,由pm.max_children指定固定的子進程數。
41.
42.#如果選擇dynamic,則進程數是動態變化的,由以下參數決定:
43.pm.max_children = 50 #子進程最大數
44.pm.start_servers = 2 #啟動時的進程數,默認值為: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
45.pm.min_spare_servers = 1 #保證空閑進程數最小值,如果空閑進程小於此值,則創建新的子進程
46.pm.max_spare_servers = 3 #,保證空閑進程數最大值,如果空閑進程大於此值,此進行清理
47.
48.pm.max_requests = 500
49.#設置每個子進程重生之前服務的請求數. 對於可能存在內存泄漏的第三方模塊來說是非常有用的. 如果設置為 '0' 則一直接受請求. 等同於 PHP_FCGI_MAX_REQUESTS 環境變數. 默認值: 0.
50.
51.pm.status_path = /status
52.#FPM狀態頁面的網址. 如果沒有設置, 則無法訪問狀態頁面. 默認值: none. munin監控會使用到
53.
54.ping.path = /ping
55.#FPM監控頁面的ping網址. 如果沒有設置, 則無法訪問ping頁面. 該頁面用於外部檢測FPM是否存活並且可以響應請求. 請注意必須以斜線開頭 (/)。
56.
57.ping.response = pong
58.#用於定義ping請求的返回相應. 返回為 HTTP 200 的 text/plain 格式文本. 默認值: pong.
59.
60.access.log = log/$pool.access.log
61.#每一個請求的訪問日誌,默認是關閉的。
62.
63.access.format = "%R - %u %t "%m %r%Q%q" %s %f %{mili}d %{kilo}M %C%%"
64.#設定訪問日誌的格式。
65.
66.slowlog = log/$pool.log.slow
67.#慢請求的`記錄日誌,配合request_slowlog_timeout使用,默認關閉
68.
69.request_slowlog_timeout = 10s
70.#當一個請求該設置的超時時間後,就會將對應的PHP調用堆棧信息完整寫入到慢日誌中. 設置為 '0' 表示 'Off'
71.
72.request_terminate_timeout = 0
73.#設置單個請求的超時中止時間. 該選項可能會對php.ini設置中的'max_execution_time'因為某些特殊原因沒有中止運行的腳本有用. 設置為 '0' 表示 'Off'.當經常出現502錯誤時可以嘗試更改此選項。
74.
75.rlimit_files = 1024
76.#設置文件打開描述符的rlimit限制. 默認值: 系統定義值默認可打開句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
77.
78.rlimit_core = 0
79.#設置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整數. 默認值: 系統定義值.
80.
81.chroot =
82.#啟動時的Chroot目錄. 所定義的目錄需要是絕對路徑. 如果沒有設置, 則chroot不被使用.
83.
84.chdir =
85.#設置啟動目錄,啟動時會自動Chdir到該目錄. 所定義的目錄需要是絕對路徑. 默認值: 當前目錄,或者/目錄(chroot時)
86.
87.catch_workers_output = yes
88.#重定向運行過程中的stdout和stderr到主要的錯誤日誌文件中. 如果沒有設置, stdout 和 stderr 將會根據FastCGI的規則被重定向到 /dev/null . 默認值: 空.
當然還有一些無關緊要的設置,用到了再說吧。
一些重要的設置
php-fpm進程分配
在之前的文章中就說過了。在fasgcgi模式下,php會啟動多個php-fpm進程,來接收nginx發來的請求,那是不是進程越多,速度就越快呢?這可不一定!得根據我們的機器配置和業務量來決定。
我們先來看下,設定進程的配置在哪裡?
pm = static | dynamic | ondemand
pm可以設置成這樣3種,我們用的最多的就上前面2種。
pm = static 模式
pm = static 表示我們創建的php-fpm子進程數量是固定的,那麼就只有pm.max_children = 50這個參數生效。你啟動php-fpm的時候就會一起全部啟動51(1個主+50個子)個進程,頗為壯觀。
pm = dynamic 模式
pm = dynamic模式,表示啟動進程是動態分配的,隨著請求量動態變化的。他由 pm.max_children,pm.start_servers,pm.min_spare_servers,pm.max_spare_servers 這幾個參數共同決定。
上面已經講過,這里再重申一下吧:
pm.max_children = 50 是最大可創建的子進程的數量。必須設置。這里表示最多隻能50個子進程。
pm.start_servers = 20 隨著php-fpm一起啟動時創建的子進程數目。默認值:min_spare_servers + (max_spare_servers - min_spare_servers) / 2。這里表示,一起啟動會有20個子進程。
pm.min_spare_servers = 10
設置伺服器空閑時最小php-fpm進程數量。必須設置。如果空閑的時候,會檢查如果少於10個,就會啟動幾個來補上。
pm.max_spare_servers = 30
設置伺服器空閑時最大php-fpm進程數量。必須設置。如果空閑時,會檢查進程數,多於30個了,就會關閉幾個,達到30個的狀態。
到底選擇static還數dynamic?
很多人恐懼症來襲,不知道選什麼好?
一般原則是:動態適合小內存機器,靈活分配進程,省內存。靜態適用於大內存機器,動態創建回收進程對伺服器資源也是一種消耗。
如果你的內存很大,有8-20G,按照一個php-fpm進程20M算,100個就2G內存了,那就可以開啟static模式。如果你的內存很小,比如才256M,那就要小心設置了,因為你的機器裡面的其他的進程也算需要佔用內存的,所以設置成dynamic是最好的,比如:pm.max_chindren = 8, 佔用內存160M左右,而且可以隨時變化,對於一半訪問量的網站足夠了。
慢日誌查詢
我們有時候會經常飽受500,502問題困擾。當nginx收到如上錯誤碼時,可以確定後端php-fpm解析php出了某種問題,比如,執行錯誤,執行超時。
這個時候,我們是可以開啟慢日誌功能的。
slowlog = /usr/local/var/log/php-fpm.log.slow
request_slowlog_timeout = 15s
當一個請求該設置的超時時間15秒後,就會將對應的PHP調用堆棧信息完整寫入到慢日誌中。
php-fpm慢日誌會記錄下進程號,腳本名稱,具體哪個文件哪行代碼的哪個函數執行時間過長:
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
通過日誌,我們就可以知道第2行的file_get_contents 函數有點問題,這樣我們就能追蹤問題了。
;6. PHP程序員需要具備哪些技能
一名合格的php程序員,他一方面需要掌握php基礎知識,也即常用的命令與選項,另一方面,程序員需熟知MySQL的知識,對於HTML+CSS+JavaScript+Ajax等等,能看懂就行。從長遠發展來看,php程序員需熟知主流產品,也即php框架,如Discuz/ShopEx/ECShop/ThinkPHP,進而深入學習、掌握php架構設計思想,搜索引擎的優化以及網站的負載均衡等知識。 因此,php的學習不僅要掌握眼前所需技能,還要從職業發展前景角度進一步深入對php知識的學習。由此可以看出,深圳達內php的課程就真正做到了對學員進行整個php知識體系的全面、系統的培訓。 深圳達內php整個課程的學習具體從6個階段進行,即包含Linux操作系統、Nigix、XHTML技術核心、CSS技術核心的Web開發基礎;以PHP技術核心、MySQL基礎、PHP核心函數庫、PHP面向對象編程為主的PHP開發技術 ;Web 2.0 RIA技術,如JavaScript基礎、JavaScript高級、jQuery框架、MySQL高級;PHP高級應用(Smarty模板、PHP框架技術);PHP項目實踐(T-Shop項目、T-CMS項目)以及互聯網高級技術 (SEO、負載均衡、網路安全、HTML5&CSS3、緩存與靜態化)等等,由淺入深,逐步深入,對於php程序員理性規劃其職業生涯也具有重要意義。
7. PHP網站開發 都需要什麼技術
html css javascript(ajax技術) mysql xml 。div訂購也可以學一下,phpcms,ecshop等一些主流建站系統最好會一種,想掙錢多最好懂門外語,會linux。
8. 學php需要什麼技術
你有什麼不懂可以上後盾人上看看,上面有很多高清教學視頻,講得都是這些知識,可以幫助你!如果不行,可以去網路搜索
9. 如何學好PHP知識
如何學好PHP知識
PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。那麼如何學好PHP知識?以下僅供參考!
具體方法如下:
一,學習Php,首先得熟悉一樣相關html技術並掌握基本的css樣式,這樣就能了解頁面的構成為學習Php打下基礎,W3C學校里有豐富的編程教程,還支持邊寫邊練。
二,學習完html基礎後,接下來就是開始正式接觸php了,但這之前還有一部,那就是配置Php開發環境Php開發環境的配置有很多種方法,不過對於初學者來說大都是採用集成環境wamp啊,phpnow,xampp,apmser直接下載,安裝,再進行一下相關的配置即可環境配置好了,可以邊寫代碼變了解PHP的基本語法運算符啊,邏輯控制啊,數組的操作,字元的操作資料庫連接,以及Mysql查詢。
三,Php基礎需要再不斷的練習中穩固,面向對象編程,對於程序來說是非常重要的了解面向對象編程的意義,類的創建、類的多態、類的集成、類的封裝熟悉MVC架構,(模型model,視圖view,控制器controller)對於開發網站來說是很有必要性的,這確保網站文件放置位置的規范,後期維護網站,找起來也是比較方便。
四,xml和mysql的學習也是必須的Mysql的增刪改查(CURD)操作必須熟爛於心熟悉mysql不同資料庫引擎的差別,以便於根據自身網站需求來建。
五,熟悉cookie和session機制,有利於你更好的把握php會話的`處理。
六,lamp是指在linux環境下搭建的Php開發環境(較wamp環境下,處理快),故而熟悉Linux也是非常很重要的。熟悉smarty能夠幫你快速熟悉使用smarty開發的框架。。
七,php的知識掌握的差不多,接下來可以接觸一些框架CI框架,YII框架,JOOMLA框架ECSHOP框架,ECMALL框架,THINKPHP框架框架能夠幫助你快速的建站。
八,最後,告訴大家如何快速提升自己的php技術。一、在技術性論壇注冊一個賬號,參與討論,查看別人發的代碼二、加入技術群,關注裡面的討論,多看看別人的程序設計思路,用的方法三、多實際操作,不懂就得問。
;