最近,公司人手不夠,找外包團隊做了個專案,php做的,對方測試是部署到寶塔上的。
對方做方,直接將寶塔上程式碼下載下來丟給了我們。
專案做的超級爛,服務態度還很差。主要是我們提前把款打給了對方,看來以後專案沒部署完,沒正式執行不能給尾款啊!最主要是價格還不低,比市場價稍高一點,因為是朋友介紹的,也不好意思砍價。
對方一問三不知,回答永遠只有一句話:我們都在寶塔部署的,之前也沒在其它伺服器上配過。
沒辦法只能自己摸索著幹了
我們的機房伺服器環境:
Linux CentOS6.10
MYSQL5.6
JDK1.8
Redis5.0.14
Nginx1.20.1
一、第一步是搭建PHP環境
請看上篇文章,下面有送門
傳送門:https://www.cnblogs.com/hunttown/p/16287944.html
二、配置Nginx
因為我們有一個主入口,也是nginx做的負載均衡,所以結構為:
主伺服器nginx -----> 從伺服器nginx -----> php7.3
1、先來看一下主伺服器的nginx配置(Https轉發)
upstream mydomain { #你要轉發的伺服器和埠 server 192.168.200.46:80 weight=10 max_fails=2 fail_timeout=30s; } server { #監聽80埠和域名,如果是http請求,則要自動跳轉到https listen 80; server_name www.domain.com; rewrite ^(.*)$ https://$host$1 permanent; } server { #監聽443埠 listen 443 ssl; server_name www.domain.com; #配置Https證照 ssl_certificate ca/www.domain.com/7923651_www.domain.com.pem; ssl_certificate_key ca/www.domain.com/7923651_www.domain.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; #日誌檔案儲存位置 access_log logs/www.domain.com/wwww.domain.com_access.log main; error_log logs/www.domain.com/wwww.domain.com_error.log warn; location / { proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://mydomain; #WebSocket support (nginx 1.4) proxy_http_version 1.1; } location /logs/ { autoindex off; deny all; } }
2、再看從伺服器配置(從伺服器不需要https配置)
server { #監聽80埠,從主伺服器轉發過來的,要和主伺服器轉發的一致 listen 80; server_name wwww.domain.com; #配置你的專案目錄,這個地方很重要 root /usr/local/webroot/myproject/public; index index.html index.php index.htm default.php default.htm default.html; location / { index index.php index.html index.htm; #重寫規則,偽靜態 if (!-e $request_filename){ rewrite ^/(.*)$ /index.php?s=$1; } } location ~ \.php { include fastcgi_params; #pathinfo,用於存放pathinfo資訊 set $path_info ""; #pathinfo,用於存放真實地址 set $real_script_name $fastcgi_script_name; #如果地址與引號內的正規表示式匹配 if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") { #將檔案地址賦值給變數 $real_script_name set $real_script_name $1; #將檔案地址後的引數賦值給變數 $path_info set $path_info $2; } #配置fastcgi fastcgi_param SCRIPT_FILENAME $document_root$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; #php服務指向 fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9001; include fastcgi.conf; } access_log logs/wwww.domain.com/wwww.domain.com_access.log main; error_log logs/wwww.domain.com/wwww.domain.com_error.log warn; }
三、啟動服務就可以執行了,至此配置完成
當然期間還遇到了一些小問題,傳送門:https://www.cnblogs.com/hunttown/p/16373952.html