1. php網站程序開發需要哪些基礎
php基礎語法,了解web開發流程,session,cookie機制
熟悉一款框架, thinkphp, yii,phlacon,swoft(swoole)。現在還得熟悉docker,docker-compose使用,能夠使用linux環境寫代碼(推薦deepin系統)
會使用redis,現在基本都是redis做緩存中間件
會配置nginx,linux下源碼編譯nginx(網路能搞定即可,至少知道./configure && make && make install)
會sql語句, linux下源碼編譯mysql(網路能搞定即可,至少知道./configure && make && make install)
基礎的html, js, css閱讀修改能力
編程思想,這個很抽象。需求解決能力,演算法轉變為代碼能力。比如數據分頁怎麼做,資料庫連表怎麼連能拿到預期結果。算是綜合能力
最重要的, php大概100多個常用函數必須知道,背下來,很久之前面試有人問過array_column函數作用。
其他問題都是造火箭,看面試題即可。
2. 怎麼使用Docker搭建PHP開發環境
在Docker流行之前,要搭建開發環境通常有兩種選擇:一種是使用wamp、xampp、mamp等集成開發環境安裝包,另外一種就是使用普通虛擬機來安裝linux伺服器,然後通過下載一鍵安裝包(如:lnmp)或者逐個安裝做需要的軟體。前者雖然簡單,但太不靈活,想要安裝額外的軟體或者版本會很麻煩或者乾脆不知道如何下手;後者除了費時費力,佔用本機資源過多,可能會導致系統運行緩慢,而且如果你忘了及時生成快照,一旦失誤,追悔莫及。
幸好,Docker來了!它簡單易用,靈活多變,方便迅捷,掃除了以上種種弊端。如果你想稍微詳細的認識下這位虛擬化界的明星,傳送門( 快速理解Docker )。
安裝Docker
平時開發的環境一般都是Mac或者windows,Linux暫時沒有研究,所以接下來只針對前兩者寫下步驟,這兩個平台,官方都推薦了兩種安裝方式:app和工具包(toolbox)。註:app方式對系統版本和配置會有一定要求,而且Windows需要你安裝微軟虛擬化產品Hyper-V,具體見app鏈接頁面。
APP
https://docs.docker.com/docke...
https://docs.docker.com/docke...
工具包
https://www.docker.com/proc...
以上方式本質上都會在你的系統中安裝docker-engine、docker-machine、docker-compose和VirtualBox(除了Windows的app方式)。因為docker高度依賴linux內核提供的cgroup,namespace 等特性和介面,所以mac和windows平台需要使用docker-machine和虛擬機在後台創建運行一個linux內核。
而我的安裝方式就是直接在 Mac 上使用brew,如果你未曾安裝brew,則在終端執行以下代碼:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝docker所需要的包:
brew install docker docker-machine docker-compose virtualbox
創建一個docker-machine:
docker-machine create -d virtualbox default
註:-d 指定使用virtualbox來創建default 為machine名稱
告訴主機如何找到docker-machine:
echo $(docker-machine env ) >> .zshrc
註:這里的.zshrc是我的用戶配置文件,如果你用bash,可以改為.bash_profile。
啟動docker-machine:
docker-machine start default Compose你的應用
docker-compose是用於定義和運行復雜Docker應用的工具。你可以在docker-compose.yml文件中定義一個多容器的應用,然後使用一條命令來啟動,然後所有預先定義好的操作都會被自動完成。
為了不重復造輪子,直接使用github上的第三方包。當然你也可以親自構建每一個你所需要的容器鏡像,然後用docker-compose.yml將所有容器組織起來運行,但這需要你具備一定的linux基礎和docker的運行機制和相關語法。
本人正在學習 laradock 這個基於Docker的開發環境包,然後根據自己的需要刪除了一些我認為不常用的部分、修改了部分配置以及增加了Elasticsearch容器,最終新開了自己的倉庫 DevDock 。當然,也推薦使用laradock。
我的倉庫目前支持的容器組合:
nginx , php-fpm , mysql , redis , mongo , apache2 , memcached , elasticsearch , workspace .
註:workspace和php-fpm一般會被其他容器所依賴,所以會自動運行,啟動時不必指定。
進入到你的應用的上級目錄:
git clone https://github.com/RystLee/DevDock.git
修改hosts
如果直接安裝啟動,是可以通過Docker IP : 192.168.99.100,就能直接訪問nginx的,但一般而言為了方便記憶,我們會去修改hosts文件,增加一條:
192.168.99.100 laravel.dev
修改你的nginx中的站點配置文件:
在DevDock目錄下找到nginx,修改sites目錄下的站點配置文件,通過修改本地的hosts來自定義域名,並在nginx容器中的sites文件夾下,修改相應的域名映射。
server_name laravel.dev
安裝啟動應用
cd DevDock docker-compose up -d nginx mysql ... # 後面跟上你想使用的容器即可
然後,耐心地等待開發環境自動搭建完成即可,如果中途出現錯誤,一般是因為GFW,網路會不太通暢,重新執行一兩次就好,完成之後,打開瀏覽器,訪問: http://laravel.dev 即可。
3. nextcloud硬體要求
編輯Docker-compose配置文件
拷貝以下內容並保存為docker-compose.yml,修改域名等相關參數
這裡麵包括四個容器服務,nextcloud,nextcloud-db(mysql),solr和redis,其中nextcloud是必須的,後面的服務不使用可以刪除配置(同時要刪除nextcloud中的依賴)。比如用戶數少不想使用mysql,可刪除depends_on:後面的- nextcloud-db以及後面的nextcloud-db配置段。nextcloud-db建議企業用戶使用,redis作為緩存可以讓伺服器響應速度變得更快,solr提供了更好的搜索功能,你可以按需要自己配置。
運行docker容器
進入在docker-compose.yml目錄
運行資料庫容器(不使用Mysql略過)
docker-compose up -d nextcloud-db
運行其他容器
docker-compose up -d
redis配置
如果doker-compose.yml添加了redis服務,需要編輯php配置來啟用服務,配置文件路徑是/docker/nextcloud/config/config.php
重啟reverse容器
docker restart reverse
配置solr
默認的文件查找功能只相當於一個列表過濾,無法搜索子文件夾,啟用nextant插件藉助solr服務可實現全文搜索,不光搜索文件名,還可以按文檔的內容搜索。前提是在docker-compose.yml中配置了solr。
在配置過程中發現nextant無法連接solr,通過docker logs solr查看到錯誤信息「
cp: can't create directory '/opt/solr/server/solr/mycores/nextant': Permission denied」,
原來是沒有許可權,執行以下命令修改許可權:
sudo chmod -R 777 /docker/nextcloud/solr
重啟solr
docker restart solr
通過docker logs solr查看,solr正常啟動
登錄設置
通過瀏覽器訪問你的網站,第一次打開界面是這樣的。
首次打開
輸入用戶名密碼來創建管理員帳號
使用Nextant開啟全文搜索
打開Nextant的前提是前面安裝了solr服務,
管理員帳號登錄,點擊右上角齒輪圖標,點擊"+應用",點擊"應用軟體包",點擊files,找到Nextant,點擊啟用;
點擊右上角齒輪圖標,選擇管理,點擊其他設置,找到Nextant (全文搜索)選項;
在Address of your solr servlet中輸入http://solr:8983/solr ,點擊測試並保存,出現下圖中右側綠色對號提示即為連接成功。
Nextant配置
發現Nextcloud
總體來說,Nextcloud是一款出類拔萃的私有雲盤服務,支持windows、mac、linux、安卓、ios主流操作系統。提供了豐富的插件可以在線安裝,比如在線編輯流程圖編輯,office文件編輯、日歷、聯系人、筆記、視頻聊天、郵件等等。
主界面
[圖片上傳失敗...(image-25c2ed-1512026386267)]
4. 如何在線安裝docker compose詳細步驟
實際上到目前為止還不能直接在Windows上安裝Docker Compose,所以這篇文章要講的是如何在Windows上使用Docker Compose。
先決條件: Docker Machine 已經安裝完畢。
解決方案: 將 Docker-Compose 安裝在Boot2Docker虛擬機中。
1. SSH to VM:
[plain] view plain print?
<span style="font-size:14px;">$ docker-machine ssh <docker machine name></span>
2.獲得root用戶許可權:
[plain] view plain print?
<span style="font-size:14px;">$ sudo -i</span>
3. 運行以下兩條命令(注意:不要使用官方指南中「Install as container」章節中提供的命令。親測無效!)
[plain] view plain print?
<span style="font-size:14px;">$ curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose</span>
[plain] view plain print?
<span style="font-size:14px;">$ chmod +x /usr/local/bin/docker-compose</span>
4. 回到docker用戶許可權:
[plain] view plain print?
<span style="font-size:14px;">$ exit</span>
5. 測試 Docker-Compose 安裝成功:
[plain] view plain print?
<span style="font-size:14px;">$ Docker-Compose --version</span>
5. 如何 在Docker窗口中部署PHP開發環境
環境部署一直是一個很大的問題,無論是開發環境還是生產環境,但是 Docker
將開發環境和生產環境以輕量級方式打包,提供了一致的環境。極大的提升了開發部署一致性。當然,實際情況並沒有這么簡單,因為生產環境和開發環境的配置是完全不同的,比如日誌等的問題都需要單獨配置,但是至少比以前更加簡單方便了,這里以
PHP 開發作為例子講解 Docker 如何布置開發環境。
一般來說,一個 PHP 項目會需要以下工具:
Web 伺服器: Nginx/Tengine
Web 程序: PHP-FPM
資料庫: MySQL/PostgreSQL
緩存服務: Redis/Memcache
這是最簡單的架構方式,在 Docker 發展早期,Docker 被大量的濫用,比如,一個鏡像內啟動多服務,日誌收集依舊是按照 Syslog
或者別的老方式,鏡像容量非常龐大,基礎鏡像就能達到 80M,這和 Docker 當初提出的思想完全南轅北轍了,而 Alpine Linux
發行版作為一個輕量級 Linux 環境,就非常適合作為 Docker 基礎鏡像,Docker 官方也推薦使用 Alpine 而不是 Debian
作為基礎鏡像,未來大量的現有官方鏡像也將會遷移到 Alpine 上。本文所有鏡像都將以 Alpine 作為基礎鏡像。
Nginx/Tengine
這部分筆者已經在另一篇文章 Docker 容器的 Nginx 實踐中講解了 Tengine 的 Docker 實踐,並且給出了
Dockerfile,由於比較偏好 Tengine,而且官方已經給出了 Nginx 的 alpine 鏡像,所以這里就用
Tengine。筆者已經將鏡像上傳到官方 DockerHub,可以通過
<code>docker pull chasontang/tengine:2.1.2_f</code>
獲取鏡像,具體請看 Dockerfile。
PHP-FPM
Docker 官方已經提供了 PHP 的 7.0.7-fpm-alpine 鏡像
這樣解決就可以了,簡單粗暴,個人建議還是去後盾網去經常看看教學視頻學習學習吧
6. 如何在 Docker 容器中架設一個完整的 WordPress 站點
1、安裝docker、docker-compose
yuminstalldocker
yuminstalldocker-compose
2、編輯docker-compose.yum文件
vidocker-compose.yum
mysql:
image:mysql:5.7
environment:
-MYSQL_ROOT_PASSWORD=yourpassword
-MYSQL_DATABASE=wordpress
web:
image:wordpress:4.9.7-php7.0-apache
links:
-mysql
environment:
-WORDPRESS_DB_PASSWORD=yourpassword
ports:
-"0.0.0.0:80:80"
working_dir:/var/www/html
volumes:
-wordpress:/var/www/html
3、啟動容器
docker-compose
4、查看容器是否正常運行
dockerps-a
一切正常的話就可以訪問了
關於docker搭建wordpress中出現的問題請參考:centos下基於docker安裝wordpress。
7. 如何使用docker中的php環境來調試代碼
1.安裝xampp後,打開php.ini文件,取消最後面的[XDebug]的注釋,特別注意 一定要打開元調試功能:xdebug.remote_enable = 1,重啟xampp的apache服務。
2.安裝chrone瀏覽器的php調試插件:xdebug heler。
3.在eclipse-php-helios-SR2-win32 的首選項 中設置 php excutables,指向xampp中的php安裝路徑,且選擇xdebug作為調試器。
4.在debug處選擇xdebug,且php excutables 選擇上一步設置的執行環境即可。配置installed Debugger 裡面的xdebug,一定要
將Accept remote session 設置loaclhost 或者any,否則 eclipse裡面是不會停在斷點處的。
5.在eclipse中設置斷點,然後chrone 瀏覽器中發起調試。
8. 怎麼樣使用Docker部署一個PHP開發環境
安裝Docker
平時開發的環境一般都是Mac或者Windows,所以接下來只針對前兩者寫下步驟,這兩個平台,官方都推薦了兩種安裝方式:app和工具包(toolbox)。註:app方式對系統版本和配置會有一定要求,Mac版本會自動為你安裝好VM(虛擬機),但Windows需要你安裝微軟虛擬化產品Hyper-V,而toolbox方式則需要你額外安裝virtualbox來作為docker的VM。