linux部署lnmp环境
检查是否安装该程序:
which nginx #查看nginx是否存在
which php #查看php是否存在
which mysql #查看mysql是否存在
Nginx安装
yum list nginx #列出nginx
yum install nginx #安装nginx
看见{Complete! } 安装成功。
安装完nginx之后访问本机ip,结果直接报错,然后去查看var目录下查看nginx错误日志,看到如下错误信息,意思是html下面没有
directory index of "/usr/share/nginx/html/" is forbidden
如果在/usr/share/nginx/html下面没有index.php,index.html的时候,直接访问域名,找不到文件,会报403 forbidden。
解决办法:直接输入以下命令:
#删除index.html文件
rm /usr/share/nginx/html/index.html
#在 /usr/share/nginx/html目录下面新建一个index.php文件,内容是
<?php
phpinfo();
?>
还有一个原因就是你的默认的nginx配置文件的location没有指定root路径,我的就是这个问题,这个就直接在默认的 /etc/nginx/nginx.conf 内容里的 server上面加上:
location / {
root html;
index index.php index.html index.htm;
}
如果还是不能正常访问,那就进到nginx的默认配置文件里去找一下,看看有没有如下代码:
location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
上面代码的意思是把php文件交给php-fpm处理,php-fpm占用的端口号是9000。
nginx隐藏入库文件
nignx/conf下有vhosts.conf这个文件的话,在这个文件里配置,当有这个文件的时候,在nginx.conf里配置是不起作用的。没有的话就在nginx.conf文件配置.
注意:nginx隐藏入口文件,找到
nginx的
vhost文件,在
server 里加入如下:
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
就Ok了。
配置完以后,记得重启nginx,或者reload一下:
重启nginx:
nginx -s stop
nginx
或者
nginx -s reopen
下面是重新加载nginx的配置文件(推荐这种方式):
service nginx reload
找到nginx的安装目录:
[root@localhost nginx]# which nginx
/usr/sbin/nginx #这个是yum安装后默认所在位置
查看nginx的命令提示:
[root@localhost nginx]# nginx -h
nginx version: nginx/1.10.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /usr/share/nginx/)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
启动 Nginx
which nginx #查看nginx是否存在
service nginx start #启动nginx进程方法[1]
/etc/init.d/nginx start #启动nginx进程方法[2]
ps -ef | grep nginx #查看nginx进程
ps -le #查看nginx进程
ifconfig #查看网卡信息
打开浏览器:http://182.92.73.109/
看到 { 欢迎界面 } 说明安装成功!
注意:ip访问,这里的ip是公网ip
Php安装
查看php使用的php.ini
文件的位置,使用的命令是php -i |grep php.ini
(非常好用的一条命令)
yum list php php-fpm #列出php 和php-fpm 是否存在
yum -y install php php-fpm #安装php 和php-fpm软件包
看见{Complete! } 安装成功。
启动php-fpm:
service php-fpm start // 1.启动php-fpm
/bin/systemctl start php-fpm.service // 2.启动php-fpm
--php扩展安装
如:
yum list php-gd
yum install php-gd
redis安装
yum list redis
yum install redis
php扩展安装完成后,重启php-fpm
// 重启php-fpm
/bin/systemctl restart php-fpm.service
// 启动redis
/bin/systemctl restart redis.service
// 查看redis进程
ps -le | grep redis
注意:redis如果需要守护进程启动,需要再redis.conf配置文件128行
daemonize no // 将 no 改成 yes
将 no 改成 yes,然后进入 /usr//bin 系统用户使用的应用程序下,找到 redis-cli 启动
/usr/bin/redis-cli
[root@VM_0_6_centos bin]# redis-cli
127.0.0.1:6379>
出现此则成功了,进行set name xiaochi 设置 ok ,然后 get name,获取成功
Mysql安装
yum list mysql mysql-server #搜索mysql数据包
yum -y install mysql mysql-server #不需要提示安装
看见{Complete! } 安装成功。如果出现 No package mysql-server available错误,是因为我们本地yum仓库中没有可用的mysql-server rpm包,解决:
// 在Centos 7上使用
rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
// Centos 6上安装mysql rpm包
rpm -ivh https://repo.mysql.com//mysql57-community-release-el6-11.noarch.rpm
rpm软件包安装好之后,我们就可以使用 yum install mysql-server 命令来安装mysql了。
查看mysql mysql-server是否存在:
which mysql #查看mysql是否存在
验证mysql是否启动成功命令,使用netstat命令
netstat -nap |grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4571/mysqld
启动mysql
service mysqld start #启动mysql
最后需要查看mysql5.7的初始化密码(如果是mysql5.6的话默认密码应该为空,不需要此命令查询)
grep 'temporary password' /var/log/mysqld.log
输出类似如下的随机密码:
2017-11-08T16:24:46.311098Z 1 [Note] A temporary password is generated for [root@localhost](mailto:root@localhost): MtPqF0/oN5zoSfdff
MtPqF0/oN5zoSfdff是就是初始密码
然后输入mysql -uroot -p命令登录mysql服务器,并修改mysql初始化密码。
//输入初始化密码登录之后,重新设置mysql密码
mysql> set password for root@localhost = password('123456');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这时会报错,因为为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。一般可通过log_error设置
设置密码的格式,必须有数字,字母,特殊符号,所以需要为了方便设置密码123456,需要进行如下设置
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
mysql> set global validate_password_mixed_case_count=2;
然后再进行设置密码
mysql> set password for root@localhost = password('123456');
ok了,quit退出mysql。
然后进行测试,进入到 usr/share/nginx/html 目录下,找到index.php并输入
$link = mysqli_connect('localhost','root','123456','test');
if($link){
echo 'ok';
}else{
echo 'error';
}
注意:先 cd usr/bin 访问系统用户应用程序目录,进入登陆 mysql -uroot -p 进入 mysql 查看 show databases 是否有 test 这个数据库,没有则创建(create database test)
在访问当前腾讯云服务器 公ip,地址栏输入 http://118.24.188.68/,输出ok,表示成功链接Mysql。
Ctrl-C -- exit! #退出终端
*注意
:远程连接失败问题,如navicat连接失败
先运行命令
mysql -uroot -p // 登陆mysql
use mysql; // 选择mysql数据库
select host,user from user;// 查看用户权限
1.运行如下命令,赋与远程连接权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
2.刷新一下
flush privileges;
如果此时还解决不了,就需要找到mysql配置my.ini文件,运行如下
bind-address = 127.0.0.1 改成 bind-address = 0.0.0.0
然后,重载配置、重启服务,就ok了。
phpMyAdmin安装
yum install phpMyAdmin
看见{Complete! } 安装成功。接着 cd /usr/share/ 目录下,将 phpMyAdmin 目录复制一份到 nginx 服务器 web 目录下,
cp -r phpMyAdmin ./nginx/html/
我这里 web 目录是 /usr/share/nginx/html/ ,然后找到 cd /etc/phpMyAdmin/ 目录下的config.inc.php 进行如下编辑
$cfg['blowfish_secret'] = 'xiaochi',// 随便设置,只是一个短语密码
$cfg['Servers'][$i]['host'] = 'localhost'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['auth_type'] = 'cookie';// cookie表示每次都要输入用户密码,linux下不能用 config,不然谁都能直接访问
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '*************'; //数据库密码
$cfg['Servers'][$i]['extension'] = 'mysql';
然后重启 php-fpm、mysqld
service php-fpm reload
service mysqld reload
然后 地址栏输入:http://公网ip/phpMyAdmin/
此时,访问时可能会报错 mb_string is missing。 然后安装 php-mbstring扩展:
yum install php-mbstring
然后重启 php-fpm、mysqld。就ok了。
linux部署 lnmp 常用命令
yum list | grep php*(#查看所以php安装包)
yum remove 名称(卸载,如:yum remove nginx)
ps -le / ps -e(#查看所有进程)
ps -le | grep 应用程序名称(如:mysqld、redis) (#查看具体进程)
-------如:查看 mysql 进程
-------------ps -le | grep mysqld ;// ps -e | grep mysqld也可以