本文介绍在linux服务器搭建(php7.1+Nginx+mysql)环境,并且通过图形化工具phpmyadmin管理mysql数据库。让我们的thinkphp6项目上述环境正常运作起来。
1、更新yum update
yum upgrade
2、安装PHP&PHP-FPM
//安装源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
//安装PHP和PHP-FPM
yum install php71w php71w-cli php71w-fpm
//安装相关扩展
yum install php71w-mbstring php71w-common
yum install php71w-gd php71w-mcrypt
yum install php71w-mysql php71w-xml
yum install php71w-soap php71w-xmlrpc
//启动PHP-FPM
systemctl start php-fpm
//设置开机启动
systemctl enable php-fpm
3、安装Nginx
//安装nginx
yum install nginx
//启动nginx
systemctl start nginx
//使用systemctl设置开机启动
systemctl enable nginx
访问http://122.51.193.95(服务器ip),显示如下图nginx欢迎页面,Nginx设置成功。
4、安装MySQL
//安装MySQL源
yum install https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
//安装MySQL
yum install mysql-community-server
//启动MySQL
systemctl start mysql
//设置开机启动
systemctl enable mysql
查看安装的mysql是否已安装成功
rpm -qa|grep -i mysql
看到如下图,即启动成功
5、修改MySQL密码
//找到随机生成的密码
cat /root/.mysql_secret
//登录mysql(需要上面的密码)
mysql -uroot -p
//更改密码,密码要求大写字母、小写字母以及数字和特殊符号
alter user 'root'@'localhost' identified by 'Qw.123456';
6、配置nginx站点(yxiaomo.cn为你的域名)
vim /etc/nginx/conf.d/ngnix.conf
//写入以下内容
server {
//端口
listen 80;
//域名
server_name yxiaomo.cn;
//项目地址
root /usr/share/nginx/html/XXXX;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
// nginx支持PHP配置
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
//重启Nginx
systemctl restart nginx
//在/usr/share/nginx/html增加phpinfo.php文件写入以下内容
<?php phpinfo();?>
通过地址http://XXX/phpinfo.php访问看到如下图,即配置成功
7、安装phpMyAdmin
1、下载phpMyAdmin
首先在phpMyAdmin官方网站 phpMyAdmin - Downloads下载源码包,或者通过脚本之家进行下载:https://www.jb51.net/codes/405261.html ,下载后上传到服务器解压即可,或者通过Linux命令来下载安装(推荐)
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.0/phpMyAdmin-4.6.0-all-languages.tar.gz
2、解压文件
tar zxvf phpMyAdmin-4.6.0-all-languages.tar.gz
3、将phpMyAdmin-4.6.0-all-languages放到web目录下
mv phpMyAdmin-4.6.0-all-languages /usr/share/nginx/html/
4、重新命名
mv phpMyAdmin-4.6.0-all-languages phpMyAdmin
5、访问地址
尝试通过ip访问,http://本机ip地址/phpMyAdmin/,(也可通过上述nginx站点配置方式配置域名进行访问),即可看到熟悉的页面
8、部署thinkphp6项目
1、上传项目
上传完整项目后,按照上述nginx站点配置方式,把项目地址配置到/usr/share/nginx/html/XXX/public,即可通过配置的地址访问项目
server {
...
//项目地址
root /usr/share/nginx/html/XXXX/public;
...
}
2、配置伪静态
访问项目后,发现无论地址如何变化只显示首页,这是nginx不支持PATHINFO导致的,官方文档找到相应解决方法
server {
...
location / {
...
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
}
注意:每次修改完nginx配置后都要systemctl restart nginx,重启nginx服务方可生效
3、多应用入口识别成模块处理方法
我想大部分开发者都会用到多应用模式,毕竟前台访问模块后还有后台管理模块等。
如下图,小莫新增了一个admin.php的入口文件,window正常,部署到ngnix后admin.php就被识别为admin\php
这是我们上述伪静态配置,把地址所有参数均配置到/index.php?s=/$1导致的,因此我们只需要在Nginx配置上配置admin.php的伪静态即可解决此问题。
location / {
...
if (!-e $request_filename) {
//这是配置伪静态,admin.php指向我们新增的admin.php入口文件
rewrite ^/admin.php/(.*)$ /admin.php?s=/$1 last;
rewrite ^(.*)$ /index.php?s=/$1 last;
}
...
}