ThinkPHP Nginx 安裝及設定 - Windows
BUBU 因為之前有學習 Laravel ,但是對我入門新手來說有一點高,因此老大有推一套大陸的版的 MVC 系統來做開發,老大本身也有在用這一套開發,這套在大陸那裡資源來滿多的文件都是中文比較,Laravel 大多都是原文比較多找起資料會有一點麻煩,那我來記錄一下怎麼將此開發程式怎麼安裝及應用
運行環境
- 系統環境: Windows 10
- Web 服務: Nginx 1.23.4
- PHP 服務: PHP 7.4
- 資料庫服務: MariaDB 10.10.2
環境設定
採用 Nginx 服務來運行網頁,安裝方式請參考本知識庫的 Windows 一鍵安裝
- PHP 請指定成 7.4 版本
設定 Nginx 服務設定檔
- 設定「
C:\nginx-1.23.4\conf\nginx.conf
」
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
root C:\\wamp64\\www\\tp\\public;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
index index.html index.htm index.php;
#autoindex on;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
# root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
- 程式碼說明:
在Nginx低版本中,是不支援PATHINFO的,但是可以通過在Nginx.conf(在/usr/local/nginx/conf/nginx.conf或者通過find / | grep nginx.conf來查詢位置)中配置轉發規則實現:在nginx配置檔案中新增:
location / { // …..省略部分代碼
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
- 手動增加三個行程式
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; #新增加
fastcgi_param PATH_INFO $fastcgi_path_info; #新增加
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; #新增加
}
ThinkPHP 開發程式
- 有提供三種方式下載程式包
- 官方下載,但是版本不一定會是最新的
- 官方得 GitHub 下載,版本都會是最新的包含正在發開中的程式。
- 使用 Composer 作曲家 服務來下載程式來做開發
那以上三種前面兩種我都試過了服務沒有辦法啟來,使用 Composer 作曲家,方式來下載開發程式
- 將程式放置在 Web 目錄下
- 開啟瀏灠器輸入web服務主機,如果連線成功的話會出現下面的畫面
補充說明
- 指令列方式來運行 ThinkPHP 服務,要在 ThinkPHP 所下載目錄下執行此指令
php think run