Ubuntu16.04 安装 PHP7.1+Nginx 配置多站点

前期准备

更新 apt-get

sudo apt-get update

安装常用工具

sudo apt-get install -y curl vim
sudo apt-get install git
sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
// 安装必要/可选的包
sudo apt-get install zip unzip php-zip

解决有可能存在的语言问题

apt-get install -y language-pack-en-base
locale-gen en_US.UTF-8
export LANG=en_US.UTF-8
安装Nginx

安装

sudo apt-get install -y nginx

配置文件位置

> /etc/nginx/nginx.conf

> /etc/nginx/conf.d/*.conf

默认主目录

> /usr/share/nginx/html/

管理nginx服务

sudo service nginx start // 启动
sudo service nginx stop // 停止
sudo service nginx restart // 重启

测试
curl localhost

安装 PHP7

# 添加php的仓库
sudo apt-get install -y software-properties-common
#> 中途按下回车
sudo add-apt-repository ppa:ondrej/php

# 安装php7.0,可以选择指定版本,我看了下5.4以上的有,安装前先使用apt-cache search php7.0类似命令搜索下
sudo apt-get update
中途报错
1. W: GPG error: http://ppa.launchpad.net trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4F4EA0AAE5267A6C

# 注意后面的KEY要对应
gpg --keyserver keyserver.ubuntu.com --recv 4F4EA0AAE5267A6C
gpg --export --armor 4F4EA0AAE5267A6C > key.asc
cat key.asc | sudo apt-key add -

sudo apt-get install -y php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-xml php7.0-mcrypt php7.0-json php7.0-gd php7.0-mbstring php7.0-zip php-mongodb php-memcached php-redis

安装 php7.1

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 -y install php7.1
sudo apt-get -y install php7.1-mysql
sudo apt-get install php7.1-fpm

apt-get install php7.1-curl php7.1-xml php7.1-mcrypt php7.1-json php7.1-gd php7.1-mbstring




# 测试 (如果有结果,则表示安装成功)
php -v

配置php.ini

vim /etc/php/7.1/fpm/php.ini

将cgi.fix_pathinfo=1这一行去掉注释,将1改为0

> / 是vi查找的命令

配置php-fpm
sudo vim /etc/php/7.1/fpm/pool.d/www.conf

修改

listen = /var/run//php7.1-fpm.sock
配置nginx

vim /etc/nginx/sites-enabled/default
    1. 将`index index.html index.htm;`改成`index index.php index.html index.htm;`
    2. 在`service`里面,`location /{}`下面增加以下配置
          location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
            # With php5-cgi alone:
            # fastcgi_pass 127.0.0.1:9000;
            # With php5-fpm:
            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;
          }
    3. 修改nginx.conf文件
        vi /etc/nginx/nginx.conf
        # 在 http{ 括号结束之前加上以下代码
        include /apps/vhost/*.conf;

创建目录

# 创建项目目录,并给权限
mkdir /apps
chmod -R 777 /apps/
# 创建vhost目录,并给权限
mkdir /apps/vhost
chmod -R 777 /apps/vhost
创建项目 vhost(nginx) 配置文件
vi /apps/vhost/demo.cc

.conf 模版

server {
    listen 80;
    root /apps/demo/public;
    index index.php index.html index.htm;
    server_name demo.com demo.cc;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

重启

启动php-fpm

service php7.1-fpm start

重启 Nginx ,检测配置是否成功

# service nginx stop
# service nginx start
service nginx reload

安装MySQL

安装过程中会提示输入密码及确认密码,输入即可

apt-get install -y mysql-server-5.6

测试

输入密码后进入到mysql表示安装成功

退出

service mysql start
mysql -uroot -p

exit

配置composer

安装composer

sudo curl -sS https://getcomposer.org/installer | sudo php -d detect_unicode=Off

更改文件权限

sudo chmod a+x composer.phar

切换到全局安装文件夹

sudo mv composer.phar /usr/local/bin/composer

更新版本

sudo composer self-update

将 Composer 源更换为国内

composer config -g repo.packagist composer https://packagist.phpcomposer.com
本地生成密钥,配置到 coding 项目中
// 47.92.38.123 是服务器密钥
cd ~
ssh-keygen -t rsa -C "47.92.38.123" //一直按回车
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub
git 下载项目
cd /apps/
git@git.coding.net:demo/d.git
部署laravel项目
sudo composer install //加载项目依赖
sudo chmod -R 777 storage //给项目权限
sudo chmod -R 777 bootstrap/cache
cp .env.example .env //配置项
php artisan key:generate //配置项目密钥
git config core.filemode false //设置忽略 给文件权限造成的Git版本冲突

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容