Ubuntu 系統下部署nginx 和 php 7.2

listenon發表於2018-07-04

1、跑命令

sudo apt-get update
sudo apt-get upgrade複製程式碼

2、安裝add-apt-repository命令

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php && sudo apt-get update
sudo apt-get -y install php7.2-fpm複製程式碼

3、安裝常用擴充套件

sudo apt-get install php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml複製程式碼

4、安裝nginx

sudo apt-get install nginx
複製程式碼

5、安裝mysql

#切換管理員許可權
sudo su
#安裝mysql伺服器端和客戶端
apt-get install mysql-server mysql-client複製程式碼

6、編輯nginx配置檔案

cd /etc/nginx/sites-available
cp default php
vim php
cd sites-enabled
rm default
ln -s /etc/nginx/sites-available/php /etc/nginx/sites-enabled/php

server {
#注意,一臺伺服器,只能有一個default_server!!!其他專案配置檔案,直接將default_server這個單詞刪掉即可。
listen 80;
#listen [::]:80 default_server;
#自己的專案路徑
root /var/www/cms;
# Add index.php to the list if you are using PHP
index index.html index.htm index.php index.nginx-debian.html;
#改成自己的真實域名,如果不改表示本機(localhost)
server_name _;
#根據框架需求,配置url重寫
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

   location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/run/php/php7.2-fpm.sock;
      }
#或者
  location ~ \.php$ {      
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }  
}
複製程式碼

7、thinkphp配置

修改這個配置檔案
location / {
    if (!-e $request_filename) {
    rewrite  ^(.*)$  /index.php?s=$1  last;
    break;
    }
}複製程式碼

8、laravel 配置

location / {
    try_files $uri $uri/ /index.php?$query_string;
}複製程式碼

9、重啟Nginx和php7.2-fpm

service nginx restart
nginx -t複製程式碼

10、修改許可權,上傳專案(laravel只需給public和storage最高許可權)

cd /var/www
chmod -R 777 cms複製程式碼


相關文章