如何将本地使用PHP搭建的网站搬到云服务器
已经毕业快一年了,去年这个时候还在忙活自己的毕设,由于对于Java不太熟练,所以就先使用php写的网站后台,很简易,但是对于当时的自己还是很有成就感的,心里一直想着把自己做的php版本网站搬到云服务器上,外界就可以访问到自己的网站了,哈哈,是不是很有趣,下面我就介绍一下这一轻(jian)松(nan)的过程~
一、购买云服务器
这里暂不介绍,因为过程我没记录,哈哈哈,后续会补上,服务器是阿里云的云服务器ECS,系统是CentOS 7。
二、配置服务器(LAMP)
LAMP===Linux+Apache+MySQL+PHP,很多朋友在Windows上使用过WAMP这款开箱即用软件,在Linux上也需要我们配置相关环境来保证我们的网站得以运行。 阿里云服务器是支持线上直接连接服务器的,但是我向大家推荐两个就与ftp和ssh的远程连接软件,分别是Xftp和Xsheel,有需自取~使用方法自行百度,只需要有公网IP和登录账户密码即可。 链接:https://pan.baidu.com/s/1xWJvHkPq3lyyc_sxra3iVw 提取码:gcgc
1.检查是否已经安装过相关服务
检查Apache
httpd -v
检查MySQL
service mysqld start
清理命令:
yum remove mysql
rm -f /etc/my.cnf
rpm -qa | grep httpd
另外阿里云购买的云服务器已经包含了上网服务,记得把shell切到~下,以root用户登录即可
2.安装相关服务
安装Apache
yum -y install httpd
注意安装命令执行结束后,结尾是Complete!字样,如果安装失败,请检查网络或者重新执行命令 安装Apache扩展
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
启动Apache 注意启动命令在CentOS 6和7上有区别 CentOS 6
service httpd start
CentOS 7
systemctl start httpd.service
systemctl stop httpd.service
systemctl restart httpd.service
systemctl enable httpd.service
注意,下文中基本都是以CentOS 7为背景的命令,如果你是CentOS 6,请注意版本间命令的部分区别。 检查安装 如果你的云服务器内存足够,你可以安装CentOS图形界面GNOME来通过在浏览器里直接访问127.0.0.1来验证是否安装成功。 安装图形化界面GNOME的步骤这里不展开细讲,请找度娘,哈哈 另外我们可以通过访问云服务器的公网IP配合80端口来验证,比如xxx.x.x.x:80 首先需要验证云服务器公网IP是否允许外网访问,可以使用ping命令ping ip地址检查是否可以访问串,一般情况下都是允许直接通过IP访问的。 但是云服务初始化时默认是没有80端口的,所以我们需要去云服务器的安全组手动配置安全组规则,开放80端口 配置安全组规则–配置规则–手动添加 手动添加完80端口后,通过上面命令开启http服务,http服务开启之后,因为我们刚配置完安全组规则,就需要设置防火墙允许80端口
firewall-cmd --zone=public --add-port=80/tcp
如果执行命令出现FirewallD is not running,那么这是因为防火墙关闭的缘故,我们需要打开防火墙
systemctl status firewalld
systemctl start firewalld
systemctl stop firewalld
再次执行允许80端口的命令,执行结果为SUCCESS即为成功 现在我们可以通过公网IP访问到我们的服务器了 安装PHP
yum -y install php
安装php-fpm
yum -y install php-fpm
安装php扩展
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel php-mysql php-odbc
测试PHP安装 /var/www/html是web资源的根目录,未来的网站资源就是放在这里 我们可以在根目录下编写一个测试文件test.php
cd /var/www/html
touch test.php
vim test.php
编辑代码(i进入编辑模式)
<?php
phpinfo();
?>
esc 回到控制模式,:wq 保存退出 浏览器访问域名加路径,运行test.php. 如: 000.0.0.0/test.php 如果内容原样输出出来,就说明成功啦~然后请重启Apache 安装MySQL
yum -y install mysql
安装mysql-server
yum -y install mysql-server
会报错,说没有这个安装包。所以先做以下步骤: 第一步:安装从网上下载文件的wget命令
yum -y install wget
第二步:下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
第三步:安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
第四步:查看下
ls -1 /etc/yum.repos.d/mysql-community*
会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo 第五步:启动MySQL
systemctl start mysqld.service
systemctl stop mysqld.service
systemctl restart mysqld.service
systemctl enable mysqld.service
6.配置mysql 初次安装mysql是没有密码的,要设置密码,默认账户为root 设置mysql root账户的密码
mysql_secure_installation
第一步输入当前密码(初始密码为空,直接回车即可) 第二步和第三步是设置密码和确认密码 第四步是删除匿名用户,输入Y 第五步是不允许root远程连接,输入n 第六步是删除测试数据并访问它,输入Y 第七步是重新加载表数据,输入Y
7.mysql编码问题 在CentOS7中修改文件/etc/my.cnf 打开配置文件: vi /etc/my.cnf; 在[mysqld],[mysql],[client]下分别添加如下内容
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
重启mysql服务
systemctl restart mysqld.service
接下来测试是否能插入中文数据: 进入mysql数据库
mysql -h localhost -u root -p
回车后 输入密码 密码不可见
列出数据库的编码表
mysql> show variables like '%char%';
可以看下character_set_database和character_set_server是否都已经被改为utf8
mysql> set character_set_database=utf8;
mysql> set character_set_server=utf8;
查询所有的库
mysql> show databases;
创建数据库test
mysql> create database test;
创建表
create table t_person(
id int primary key auto_increment,
name varchar(20),
age int,
email varchar(25)
);
插入数据
insert into t_person(name,age,email) values("测试",18,"test@test.com");
查询表中数据
mysql> select * from t_person;
查询所有的表
mysql> show tables;
删除数据库
mysql> drop database test;
drop table 表名
delete from 表名 where 条件
若插入成功就证明配置中文编码成功 我们来测试一下刚刚安装的服务与配置的环境----mysql+apache+php 写一个php文件testMySQL.php在/var/www/html
<?php
$conn=mysql_connect("localhost","root","这里是你设置的mysql密码");
if($conn){
echo "mysql链接成功";
}else{
echo "失败";
}
?>
通过访问testMySQL.php可以测试数据库的连接情况 哈哈,到此,我们LAMP的配置就全部OK啦~
3.迁移网站数据
迁移本地数据到云服务器的工作我是使用上面分享过的Xftp软件,只需要简单的拖拽即可将本地文件上传到自己的云服务器中,上面说过,云服务器的web站点根目录是/var/www/html/,所以我们把本地www下的web文件拷贝到云服务器对应的html/下即可 网站文件已经迁移好了,然后需要将本地的数据库迁移到云服务器中的数据库中 首先需要把本地MySQL中的数据库导出为.sql文件放入云服务器目录中 以Navicat为例 导出为.sql文件放入云服务器目录中 然后回到云服务器开始导入操作
mysql -h localhost -u root -p
create database xxx;(创建数据库)
show databases;(就可看到所有已经存在的数据库,以及刚刚创建的数据库abc)
use xxx;(进入xxx数据库下面)
show tables;(查看xxx数据库下面的所有表,空的)
source /var/xxx/xxx.sql(导入数据库表,这里sql文件路径为您自己存放的路径)
show tables;(查看xxx数据库下面的所有表,就可以看到表了)
desc 表名;(查看表结构设计)
select * from 表名;
exit; 退出mysql
验证完毕,导入sql成功后重启httpd服务和mysql服务即可通过公网IP访问已迁移的网站 问题集锦: 1、有的时候会遇到mysql密码不对的情况,这种情况一定要保证php代码里连接MySQL的密码要和云服务器的MySQL密码一致; 2、MySQL中中文正常展示但是页面中文确是???的问题。可以通过修改php连接文件解决
$conn = new mysqli("localhost", "root", "12345678");
$conn->query("set names 'utf8'");
if ($conn->connect_error) {
die("数据库连接失败" . $conn->connect_error);
}
3、有的时候会遇到php中的mkdir等读写语句失效的问题,我们需要对对应的文件目录设置权限
cd /www/html/xxx
chmod -R 777 /www/html/xxx
尾声
以上就是我在将本地PHP项目迁移到云服务器的过程,迁移的这个项目比较简易和原始,所以涉及到的配置也相应少一些,如有不足之处,还请您见谅和指出~
|