本文目錄一覽:
- 1、怎樣在遠程 Web 服務器上部署 PHP 應用程序
- 2、服務器上怎麼安裝php程序
- 3、服務器程序源代碼分析之二:php-fpm
- 4、PHP部署開發服務器
- 5、php項目如何部署在服務器上
- 6、php程序怎麼部署運行
怎樣在遠程 Web 服務器上部署 PHP 應用程序
用scp scp 文件名 1 遠程用戶名 @IP 地址 : 文件名 2
例如 scp /tmp/project/index.php servername:/webroot
把本地index.php文件傳輸到服務器上的webroot目錄下 !
服務器上怎麼安裝php程序
你好,如果你的服務器是Windows系統,那麼你需要遠程到你的服務器,進行啟動IIS(asp環境),如果你需要php環境,你可以從xp.cn(小皮)或者bt.cn(寶塔)安裝面板
如果你的服務器是Linux,建議使用寶塔
打開終端,不同Linux系統的輸入指令不同:
Centos安裝腳本
終端輸入:yum install -y wget wget -O install.sh sh install.sh
Ubuntu/Deepin安裝腳本
終端輸入:wget -O install.sh sudo bash install.sh
Debian安裝腳本
終端輸入:wget -O install.sh bash install.sh
Fedora安裝腳本
終端輸入wget -O install.sh bash install.sh
輸入後進行安裝就可以了
服務器程序源代碼分析之二:php-fpm
php作為排名top2 互聯網開發工具,非常流行,可以參考:中國最大的25個網站採用技術選型方案
php這個名稱實際上有兩層含義
直接定義:
php-fpm從php5.3.3開始已經進入到php源代碼包,之前是作為patch存在的
很少人會去讀php本身源代碼,我6年前解決php內存泄露問題的時候做了些研究,最近再查看了一番,發現php的開發者很有誠意,這是一款非常出色的服務器軟件,支持如下
在linux服務器上,如果不設置 events.mechanism ,那麼默認就是採用epoll,所以
php-fpm的IO模型並發處理能力和nginx是完全一致
nginx以性能卓越聞名,大部分程序員都認為php效率低下,看了源代碼,才知道這是傳奇啊
在高性能部署的時候,大家往往會針對性的優化nginx 。我自己之前部署php程序也犯了錯誤,8G內存的server,php-fpm的max children都會設置128+,現在看來太多了,參考nginx的部署:
php-fpm配置為 3倍 cpu core number就可以了
php-fpm穩定性比nginx稍差 這是因為php-fpm內置了一個php解析器,php-fpm進程就和php程序捆綁了,如果php腳本寫得不好,有死循環或者阻塞在某個遠端資源上,會拖累加載它的php-fpm進程
而nginx和後端應用服務器之間通過網絡連接,可以設置timeout,不容易堵死的
php-fpm的fastcgi是短連接 我原以為是長連接的,看了代碼才知道也是短連接,處理一個request就關閉掉
php-fpm接口採用fastcgi 非常遺憾,php-fpm和fastcgi完全綁定了,無法獨立使用 。只能部署在支持http-fcgi協議轉換程序背後(nginx)。其實可以考慮在php-fpm代碼包裡面引入http協議支持,這樣php-fpm可以獨立運行,讓nodejs無話可說
php-fpm等同於OpenResty OpenResty是一個國人開發的nginx模塊,就是在nginx引入lua解釋器. 實際上,它和php-fpm的唯一差別就是一個採用php語法,一個用lua,所以OpenResty要作為nginx增強包使用還可以,要選擇它作為一個主要編程工具,沒有任何必要
從架構上來說,php-fpm已經做到最好,超過大多數 python部署工具,我再也不黑它了
PHP部署開發服務器
當然是安裝php服務器了
php是支持跨平台的,理論上是可以一次編譯四處運行的,但是有些地方還是需要注意的 比如windows系統的盤符路徑和其他系統是不一樣的,當你的程序設計不好的時候上傳下載的功能跨平台就不能用了
要發布網站首先你需要有獨立的公網ip地址然後在路由器上做端口映射。順便說一下那些所謂的共享寬帶基本都是不可以的
只要滿足3的條件當然可以
內網只要直接訪問服務器的內網ip地址就ok了
php項目如何部署在服務器上
一、阿里ECS服務器配置
1.因為線上已經有幾個站點了.所以要配置ngnix多站點
2.阿里雲ecs目錄結構,ngxin 在/etc/nginx/目錄下,配置的地方主要是nginx.config文件。或者在conf.d新建一個配置文件然後在include到nginx.config文件中
3.nginx.config新建站點信息
server {
listen 80;
server_name www.你的域名.com;
root 站點的相對路徑;
index index.php index.html index.htm;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
#try_files $uri $uri/ /index.php;
root /opt/www/pcweb/ytyy_pc;
index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }} url重寫(可以沒有)
# redirect server error pages to the static page /40x.html
#
error_page 404 /404.html; 40錯誤頁面配置
location = /40x.html {
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; 50錯誤頁面配置
location = /50x.html {
}
location ~ \.php$ {
root 站點相對路徑;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
配置文件的基本內容如上;
配置完成後測試配置文件是否正確
這樣配置就可以使用了
然後重啟nginx服務器
這樣nginx配置就結束了可以使用了。吧站點文件放到對應的目錄下面。我直接git clone過去的。
二.thinkphp項目文件轉移
本來以為上傳完就結束了。上傳上去碰到的第一個問題就是訪問頁面報錯,頁面被電信的114頁面劫持了。。。麻蛋 看不到報錯
萬能百度大法
解決方法1.internet高級選項-隱私-站點 新加阻止站點
解決方法2:控制面板-網絡和internet-本地連接-屬性-ipv4 使用如下ip
終於搞定可以看到報錯頁面了。。。。。。麻蛋。再次開啟萬能百度大法
得到最終結論是文件目錄權限引起的。thinkphp 的runtime目錄沒有寫入權限。。thinkphp文件上傳到阿里的好像都有這個問題。解決問題很簡單
進入到項目文件目錄
直接跟文件最高權限
chmod -R 777 [目錄] //linux修改文件權限
php程序怎麼部署運行
首先你要有windows2003和iis6.0(6.0以下就免談了)。
然後要安裝的東東依次為:php5.2,mysql5.0,phpmyadmin2.11
這些東西一個個去找實在是太麻煩了,幸好我們有wamp。
只要學會了安裝wamp,那麼就只剩下“配置”了。
下面所有牽涉到的文件路徑都以wamp為準,php在wamp中的目錄為wamp\bin\php\php5.2.5。
要讓iis能夠解析php,首先要把php.ini複製到c:\windows目錄下,把php5isapi.dll複製到c:\windows\system32下。
然後從windows2003的管理工具中進入iis,新添加一個web服務擴展,擴展名可以任意填寫,比如說“php服務擴展”,要求的文件則是php5isapi.dll,勾上“設置擴展狀態為允許”。
然後新建一個網站,假設已經有了一個網站,右鍵“屬性”,為網站創建一個“應用程序池”,執行權限為“腳本和可執行程序”,點擊“配置”,添加一個
“應用程序擴展”,在新彈出的窗口中,可執行文件選擇剛才的php5isapi.dll(最好是c:\windows\system32下的),”擴展
名”為.php,動作限制為“get,head,post,trace”,勾去“確認文件是否存在”
ok,這樣php就基本上配置好了,可以去網站根目錄下創建一個index.php,寫入“
?php
phpinfo();?”,然後打開瀏覽器測試一下就可以了。
首先你必須修改php.ini,找到extension_dir這個參數,假設wamp安裝在d盤,改成
extension_dir
=
“d:\wamp\bin\php\php5.2.5\ext\”,然後找到extension=php_mysql.dll和
extension=php_mysqli.dll,確保他們之前的逗號已經去掉。
接下就是關鍵了,在wamp\bin\php\php5.2.5目錄下有一個關鍵的文件libmysql.dll,昨天困擾了許久,才想起以前配置
mysql的慘痛經歷(都是wamp惹的禍,把php/mysql的安裝搞的太簡單了),這個文件一定要複製到c:\windows\system32目
錄下去,否則就算在php.ini裡面打開extension=php_mysql.dll也沒有用,當瀏覽需要連接mysql的頁面時,會報錯說
“mysql”類型不存在。
我們就遇到了這樣一個實際問題:54上已經在運行asp以及asp.net的網站,iis搶佔了80端口,apache就不能使用了,這樣難道你要別人在
單,在wamp中找到httpd.conf文件,將其中所有“80”字樣替換成你想要的端口,重啟apache就可以了。apache裡面一共有4個地方
需要修改80:
listen
80,servername
localhost:80,namevirtualhost
*:80,前2個是默認的,後2個是配置了virtualhost才會出現。/pre
評論
加載更多
原創文章,作者:P6ZRE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129408.html