Contents
  1. 1. 切换root用户
  2. 2. 更新软件源
  3. 3. 安装 MySQL
  4. 4. 安装 Nginx和PHP
  5. 5. 安装MongoDB及php-mongodb扩展
  6. 6. 配置MySQL数据储存路径
  7. 7. 配置Nginx和PHP
    1. 7.1. 为php做一个专门的配置文件
    2. 7.2. 为TP5做一个专门配置
    3. 7.3. 为网站文件创建目录并建立软链接
    4. 7.4. 为网站文件创建目录
    5. 7.5. 添加虚拟主机
  8. 8. phpMyAdmin

切换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:

设置MySQLroot用户密码

输入完一次后还要重复输入确认一次

注意:必须包含数字、大小写字母部分版本还需要包含特殊字符(!@#¥%&^等等)

如果没有提示输入密码,root密码将会被设置为空、且不能修改,运行cat /etc/mysql/debian.cnf可以看到系统分配的用户名和密码,可以使用它来登陆mysql;添加一个新的管理员账户admin 就可以使用了,这一步可以在phpmyadmin装好后在phpmyadmin里添加

安装 Nginx和PHP

PHP5.6、7.0、7.1即将停止更新,详情查看这里

最近新购的ubuntu18都已经默认为php7.2,直接安装7.0会报错

1
2
3
4
5
6
# 安装nginx
apt install -y nginx
# 安装php7.2
apt install -y php7.2 php7.2-fpm
# 安装一些常用php扩展
apt install php7.2-mysql php7.2-sqlite3 php7.2-curl php7.2-gd php7.2-mbstring php7.2-json

mcrypt 在7.0以上版本已经被移除了,所以如果安装php7.2-mcrypt会提示找不到

上一步报错提示找不到7.2的解决方法:

还没有php7.2的源,所以安装php7.2会提示找不到,先进行源的添加:

1
2
3
4
5
6
# 安装软件源添加工具:
apt -y install software-properties-common apt-transport-https lsb-release ca-certificates
# 添加 Ondřej Surý 的 PHP PPA 源,需要按一次回车:
add-apt-repository ppa:ondrej/php
# 更新软件源缓存:
apt update

注意: 需要哪些PHP扩展主要看自己的业务需求,如果比如你还会用到memcacheredis可以这样安装:

1
2
# 安装memcache redis扩展
apt install php-memcached php-redis

到这一步,LNMP环境安装完成了,下面介绍的MongoDBMySQL修改路径 根据实际需要选择

安装MongoDB及php-mongodb扩展

1
2
3
4
# 安装 mongodb
apt install mongodb
# 安装PHP扩展php-mongodb
apt install php-mongodb

配置MySQL数据储存路径

如果有两块以上的硬盘,可以设置一下MySQL数据的储存路径,如果只有系统盘,这一步配置可以跳过了

1
2
service mysql stop
vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到datadir = /var/lib/mysql

修改成其他硬盘挂载的位置,如

1
datadir = /data/db/mysql

:wq 保存&退出
复制mysql以前的数据到新目录下

1
2
3
4
5
6
7
# 如果db目录还不存在,你需要自己创建好
mkdir /data/db
chmod 777 /data/db
# 复制mysql以前的数据到新目录
cp -r -p /var/lib/mysql /data/db/
# 修改文件:
vim /etc/apparmor.d/usr.sbin.mysqld

找到# Allow data dir access这行

下面添加两行:

1
2
/data/db/mysql/ r,
/data/db/mysql/** rwk,

保存退出后,重新加载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
2
3
4
5
6
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_min_length 1k;
gzip_comp_level 2;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript font/ttf font/otf image/svg+xml;

为php做一个专门的配置文件

1
vim /etc/nginx/php.conf
1
2
3
4
5
6
location ~ \.php$ {
include snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

以下内容非必要!

1
2
3
4
5
6
7
8
#禁止.htaccess
location ~ /\.ht {
deny all;
}
#禁止wordpress目录
if ( $request_uri ~* "^/wp-.*$"){
return 403;
}

为TP5做一个专门配置

最近ThinkPHP5用的比较多

1
vim /etc/nginx/tp5.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Only for ThinkPHP5
location / {
index index.html index.php;
if ( -f $request_filename) {
break;
}
if ( !-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

为网站文件创建目录并建立软链接

(有数据盘,挂载在/data为例)

1
2
3
mkdir /data/www
# 为了操作方便,在/下建立网站目录的软链接
ln -s /data/www /wwwroot

为网站文件创建目录

(没有数据盘)

1
mkdir /wwwroot

添加虚拟主机

添加虚拟主机 就是在/etc/nginx/sites-available/中创建网站配置文件 并软链接到/etc/nginx/sites-enabled/

这里以test为例子:

1
vim /etc/nginx/sites-available/test

添加以下内容

1
2
3
4
5
6
server {
listen 80;
server_name www.test.com test.com;
root /wwwroot/test;
include php.conf;
}
1
ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/

ln 用来创建链接 -s参数表示软连接 并没有创建实际的文件内容 仅仅是一个映射的关系
-s 后面的参数分别是 源路径 目标路径
如果目标路径是一个目录,源路径是一个文件,会自动在目标路径下创建源路径相同的文件

测试,输出一下phpinfo试试吧

1
2
3
4
# 创建网站根目录,这里和上面`/etc/nginx/sites-available/test`里的`root`路径对应
mkdir /wwwroot/test/
# 创建网站首页
vim /wwwroot/test/index.php
1
2
<?php
phpinfo();

如果你自己有域名的话可以用真实的域名测试。因为刚刚设置的是test.com这个测试域名,所以只能改本机的host文件了:

1
服务器的公网IP  www.test.com test.com

phpMyAdmin

先切换到/tmp目录

1
cd /tmp

打开phpMyAdmin官网,找到下载(Download),右键复制链接地址

1
2
3
4
# 下载
wget 【右键粘贴刚刚复制的内容】
# 例如刚刚复制的是:https://files.phpmyadmin.net/phpMyAdmin/4.8.3/phpMyAdmin-4.8.3-all-languages.zip
# 后面也以这个文件(phpMyAdmin-4.8.3-all-languages.zip)为例 注意自己的文件名

解压,如果你还没有安装unzip,需要先安装

1
2
3
4
5
6
7
8
9
10
11
12
# 安装unzip
apt install unzip
# 解压刚刚下载的压缩包,注意文件名
unzip phpMyAdmin-4.8.3-all-languages.zip
# 创建phpMyAdmin目录
mkdir /wwwroot/pub
mkdir /wwwroot/pub/phpmyadmin
# 移动下载的phpmyadmin到网站目录,注意文件名
cp -r /tmp/phpMyAdmin-4.8.3-all-languages/* /wwwroot/pub/phpmyadmin
# 更改用户和权限
chown -R www-data:www-data /wwwroot/pub/phpmyadmin
chmod -R 755 /wwwroot/pub/phpmyadmin

修改虚拟主机配置,添加phpmyadmin

1
vim /etc/nginx/sites-available/phpmyadmin

添加以下内容

1
2
3
4
5
server {
listen 8088;
root /wwwroot/pub/phpmyadmin;
include php.conf;
}

添加软链接

1
ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/phpmyadmin

重新载入nginx配置

1
service nginx reload

访问 服务器ip:8088试一试吧
参考文章Linux上phpMyAdmin怎么安装

Contents
  1. 1. 切换root用户
  2. 2. 更新软件源
  3. 3. 安装 MySQL
  4. 4. 安装 Nginx和PHP
  5. 5. 安装MongoDB及php-mongodb扩展
  6. 6. 配置MySQL数据储存路径
  7. 7. 配置Nginx和PHP
    1. 7.1. 为php做一个专门的配置文件
    2. 7.2. 为TP5做一个专门配置
    3. 7.3. 为网站文件创建目录并建立软链接
    4. 7.4. 为网站文件创建目录
    5. 7.5. 添加虚拟主机
  8. 8. phpMyAdmin