美文网首页
ubuntu16+lnmp环境搭建 笔记整理

ubuntu16+lnmp环境搭建 笔记整理

作者: pillow减 | 来源:发表于2019-07-18 10:13 被阅读0次

    Ubuntu16.04 lnmp 环境搭建 每台电脑的环境的不完全一样,下面仅仅是个人经验总结,请勿照搬

    1.nginx 安装

    sudo apt-add-repository ppa:nginx/stable

    sudo apt-add-repository ppa:ondrej/php

    sudo apt update

    sudo apt install -y nginx

    sudo nginx

    之后访问ip 出现nginx 欢迎界面

    2.安装php

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

    注意:sudo apt-cache search php7* 可以查询PHP模块扩展

    3.安装mysql

    sudo apt –y install mysql-server mysql-client

    注意:期间要设置密码,填两次密码,

    如果自動安裝的是5.7版本可能沒有提示密碼輸入,安裝完成以後按照以下步驟改密碼:

    1.进入到etc/mysql 目录下,查看debian.cnf文件

    2.在debian.cnf文件中找到用户名,密码 ,使用此账号登录mysql

    3.show databases;

    use mysql;

    update user setauthentication_string=PASSWORD("自定义密码") where user='root';

    update user setplugin="mysql_native_password";

    flush privileges;

    quit;

    4.重啓mysql/etc/init.d/mysql restart;

    注意:查看nginx 和fastcgi通信有2种方式,一种是TCP方式,还有种是UNIX Socket方式。

    查看命令如下:

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

    默认是socket方式 listen = /run/php/php7.1-fpm.sock

    另外一种TCP方式 #listen = 127.0.0.1:9000

    检查配置文件:

    sudo php-fpm7.1 -t

    修改重启下 php-fpm7.1: 

    sudo service php-fpm7.1 restart (/etc/init.d/php7.1-fpm restart)

    修改nginx配置文件

    sudo vim(或vi) /etc/nginx/sites-enabled/default

    4.修改nginx配置文件

    cd /etc/nginx/sites-enabled/

    default为默认80端口,如需多开端口在sites_enabled下新建文件即可,eg csteaching

    server {

            listen 8080;

            listen [::]:8080;

            root /var/www/html/cs2019/CS2019/csteaching/public;

            index index.php index.html index.htm index.nginx-debian.html;

            server_name _;

            location / {

                    try_files $uri $uri/ /index.php?$query_string;

            }

            error_page 404 /index.php;

            location ~ \.php$ {

                    include snippets/fastcgi-php.conf;

                    fastcgi_split_path_info ^(.+\.php)(/.+)$;

                    fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;

            }

            location ~ /\.(?!well-known).* {

                    deny all;        

             }

    }

    然后 sudo service nginx restart (/etc/init.d/nginx restart)

    注意:重启nginx失败 先ps -ef | grep nginx 后 pkill -9 nginx 然后重启


    特注:csteaching是为laravel5.5 + lnmp 专写的server配置


    5.新建index.php

    cd /var/www/html

    vim index.php

    注意:腾讯云给的账号是ubutu,不是root,所以要设置root 密码

    sudopasswd root ps:填两次密码sudo vim /etc/ssh/sshd_config将PermitRootLogin后面的prohibit-password改为yessudo service ssh restartsu -

    然后就可以 vim index.php 不然会报权限不足

    6.踩过的大坑

    (1)无论是 3306 数据库端口 8080nginx新开的端口都一定要设置端口对外开放

    Ubuntu开放指定端口

    一般情况下,ubuntu安装好的时候,iptables会被安装上,如果没有的话那就安装上吧

    安装

    在终端输入

    sudo apt-get install iptables

    添加规则

    在终端输入

    iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    中间的80为所需要开放的端口

    保存规则

    在终端输入

    iptables-save

    完成上述命令我们就完成了开放指定的端口,但是如果此时服务器重启,上述规则就没有了,所以我们需要对规则进行一下持续化操作

    持久化规则

    这里我们需要在安装一下工具来帮我们实现,这里我们使用 iptables-persistent

    安装iptables-persistent

    sudo apt-get install iptables-persistent

    持久化规则

    sudo netfilter-persistent save

    sudo netfilter-persistent reload

    完成上述操作就可以永久打开我们需要的端口了

    (2)文件夹权限一定要保证

    (3)远程连接数据库

    (1)、首先确定自己能以root连接服务器端数据库,如果不能则要在服务端查看是否开启了mysql的3306端口可以被其他ip地址访问,使用netstat -an | grep 3306

    tcp 0 0 (服务器本地ip地址):3306 0.0.0.0:* LISTEN

    如果出现上述结果则表示服务器端的mysql数据库没有对其他ip地址开放,可以通过使用命令 ser打开MySQL配置文件,将文件中的bind-address = (服务器本地ip地址) 这句话注释掉,或者改为0.0.0.0,表示允许所有的IP访问3306端口连接数据库

    (2)、重启mysql服务

    (3)、重启之后,在服务器端以root用户进入mysql,然后使用命令 

    grant all privileges on 数据库名.表名 to ‘用户名’@’%’ identified by ‘密码’ with grant option; 

    flush privileges; 

    提示成功后即表示成功添加用户,随后退出mysql,重启服务,然后便可以使用刚才添加的用户及密码进入mysql数据库进入操作!

    具体说下grant all privileges on 数据库名.表名 to ‘用户名’@’%’ identified by ‘密码’ with grant option;

    grant 命令就是用来创建用户,all表示授予新增用户操作数据库或者数据库下某个数据表的所有权限,如果不想给予太大权限,可以将此处改为select,update,insert,delete 中的一个或者多个to后面接的’用户名’表示新增的用户的名称,@’%’表示可以从任意主机进行连接,如果修改成@localhost则表示仅能从本机连接。

    相关文章

      网友评论

          本文标题:ubuntu16+lnmp环境搭建 笔记整理

          本文链接:https://www.haomeiwen.com/subject/oehklctx.html