Ubuntu 16.04 環境安裝部署 專案部署文件
阿新 • • 發佈:2018-12-28
環境版本
Ubuntu 16.04
Nginx 1.15.5
PHP 7.3.0
MySQL 5.7
Composer 1.7.2
Git 2.7.4
安裝 Nginx
首先,新增 nginx_signing.key
$ wget http://nginx.org/keys/nginx_signing.key
$ wget http://nginx.org/keys/nginx_signing.key
新增 Nginx 官方源
$ echo "deb http://nginx.org/packages/ubuntu/ trusty nginx" & gt;> /etc/apt/sources.list
$ echo "deb http://nginx.org/packages/ubuntu/ trusty nginx" >> /etc/apt/sources.list
如果你想安裝Nginx1.9以上的版本可以在packages
後新增/mainline
,這是主線版本
$ echo "deb http://nginx.org/packages/mainline/ubuntu/ trusty nginx" >> /etc/apt/sources.list
$ echo "deb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx" >> /etc/apt/sources.list
更新源並安裝 Nginx
$ sudo apt-get update
$ sudo apt-get install nginx
// 開啟 nginx
$ /usr/sbin/nginx
Nginx配置
在 /etc/nginx/nginx.conf
檔案中的第一行檢視你的 Nginx 使用者。
$ less /etc/nginx/nginx.conf
修改使用者和組
PHP7 預設的使用者和組是www-data
。 如果你的 Nginx 使用者名稱也是www-data
,那麼不需要做下面的修改。 如果你的 Nginx 使用者名稱是 nginx,那麼你可以在/etc/nginx/nginx.conf檔案中將它修改成www-data
.
$ sudo vi /etc/nginx/nginx.conf
重啟 Nginx 服務
$ nginx -s reload
Laravel 專案 Nginx 配置
在 /etc/nginx/conf.d
新增一個新的配置即可,配置如下
server {
listen 80;
server_name {domain_name};
charset utf-8;
access_log /var/log/nginx/{name}.access.log main;
error_log /var/log/nginx/{name}.error.log warn;
root /var/www/{project_name}/public;
index index.php index.html index.htm;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/xml text/css;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_X_FORWARDED_FOR '';
fastcgi_param HTTP_X_REAL_IP '';
fastcgi_param HTTP_CLIENT_IP '';
fastcgi_param HTTP_PROXY '';
include fastcgi_params;
}
}
> {domain_name} - 替換成域名
> {name} - 儲存的日誌名
> {project_name} - 專案名字
> root 是專案存放的地址,這個根據自己實際情況修改
配置好後重啟 Nginx 服務
$ nginx -s reload
安裝 PHP
新增 PPA
$ sudo apt-get install python-software-properties software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
安裝 PHP7 以及所需的一些擴充套件
$ sudo apt-get install php7.3-fpm php7.3-mysql php7.3-common php7.3-curl php7.3-cli php7.3-mbstring php7.3-xml php7.3-bcmath
配置 PHP7
$ sudo vim /etc/php/7.3/fpm/php.ini
找到cgi.fix_pathinfo
選項,去掉註釋,然後將值設定為0
cgi.fix_pathinfo=0
重啟 PHP7
$ sudo service php7.3-fpm restart
安裝MySQL
$ sudo apt-get install mysql-server-5.7 mysql-client-5.7
途中會提示設定MySQL的密碼,安裝後執行:
$ mysql -uroot -p
安裝 Git
$ sudo apt-get git
安裝 Composer
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/bin/composer
安裝 Certbot
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
給專案設定證書,此命令會自動設定 nginx 配置,無需手動設定。
$ sudo certbot --nginx
設定部署公鑰
為了方便部署等,這一步必須要設定,首先生成 ssh-key
$ ssh-keygen -t rsa -b 4096
將對應的公鑰複製,並在對應的專案倉庫部署公鑰處設定讀許可權
$ cat ~/.ssh/id_rsa.pub
安裝 Redis
$ sudo apt-get install redis-server
使用
$ redis-cli
安裝專案
下載專案
$ cd /var/www
$ git clone [email protected]....
設定專案訪問許可權
$ chown -R www-data:www-data {project_directory}
> 切忌:不要將專案許可權設定為 777,專案許可權只能設定為 755
安裝專案依賴
$ composer install -vvv
設定專案配置
$ cp .env.example .env