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

1 篇文章 0 订阅
订阅专栏
本文详述了如何将本地PHP搭建的网站迁移到阿里云服务器的完整过程,包括购买云服务器、配置LAMP环境(Linux、Apache、MySQL、PHP)、安装图形化界面、迁移网站数据和数据库,并解决了在迁移过程中可能出现的问题,如字符编码和权限设置等。
摘要由CSDN通过智能技术生成

如何将本地使用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端口
配置安全组规则–配置规则–手动添加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
手动添加完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

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 #进入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传到服务器后怎样才能用url访问的方法
灰来飞去的奇幻小屋
02-07 772
在进行公司网站“关于我们”页面的制作过程中我遇到了这样一个问题:将写好的PHP页面用ftp上传到服务器后,输入url不能够访问。我们知道只有PHP服务器端转化为HTML才能够让访问者输入网址后展现出来,但是如果我们需要做一个动态的页面就没法用HTML写,所以PHP传到服务器后怎样才能用url访问呢? 在本文中,我们以“关于我们”这个页面为例。在PHP的MVC模式中,我们仅仅在视图层写了tes...
网站服务器怎么恢复原来数据库,五步骤完成WordPress网站和数据库备份、搬迁恢复访问...
weixin_28730927的博客
08-06 1976
在之前的文章中或者我们自己应该从官方获悉,便宜主机主机商原来OPENVZ架构主机将会在到期后无法续费。而且也没有提供一键快速迁移网站数据或者机房的方法。都需要我们自己新购服务器然后备份网站恢复数据。无论我们在服务器到期之后搬迁到哪个服务商,实际上的操作流程都是一样的。我们需要完成备份、下载、新开、恢复数据等操作。在这篇文章中,便宜主机网整理一篇较为通用的,且结合最近在撰写的建站系列教程,完成网站的...
php本地服务器
11-20
php本地服务器 可以进行本地测试等,很小但是很强大
如何将PHP网站架设到服务器
最新发布
2401_86114608的博客
07-10 370
对于小型网站来说,共享主机或虚拟专用服务器(VPS)通常是不错的选择,它们既能够满足基本的运行需求,又具有较高的性价比。而对于大型网站或需要处理大量并发请求的网站,可能需要选择更高配置的服务器,如独立服务器云服务器。出人意料地,我们还需要在服务器上配置虚拟主机或网站根目录,将域名与网站文件关联起来。在服务器环境配置完成后,我们需要将PHP网站的文件上传到服务器上。在将PHP网站架设到服务器后,我们需要对网站进行详细的测试,以确保各项功能正常运行。这包括检查页面加载速度、表单提交、数据库连接等方面。
[转] 使用 PHP 实现云计算,第 1 部分: 结合使用 Amazon S3 和 Zend Framework
heiyeluren的blog(黑夜路人的开源世界)
11-01 3031
  使用 PHP 实现云计算,第 1 部分: 结合使用 Amazon S3 和 Zend Framework使用 Zend Framework 将数据移入和移出云 级别: 中级Doug Tidwell, developerWorks 员工, IBM2009 年 10 月 14 日Zend Framework 包含了一些类,可以简化基于云的存储服务的使用。本文将解释如
