[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境

earnpls • 1357 次浏览 • 7 个回复 • 2017年07月18日

今天我们讲解一下如何在ubuntu16.04中部署LNMP环境(php7+maridb并且开启maridb远程以及多域名访问 )并配置laravel项目。

一、更新源列表

sudo apt-get update 

二、无法执行sudo命令解决办法,如果不出现就跳过

如果你无法执行sudo命令,出现Ubuntu sudo: unable to resolve host XXX如下:

 Ubuntu sudo: unable to resolve host XXX

解决办法如下,如果没有出现就跳过这一步

# vim /etc/hosts
# 找到127.0.0.1 localhost
127.0.1.1 这里改成你的主机名
# 如果没有这一行 自行添加上去就行了

三、接下来我们开始安装nginx

安装nginx,我这里安装nginx/1.13.0 (Ubuntu),你的可能不一样,不过没有关系。

sudo apt-get install nginx

安装成功,我们来启动一下nginx,然后我们访问我们的IP地址,就可以访问到nginx欢迎页面

sudo service nginx start

四、安装配置maridb

为什安装maridb,MariaDB是Mysql的升级版,性能有明显的提高,

安装maridb
apt-get install mariadb-server python-pymysql 
配置maridb
# 登录mysql
mysql -uroot -p  
# 设置root账号的密码,建议弄复制一点比较安全
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('sD9854fals87s34GB98s');

# 切换数据库
use mysql;
# 让我们的mysql允许远程访问
grant all privileges on *.* to root@"%" identified by "sD9854fals87s34GB98s" with grant option;
# 刷新一下数据库配置
flush privileges;
查看3306端口是否正常
root@node1:~# netstat -an | grep 3306
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

注意:现在的3306端口绑定的IP地址是本地的127.0.0.1

root@node:~# vim /etc/mysql/mariadb.conf.d/50-server.cnf

# 找到如下代码,前面加#注释掉
bind-address = 127.0.0.1

# 开启log-bin方便数据误操作恢复[mysqld]下
log-bin=mysql-bin

五、安装PHP7

1、直接运行sudo apt-get php7.0-fpm命令安装 PHP可能会报错误,如果不报错跳过即可:
E: Unable to locate package php7.1
E: Couldn't find any package by regex 'php7.1'

原因是 PHP7 等并不在 Ubuntu的软件库中,因此要使用 PPA ppa:ondrej/php 库,如果提示

sudo: apt-add-repository: command not found

所以我们需要安装一下python-software-properties

apt install software-properties-common
apt-get install python-software-properties
2、安装php7,使用下列命令:
sudo apt-add-repository ppa:ondrej/php
sudo apt-get update
sudo apt install php7.0-fpm

安装 PHP7.0包的同时也安装了 PHP7.0-CLI,可以使用 php -v 命令来查看 PHP 版本信息。

到此配置文件基本ok了,我们在/var/www/html目录下,新建个index.php测试下看看

<?php
    phpinfo();
?>

五. 配置nginx,允许laravel访问,开启重写路由

1、创建网站的根目录
sudo mkdir -p /var/www
2、配置nginx服务器,以后我们会经常在这里修改配置
sudo vim /etc/nginx/sites-available/default

打开nginx的配置文件之后,找到server这一块,大概是长这个样子的

server {
        # 监听的端口,http为80,https为443
        listen80 default_server;
        listen [::]:80 default_server ipv6only=on;
        # root代表的为项目地址
        root /usr/share/nginx/html;
        # index代表默认访问的主页
        index index.html index.htm;
        # server_name代表域名地址
        server_name localhost;
        # location代表从写路由
        location / {
                try_files$uri$uri/ =404;
        }
}

好的,我们来修改成我们laravel能够使用的配置

server {
        listen 80;
        root /var/www/laravel/public;  #访问文件目录
        index index.php index.html index.htm;
        server_name a.com;   #将server_domain_or_IP修改为你的公网IP或者域名
        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:/var/run/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
        location ~ /\.ht {
                deny all;
        }
}

接下来我们重启一下nginx让配置生效

sudo service nginx restart

这样我们就可以访问我们的laravel项目了,不过你可能需要一些php拓展,建议缺啥安装啥:

sudo apt install php-mysql php-curl php-mcrypt php-gd php-memcached php-redis  #此方式安装会同时在多个版本下面分别安装

#还有一些库
sudo apt install php7.0  #按tab 可以显示如下一些库
php7.0            php7.0-fpm        php7.0-mysql      php7.0-sqlite3
php7.0-bcmath     php7.0-gd         php7.0-odbc       php7.0-sybase
php7.0-bz2        php7.0-gmp        php7.0-opcache    php7.0-tidy
php7.0-cgi        php7.0-imap       php7.0-pgsql      php7.0-xml
php7.0-cli        php7.0-interbase  php7.0-phpdbg     php7.0-xmlrpc
php7.0-common     php7.0-intl       php7.0-pspell     php7.0-xsl
php7.0-curl       php7.0-json       php7.0-readline   php7.0-zip
php7.0-dba        php7.0-ldap       php7.0-recode    
php7.0-dev        php7.0-mbstring   php7.0-snmp      
php7.0-enchant    php7.0-mcrypt     php7.0-soap

原创文章,转载请注明 :[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 - Laravel学习网
原文出处: https://phpartisan.cn/news/1.html
问题交流群 :168117787
提交评论
要回复文章请先登录注册
用户评论
  • Song Song 2017-07-16 12:00:58 回复

    ubuntu 18.04连接mysql需要加上sudo

    sudo mysql -uroot -p
  • Song Song 2017-07-16 12:00:58 回复

    设置mysql默认密码

    sudo mysql_secure_installation
  • Song Song 2017-07-16 12:00:58 回复

    如果想安装php 7.2版本,可以直接将7.0更新成php 7.2即可

  • Song Song 2017-07-16 12:00:58 回复

    重启php7.0使用

    sudo service php7.0-fpm restart
  • Song Song 2017-07-16 12:00:58 回复

    如果mysql配置后还是无法连接,可以尝试重启mysql,命令如下:

    sudo service mysql restart 
  • 小伙伴 小伙伴 2017-07-16 12:00:58 回复

    我这发现的一个问题说一下,Nginx配置文件里fastcgi_pass的地址有的应该是unix:/var/run/php/php7.0-fpm.sock;按教程配置失败的同学可以改过来试试

laravel 5.* 轻松实现Artisan的开发创建以及实现简单实例