ubuntu16+lnmp环境搭建 笔记整理

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环境搭建 笔记整理)