怎么往服务器PHP网站,php网站数据库怎么上传到服务器
weixin_29589357的博客
08-10 166
php网站数据库怎么上传到服务器 内容精选换一换您可以下载备份文件,并通过备份文件进行本地存储备份或者恢复数据。备份文件不支持恢复到本地为Windows操作系统的数据库。由于开源备份工具目前仅支持x86包,不支持ARM,因此,不支持ARM的ECS自建库使用本章操作进行备份文件恢复。您可以使用DRS迁移或数据导出导入的方式,具体请参见数据迁移。通过下载备份文件恢复数据到自建MySQL,请Postgr...
php项目如何上传服务器,php项目上传到云服务器
weixin_35811254的博客
08-13 2606
php项目上传到云服务器 内容精选换一换将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式。本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云服务器的操作方法。Windows云服务器可以访问公网。在本地Windows计算机上,单击“开始”,在出现的“搜索程序和文件”输入框中输入mstsc。弹出远程桌面连接对话框。弹出远程桌面连登录Windows操...
怎样给一个php网站搬家
weixin_34389926的博客
12-11 214
PHP网站分为网站程序和数据库两部分,因此搬家时要分2部分考虑:一是程序,二是数据。 程序部分: 比如旧空间是discuz3.4版本,那么新空间也要安装一个全新的discuz3.4版本。注意版本要一致,后期导入数据库才不会出错----在没有导入数据前,只是普通的PHP网站安装 数据部分: PHP网站备份数据库主要三种方式: 1)直接下载数据库。一般虚拟主机都有管理网站,登陆后进入数据库管理栏目,按...
wordpress网站从阿里云虚拟主机搬家到服务器上的辛酸史!
weixin_44258655的博客
05-09 1810
网站的网速终于从香港虚拟主机中拯救出来了,2019年4月17日开始进行备案,终于在5月5日早上收到信息,网站备案成功。对于一个之前从未进行网站搬家操作的人来说,开启我的网站搬家记录,真是不操作不知道,一操作之后,网站各种问题就排队出来了,写这篇文章也是分享下我的网站搬家中遇到的那些坑爹事!也方便如果谁的网站有需要搬家或者还没搬家的朋友少踩一些雷吧。 和大部分朋友一样,为了搬家,我特意又去看了一下...
dedeCMS 网站迁移过程记录(数据备份迁移+环境搭建+恢复数据)
thomascjc1的博客
06-17 1930
1、网站迁移是一个比较庞大的工程,我也是摸索了2天才最终完成,中间其实有很多插曲,重置了几次云主机系统。2、之前发现旧主机的dede后台在十年前发布的文章数据没有展示,但是在新主机迁移后,十年前发布的文章数据都全部出现了,这算是一个小惊喜吧,具体原因不清楚……3、发现了一些三层和三层文件夹的相对路径填写错误导致的 shtml网页部分区域展示错误的BUG,但是这些问题在旧主机的dede居然一直是正常的,通过排查的确是某个文件夹的相对路径写错了,那么多年一直没发现,这真的很神奇,具体原因不清楚……
阿里云服务器1核1G内存1M带宽能放几个网站及多少流量
weixin_46139104的博客
01-29 514
阿里云服务器1核1G内存1M带宽能放几个网站及多少流量?好多人买了阿里云1核1G内存1M带宽的服务器,却不知道能跑多少流量,也不知道能放几个网站。毕竟都是真金白银买来的,如果在使用期内能够最大限度的利用这个额度,让服务器发挥最大效力,这样才符合我们物尽其用的原则。本文中本文会详细解释这个问题。 1 核 1G 25G SSD云盘 1 核 1G 40G 高效云盘 1 核 1G 40G 高效云盘 轻量应用服务器 适合新手使用 共享基本型 xn4 实例 CPU性能不限,更高性价比 突发性能 t5 实例 .
php 小米路由器_小米路由3 原厂固件OPKG安装 nginx+php+mysql 搭建WEB环境 芒果云等...
weixin_42481708的博客
01-17 1898
本帖最后由 crosscc 于 2017-9-2 16:17 编辑自己路由器是小米路由3,由于自带的APP和和迅雷远程下载,并且可以安装misstar tool(里面有KP SS webshell KMS aria2 远程管理等插件:http://bbs.xiaomi.cn/t-12975500)所以不想刷第三方固件,百毒了小米搭建WEB环境教程,发现只有小米路由1的,在3上安装失败,没有小米路由...
php项目 本地 部署到服务器,如何把本地网站部署到云服务器
weixin_34512840的博客
03-13 998
线下环境和线上环境还是有很大差别的,这篇文章的目的就是方便自己以后迅速的把开发好的网站部署到云服务器上,也方便大家能够遇到问题时能够从本篇文章中找到对应问题。一、购买云服务器,这里以腾讯云为例。如何购买这里就不废话了,购买成功后腾讯云会给你一个站内信,告诉你登录服务器的用户名和密码(我这里买的是centos7.2版本的)二、配置服务器如果你购买的是学生版的,它的默认配置是没有数据盘的,只有一个系统...
网站开发:如何使用php连接云服务器数据库
qq_43122582的博客
12-15 1663
php mysqli 华为云 数据库 宝塔
网站迁移的最佳方法
信息检索与算法研究
05-06 231
从 Google 黑板报 — Google 中国的博客网志 作者:joydandan 转载自谷歌中文网站管理员博客 发表者: Ríona MacNamara,网站管理员工具组 原文:Best practices when moving your site 发表于:2008年4月16日星期...&lt;br /&gt;&lt;!-- Feedsky ad --&gt;&lt;a href...
PHP代码怎么部署到服务器上? centos服务器配置LNMP运行环境及php项目代码详细步骤
weixin_39921970的博客
04-19 1395
步骤一:重置实例密码 步骤二:重启实例,密码才生效 步骤三:安装环境(方式:使用LNMP 安装)或BT面板,有些可能不想使用BT面板,那选择前者部署方式。(LNMP即Linux+Nginx+Mysql+Php,linux下包含CentOS/RHEL/Fedora/Debian/Ubuntu等下面官网有详细描述,不赘述。每种系统对mysqlphp版本有差异要求,具体也参考下面官网的描述) LNMP官方链接:https://lnmp.org/install.html 具体部署步骤: ①安装LNMP稳定版 w
PHP项目部署到云服务器centos+http+php+mysql
qq_50660509的博客
02-24 1089
PHP项目的部署
php网站怎么搬家_wordpress网站怎么搬家
weixin_42301413的博客
03-08 161
wordpress是很流行的博客建站程序,在使用中难免会碰到一些要搬服务器的情况,下面我以服务器上的网站搬到本地127.0.0.1为例,为大家详细介绍。1、备份网站文件(推荐:怎么导出导导入网站文件)简单说就是把服务器网站里的东西都下载下来,我们用ftp工具自己下载未打包的全部文件,其实如果都打包好之后再下载,速度会更快一些,当然家的网速够快,这样也可以。2、备份网站数据库网上说到这里会介绍很多工...
php项目部署到服务器
qq_41544258的博客
04-14 4176
php项目部署到服务器
写文章

热门文章

  • C语言模拟通讯录(大一C语言期末大作业) 16717
  • CSS:利用box-shadow属性实现按钮悬浮效果 3196
  • 【每日小知识分享】Error Lens 一款让代码规范错误无处躲藏的vscode插件 3186
  • 基于Java和HBase的简易图书管理系统 3148
  • 如何将本地使用PHP搭建的网站搬到云服务器 3006

分类专栏

  • JavaScript 1篇
  • Python
  • MySQL
  • C++
  • php 1篇
  • HTML&CSS 3篇
  • 随笔 2篇
  • 一些分享 1篇
  • Node.js

最新评论

  • 基于Java和HBase的简易图书管理系统

    语落ʕ·͡ˑ·ʔ: 请问这个是用hbase连接idea吗

  • 【每日小知识分享】Error Lens 一款让代码规范错误无处躲藏的vscode插件

    梦幻幻影2008: 安装后提示不是中文啊

  • 基于Java和HBase的简易图书管理系统

    夷陵奥巴: 博主有没有完整的workspace啊

  • 基于Java和HBase的简易图书管理系统

    我超幸运12138: 我的程序包都不存在咋办呀?

  • 基于Java和HBase的简易图书管理系统

    have_to_be: 博主,请问你hbase是什么版本的,我的有很多方法都不能用了

大家在看

  • python+flask计算机毕业设计社区服务微信小程序(程序+开题+论文) 696
  • 链表的中间结点
  • Spring的@Configuration注解:深入解析与实战指南 244
  • docker的核心概念整理:docker-compose 32
  • 分布式锁的几种方案对比?你了解多少种呢?

最新文章

  • 【每日小知识分享】Error Lens 一款让代码规范错误无处躲藏的vscode插件
  • 工作中对于代码注释的思考
  • 阿里云服务器CentOS下配置nginx实现反向代理
2022年5篇
2021年6篇
2020年4篇
2019年4篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码同时优化几个网站网站优化易下拉软件经济开发区seo网站优化推广许昌优化网站推广市场前景如何湖州网站长尾关键词优化杭州优化网站排名网站优化大师广州新站网站优化方案头部优化网站永州营销型网站优化优化SEO排名网站推广网站图片修改优化有影响吗汕头优化网站政府网站怎么做优化怎么提高网站的优化妇幼医院网站优化怎么做优化时网站网站建设优化皆选金手指22沈阳省心的餐饮行业网站优化阿勒泰网站关键词优化贵阳专业的seo网站排名优化海南省海口市网站关键词优化新手优化网站推荐兴宁网站排名优化沧州快速优化网站龙岗网站优化公司效果网站关键词优化推广排名重庆网站排名优化360网站优化推广江阴网站推广优化哪个公司比较好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化