ubuntu16.04搭建nginx+php7.0-fpm
阿新 • • 發佈:2018-12-26
nginx的安裝
apt-get update
apt-get install nginx
nginx -v
php安裝
apt-get install python-software-properties software-properties-common
apt-get install php7.0-fpm php7.0-cli php7.0-mcrypt php7.0-mysql php7.0-mbstring php7.0-xml php7.0-dev php7.0-zip php7.0-gd php7.0-curl
MySQL的安裝
sudo apt-get install mysql-server mysql-client
配置nginx
nginx所有的配置在 /etc/nginx/nginx.conf中
nginx.conf配置裡面包括了
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
這兩個配置,所以這裡面的配置也是有效的。
錯誤日誌 error_log /var/log/nginx/error.log;
這裡我們把配置寫在 /etc/nginx/sites-available/default中,如下更改
server { # listen 80 default_server; # listen [::]:80 default_server; listen 80; root /usr/share/nginx/html; index index.php index.html index.htm; server_name localhost;
為nginx新增php支援
配置vi /etc/nginx/sites-available/default檔案
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#~ # With php7.0-cgi alone:
#~ fastcgi_pass 127.0.0.1:9000; #這一行是配置單純php
#~ # With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock; #這一行是配置socket,與上邊衝突
}
配置/etc/php/7.0/fpm/php-fpm-conf,在末尾新增
listen = /run/php/php7.0-fpm.sock # 與上邊配置的socket保持一致
再修改/etc/nginx/conf.d/test.conf的內容
server {
listen 80;
server_name www.abc.com abc.com;
set $root_path '/var/www/test';
root $root_path;
index index.php index.html index.htm;
#add_header Access-Control-Allow-Origin *;
try_files $uri $uri/ @rewrite;
location @rewrite {
rewrite ^/(.*)$ /index.php/$1;
}
location ~ \.php {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index /index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
- 修改完後記得
nginx -t
檢查一下是否有誤
啟動並測試
sudo service php7.0-fpm start
sudo service nginx start
在之前建立的站點根目錄中新建測試檔案
index.php
即vi /var/www/test/index.php
1.顯示php資訊的
<?php
phpinfo();
?>
2.一個測試頁面
<html>
<head>
<title>PHP 測試</title>
</head>
<body>
<?php echo '<p>Hello World</p>'; ?>
</body>
</html>
最後在客戶機訪問 ip/index.php測試是否成功,測試結果