服务器部署和配置

虽说今天有看四章内容(Hosting,Provisioning,Tuning,Deployment),😂但好像都是以前看到过的,要说有帮助的,大概就是那个自动部署了,但现在还没尝试过,等我尝试了自动部署,就再写一篇。

服务器

服务器,我一般买 Vultr 和 阿里云 的。阿里云有学生套餐,Vultr 的话可以绑定域名(阿里绑域名要备案比较麻烦),买好服务器,拿到的就是一个纯净的系统。

配置

把服务器配置成生产环境。
(一般买的都是 ubuntu 14.04 64位)
我就把我的祖传脚本贡献出来了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sudo apt-get update
sudo apt-get install -y language-pack-en-base
locale-gen en_US.UTF-8
sudo apt-get install software-properties-common
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update
$ sudo apt-get --purge remove apache2
$ sudo apt-get --purge remove apache2.2-common
$ sudo apt-get autoremove
sudo apt-get -y install php7.1
sudo apt-get -y install php7.1-mysql
sudo apt-get -y install php7.1-fpm
apt-get install -y php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring
apt-get install -y vim htop git zip
sudo apt-get -y install nginx
sudo apt-get -y install mysql-server-5.6

到这为止,该安装的都安装好了,然后就要将一些配置改一下了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
sudo vim /etc/php/7.1/fpm/php.ini // 将cgi.fix_pathinfo=1这一行去掉注释,将1改为0
sudo vim /etc/php/7.1/fpm/pool.d/www.conf // 配置这个 listen = /var/run/php7.1-fpm.sock
sudo service php7.1-fpm restart
sudo vim /etc/nginx/sites-available/default
/** nignx配置
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/laravel-ubuntu/public;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php?$query_string;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php7.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
**/

这里呢主要是改 fpm 的配置和 nginx 的配置

部署

1
2
3
4
5
6
7
8
9
10
11
12
13
// mkdir /var/www
sudo chown -R www-data:www-data /var/www
vim .env
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -V
composer install
sudo chmod -R 775 storage/
sudo service nginx reload
sudo service php7.1-fpm restart
sudo chown -R www-data:www-data /var/www/hood/

创建文件夹,分配文件夹权限,然后在 nginx 里配置到此目录,然后将项目放进来就能运行了。

感觉是不是还蛮简单的,如果只是要运行的化确实是这么简单,但如果要知道其中的原理,就还要花点心思,像 fpm 与 php 之间的线程交流,nginx 为什么要这样配置,等等还需要我去挖掘。

最后

希望以后我部署项目的时候有机会给大家出一篇图文并茂版的部署指南,今天因为没去实际操作(😂因为以前操作好几遍了),所以下次在给大家放图文版的。