Ubuntu / Debian 安装 配置 LNMP环境 Nginx PHP7 MySQL MongoDB
切换root用户
1 | sudo su |
也可以用非root用户操作:以下的每一个命令前加 sudo
更新软件源
1 | apt update -y |
如果你想升级下服务器上的软件,在执行完apt update -y
后可以再执行下apt upgrade -y
安装 MySQL
1 | apt install -y mysql-server |
安装过程中会提示
New password for the MySQL “root” user:
设置MySQL
的root
用户密码
输入完一次后还要重复输入确认一次
注意:必须包含数字、大小写字母部分版本还需要包含特殊字符(!@#¥%&^等等)
- 可以点击这里生成随机字符串
如果没有提示输入密码,root密码将会被设置为空、且不能修改,运行cat /etc/mysql/debian.cnf
可以看到系统分配的用户名和密码,可以使用它来登陆mysql;添加一个新的管理员账户admin
就可以使用了,这一步可以在phpmyadmin装好后在phpmyadmin里添加
安装 Nginx和PHP
PHP5.6、7.0、7.1即将停止更新,详情查看这里
最近新购的ubuntu18都已经默认为php7.2,直接安装7.0会报错
1 | # 安装nginx |
mcrypt 在7.0以上版本已经被移除了,所以如果安装php7.2-mcrypt会提示找不到
上一步报错提示找不到7.2的解决方法:
还没有php7.2的源,所以安装php7.2会提示找不到,先进行源的添加:
1 | # 安装软件源添加工具: |
注意: 需要哪些PHP扩展主要看自己的业务需求,如果比如你还会用到memcache
、redis
可以这样安装:
1 | # 安装memcache redis扩展 |
到这一步,LNMP
环境安装完成了,下面介绍的MongoDB
和MySQL
修改路径 根据实际需要选择
安装MongoDB及php-mongodb扩展
1 | # 安装 mongodb |
配置MySQL数据储存路径
如果有两块以上的硬盘,可以设置一下MySQL数据的储存路径,如果只有系统盘,这一步配置可以跳过了
1 | service mysql stop |
找到datadir = /var/lib/mysql
修改成其他硬盘挂载的位置,如
1 | datadir = /data/db/mysql |
:wq
保存&退出
复制mysql
以前的数据到新目录下
1 | # 如果db目录还不存在,你需要自己创建好 |
找到# Allow data dir access
这行
下面添加两行:
1 | /data/db/mysql/ r, |
保存退出后,重新加载apparmor
1 | service apparmor reload |
启动mysql
服务
1 | service mysql start |
参考文章:CentOS修改mysql数据存储位置
配置Nginx和PHP
打开nginx
配置文件
1 | vim /etc/nginx/nginx.conf |
修改默认首页
在# Virtual Host Configs
下面,添加内容如下:
1 | index index.htm index.html Index.html index.php; |
开启gzip
在gzip on;
这行下面,替换内容如下:
1 | gzip on; |
为php做一个专门的配置文件
1 | vim /etc/nginx/php.conf |
1 | location ~ \.php$ { |
以下内容非必要!
1 | #禁止.htaccess |
为TP5做一个专门配置
最近ThinkPHP5用的比较多
1 | vim /etc/nginx/tp5.conf |
1 | # Only for ThinkPHP5 |
为网站文件创建目录并建立软链接
(有数据盘,挂载在/data为例)
1 | mkdir /data/www |
为网站文件创建目录
(没有数据盘)
1 | mkdir /wwwroot |
添加虚拟主机
添加虚拟主机 就是在/etc/nginx/sites-available/
中创建网站配置文件 并软链接到/etc/nginx/sites-enabled/
这里以test
为例子:
1 | vim /etc/nginx/sites-available/test |
添加以下内容
1 | server { |
1 | ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/ |
ln
用来创建链接 -s
参数表示软连接 并没有创建实际的文件内容 仅仅是一个映射的关系-s
后面的参数分别是 源路径
目标路径
如果目标路径
是一个目录,源路径
是一个文件,会自动在目标路径下创建源路径
相同的文件
测试,输出一下phpinfo试试吧
1 | # 创建网站根目录,这里和上面`/etc/nginx/sites-available/test`里的`root`路径对应 |
1 |
|
如果你自己有域名的话可以用真实的域名测试。因为刚刚设置的是test.com
这个测试域名,所以只能改本机的host
文件了:
1 | 服务器的公网IP www.test.com test.com |
phpMyAdmin
先切换到/tmp目录
1 | cd /tmp |
打开phpMyAdmin官网,找到下载(Download),右键复制链接地址
1 | # 下载 |
解压,如果你还没有安装unzip
,需要先安装
1 | # 安装unzip |
修改虚拟主机配置,添加phpmyadmin
1 | vim /etc/nginx/sites-available/phpmyadmin |
添加以下内容
1 | server { |
添加软链接
1 | ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/phpmyadmin |
重新载入nginx
配置
1 | service nginx reload |
访问 服务器ip:8088试一试吧
参考文章Linux上phpMyAdmin怎么安装