如何将本地使用PHP搭建的网站搬到云服务器

如何将本地使用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 #启动apache
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端口
配置安全组规则–配置规则–手动添加
如何将本地使用PHP搭建的网站搬到云服务器_第1张图片
如何将本地使用PHP搭建的网站搬到云服务器_第2张图片
如何将本地使用PHP搭建的网站搬到云服务器_第3张图片
手动添加完80端口后,通过上面命令开启http服务,http服务开启之后,因为我们刚配置完安全组规则,就需要设置防火墙允许80端口

firewall-cmd --zone=public --add-port=80/tcp

如果执行命令出现FirewallD is not running,那么这是因为防火墙关闭的缘故,我们需要打开防火墙

systemctl status firewalld #查看防火墙状态,如果是dead状态则是未开启
systemctl start firewalld #开启防火墙,再次查看防火墙状态是running,即为已开启
systemctl stop firewalld #关闭防火墙

再次执行允许80端口的命令,执行结果为SUCCESS即为成功
现在我们可以通过公网IP访问到我们的服务器了
如何将本地使用PHP搭建的网站搬到云服务器_第4张图片
安装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进入编辑模式)


    phpinfo();
?>

esc 回到控制模式,:wq 保存退出
浏览器访问域名加路径,运行test.php. 如: 000.0.0.0/test.php
如何将本地使用PHP搭建的网站搬到云服务器_第5张图片
如果内容原样输出出来,就说明成功啦~然后请重启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,"[email protected]");
 
查询表中数据
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


    $conn=mysql_connect("localhost","root","这里是你设置的mysql密码");
    if($conn){
    echo "mysql链接成功";
    }else{
      echo "失败";
    }
?>

通过访问testMySQL.php可以测试数据库的连接情况
如何将本地使用PHP搭建的网站搬到云服务器_第6张图片
哈哈,到此,我们LAMP的配置就全部OK啦~

3.迁移网站数据

迁移本地数据到云服务器的工作我是使用上面分享过的Xftp软件,只需要简单的拖拽即可将本地文件上传到自己的云服务器中,上面说过,云服务器的web站点根目录是/var/www/html/,所以我们把本地www下的web文件拷贝到云服务器对应的html/下即可
如何将本地使用PHP搭建的网站搬到云服务器_第7张图片
网站文件已经迁移好了,然后需要将本地的数据库迁移到云服务器中的数据库中
首先需要把本地MySQL中的数据库导出为.sql文件放入云服务器目录中
以Navicat为例
如何将本地使用PHP搭建的网站搬到云服务器_第8张图片
导出为.sql文件放入云服务器目录中
然后回到云服务器开始导入操作

mysql -h localhost -u root -p #进入mysql
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项目迁移到云服务器的过程,迁移的这个项目比较简易和原始,所以涉及到的配置也相应少一些,如有不足之处,还请您见谅和指出~

你可能感兴趣的:(php,服务器,php,apache,mysql,centos)