Ubuntu16.04 lnmp 環(huán)境搭建 每臺(tái)電腦的環(huán)境的不完全一樣,下面僅僅是個(gè)人經(jīng)驗(yàn)總結(jié)砚作,請(qǐng)勿照搬
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 出現(xiàn)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模塊擴(kuò)展
3.安裝mysql
sudo apt –y install mysql-server mysql-client
注意:期間要設(shè)置密碼爆侣,填兩次密碼,
如果自動(dòng)安裝的是5.7版本可能沒有提示密碼輸入艺糜,安裝完成以後按照以下步驟改密碼:
1.進(jìn)入到etc/mysql 目錄下剧董,查看debian.cnf文件
2.在debian.cnf文件中找到用戶名,密碼 破停,使用此賬號(hào)登錄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
默認(rèn)是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為默認(rèn)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
注意:騰訊云給的賬號(hào)是ubutu,不是root,所以要設(shè)置root 密碼
sudopasswd root ps:填兩次密碼sudo vim /etc/ssh/sshd_config將PermitRootLogin后面的prohibit-password改為yessudo service ssh restartsu -
然后就可以 vim index.php 不然會(huì)報(bào)權(quán)限不足
6.踩過的大坑
(1)無論是 3306 數(shù)據(jù)庫端口 8080nginx新開的端口都一定要設(shè)置端口對(duì)外開放
一般情況下晤碘,ubuntu安裝好的時(shí)候褂微,iptables會(huì)被安裝上功蜓,如果沒有的話那就安裝上吧
安裝
在終端輸入
sudo apt-get install iptables
添加規(guī)則
在終端輸入
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
中間的80為所需要開放的端口
保存規(guī)則
在終端輸入
iptables-save
完成上述命令我們就完成了開放指定的端口,但是如果此時(shí)服務(wù)器重啟宠蚂,上述規(guī)則就沒有了式撼,所以我們需要對(duì)規(guī)則進(jìn)行一下持續(xù)化操作
持久化規(guī)則
這里我們需要在安裝一下工具來幫我們實(shí)現(xiàn),這里我們使用 iptables-persistent
安裝iptables-persistent
sudo apt-get install iptables-persistent
持久化規(guī)則
sudo netfilter-persistent save
sudo netfilter-persistent reload
完成上述操作就可以永久打開我們需要的端口了
(2)文件夾權(quán)限一定要保證
(3)遠(yuǎn)程連接數(shù)據(jù)庫
(1)求厕、首先確定自己能以root連接服務(wù)器端數(shù)據(jù)庫著隆,如果不能則要在服務(wù)端查看是否開啟了mysql的3306端口可以被其他ip地址訪問,使用netstat -an | grep 3306
tcp 0 0 (服務(wù)器本地ip地址):3306 0.0.0.0:* LISTEN
如果出現(xiàn)上述結(jié)果則表示服務(wù)器端的mysql數(shù)據(jù)庫沒有對(duì)其他ip地址開放呀癣,可以通過使用命令 ser打開MySQL配置文件美浦,將文件中的bind-address = (服務(wù)器本地ip地址) 這句話注釋掉,或者改為0.0.0.0项栏,表示允許所有的IP訪問3306端口連接數(shù)據(jù)庫
(2)浦辨、重啟mysql服務(wù)
(3)、重啟之后沼沈,在服務(wù)器端以root用戶進(jìn)入mysql流酬,然后使用命令?
grant all privileges on 數(shù)據(jù)庫名.表名 to ‘用戶名’@’%’ identified by ‘密碼’ with grant option;?
flush privileges;?
提示成功后即表示成功添加用戶,隨后退出mysql列另,重啟服務(wù)芽腾,然后便可以使用剛才添加的用戶及密碼進(jìn)入mysql數(shù)據(jù)庫進(jìn)入操作!
具體說下grant all privileges on 數(shù)據(jù)庫名.表名 to ‘用戶名’@’%’ identified by ‘密碼’ with grant option;
grant 命令就是用來創(chuàng)建用戶页衙,all表示授予新增用戶操作數(shù)據(jù)庫或者數(shù)據(jù)庫下某個(gè)數(shù)據(jù)表的所有權(quán)限摊滔,如果不想給予太大權(quán)限,可以將此處改為select,update,insert,delete 中的一個(gè)或者多個(gè)to后面接的’用戶名’表示新增的用戶的名稱店乐,@’%’表示可以從任意主機(jī)進(jìn)行連接艰躺,如果修改成@localhost則表示僅能從本機(jī)連接。