目录
文章目录
导语
1.购买与配置阿里云服务器
1.1 购买域名
1.2 购买服务器
1.3 域名实名认证
1.4 备案服务器
2.在服务器中配置php开发环境
2.1 下载 XShell 6 ,Xftp 6
2.2 先升级apt-get
2.3 安装 MySQL
2.4 安装 Apache2
2.5 安装 php7.0
2.6 安装apache的php模块
2.7 安装php-mysql
3.上传本地 ThinkPHP 5 项目
3.1 使用Xftp上传本地项目
3.2 修改服务器apache网站默认根路径
3.3 远程连接 MySQL
3.4 隐藏网站访问路径中的index.php
参考资料
本教程使用阿里云 ubuntu 16.04 服务器,部署 ThinkPHP5 项目(学生轻量应用服务器),本地环境 windows10 64位,工具 XShell 6,Xftp 6,navicat for mysql
(根据自己需求可购买可不购买,如果不购买可直接看 1.2 我这里购买的是 腾讯云域名)
啥?你问为什么选择 腾讯 域名,当然是因为 便宜 啊。我购买的是 .xyz 域名。灵活经济是也~
当然购买 阿里云域名 ,操作也是一致的。
阿里云学生轻量应用服务器购买地址
选择 系统镜像 > Ubuntu 16.04 64位 ( 有效期可根据自己需求选择,但是如果需要备案服务器的话,需要有效期 >= 3个月 )
# 当天就可以认证
阿里云服务器备案需1天,隔天阿里云工作人员会与你确认备案信息。
* 前提:域名必须实名认证超过3天,否则域名注册商那里查询不到该域名,备案会失败
MySQL + apache2 + php 7.0
使用工具 XShell 6 ,Xftp 6 工具进行远程连接阿里云服务器
附上百度网盘地址,提取码:zica
安装完成后,打开 XShell 6
所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
# 用ssh-keygen生成一个公钥
ssh-keygen
运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。
运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa。前者是你的公钥,后者是你的私钥。
这时再输入下面的命令,将公钥传送到远程主机host上面:
ssh-copy-id root@公网IP
好了,从此你再登录,就不需要输入密码了。
如果还是不行,就找到远程主机的/etc/ssh/sshd_config这个文件( 用Xftp 6打开 ),
左边为你本地 windows 10 上的资源管理,右边为远程主机的文件管理,在右边找到 sshd_config 文件,右键 用记事本编辑
检查下面几行前面"#"注释是否取掉。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然后,重启远程主机的ssh服务。
service ssh restart
之后,你再进入 XShell 6 中时,不用再输入密码
一定要先升级,避免遇到找不到软件包的错误。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mysql-server
mysql --version
# 出现如下界面,则MySQL成功安装
sudo apt-get install apache2
在浏览器打开 公网ip ,若出现如下界面,则成功安装
sudo apt-get install php7.0
* 使apache可以调用php引擎处理php程序,不然无法解析 php代码,会把php代码当作字符串直接显示在页面上
apt-get install libapache2-mod-php
#运行完成之后通过命令查看是否安装成功
cat /etc/apache2/mods-enabled/php7.0.load
如果显示下列内容,则代表成功
Conflicts: php5
LoadModule php7_module /usr/lib/apache2/modules/libphp7.0.so
验证是否安装完成,建一个文档:(/var/www/html 为 apache 网站默认根目录)
sudo vi /var/www/html/info.php
按下i键编辑文件 输入
按下Esc退出写入模式,输入:wq
保存退出(记住有冒号)
重启Apache:service apache2 restart
,在浏览器中输入公网IP/info.php
如果看到下图则说明PHP安装成功。
* 不然会遇到未找到PDO驱动错误could not find driver 问题
sudo apt install php7.0-mysql
修改配置文件 去掉/etc/php/7.0/apache2/php.ini
文件中extension=php_pdo_mysql.dll
前面的;
然后重启Apache
验证,可以通过查看phpinfo中的PDO扩展是否有mysql
上传本地文件到服务器/var/www/html
目录下
打开 /etc/apache2/sites-available/000-default.conf
检查配置成功没:可以把上面的 info.php 复制到 public 目录下,在浏览器打开 域名/info.php
( 服务器没备案完成 / 没域名:在浏览器打开 公网IP/info.php )
Navicat for MySQL 网盘下载地址 提取码:g5fu
安装 Navicat for MySQL 后运行下 文件夹中的 PatchNavicat.exe 激活
打开 安全 > 防火墙 > 添加规则 MYSQL (如果有就不用添加了)
一、修改/etc/mysql/my.conf
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可
二、为需要远程登录的用户赋予权限
在 XShell 中,运行
mysql -u root -p
#提示输入密码
如果输入密码后能登入 mysql> 界面,则直接跳到 三、新建用户远程连接mysql数据库
若提示不能登入,但确定自己密码没有输错,则我们尝试启用安全模式登入MySQL,这样可以绕过密码登入,登入后再修改MySQL密码。
安全模式登入MySQL
1 2 3 4 5 6 7 |
|
输入第一行终止MySQL运行,成功,会提示下面两行;输入第四行,成功,没有任何报错则可以另外打开一个终端窗口进行下一步操作;但是一般会报错,比如提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists
因此我们尝试输入以下代码
1 2 3 |
|
最后再次输入:
1 |
|
到了这里不在提示错误,可以打开另一个终端端口了,尝试无密码登入MySQL。
1 |
|
到这里应该可以进入MySQL了,继续操作
1 2 3 4 5 6 7 |
|
4、使用修改的密码登入MySQL
经过上面一系列的操作,应该可以正常使用你更改的密码登入了。
1 2 3 4 |
|
三、新建用户远程连接mysql数据库
1 2 3 4 5 6 7 |
|
若遇到 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 问题
1 2 3 4 |
#ps -A|grep mysql 显示类似: 1829 ? 00:00:00 mysqld_safe #kill -9 1829 #kill -9 1876 #/etc/init.d/mysql restart #mysql -u root -p |
若还未解决,可参考 ERROR 2002 (HY000)解决办法 解决
我是通过 导入.sql 文件
此时通过浏览器可访问 公网IP/index.php/....(你route.php中设置的路由规则 eg.公网IP/index.php/api/v1/theme/1)
(如果备案好了,则可以用 域名/index.php/....(你route.php中设置的路由规则 eg.域名/index.php/api/v1/theme/1))
检查一下/etc/apache2/apache2.conf
文件中的AllowOverride None 是否已经改为 AllowOverride All
重启Apache(service apache2 restart)
此时通过浏览器可访问 公网IP/....(你route.php中设置的路由规则 eg.公网IP/api/v1/theme/1)
(如果备案好了,则可以用 域名/....(你route.php中设置的路由规则 eg.域名/api/v1/theme/1))
ssh原理与运用:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html
配置mysql允许远程登陆: http://www.cnblogs.com/linjiqin/p/5270938.html
mysql root用户重置密码: https://blog.csdn.net/heatdeath/article/details/78907563
ERROR 2002(HY000)解决办法: https://blog.csdn.net/heatdeath/article/details/78907563
用Navicat for mysql导入.sql文件:https://www.cnblogs.com/keyi/p/5978982.html
阿里云ECS配置TP5项目: https://blog.csdn.net/u014570569/article/details/83275780