其实php部署到服务器的问题并不复杂,但是又很多的朋友都不太了解php项目如何部署在服务器上,因此呢,今天小编就来为大家分享php部署到服务器的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
一、php项目怎么部署到服务器(php项目怎么部署到服务器中)
使用php开发的项目必须部署在才能正常运行
使用PHP开发的项目必须部署在Web服务器上才能正常运行。PHP是一种服务器端脚本语言,用于开发动态网站和Web应用程序。PHP脚本必须在Web服务器上运行,才能被解释和执行。因此,使用PHP开发的项目必须部署在Web服务器上才能正常运行。在部署PHP项目时,需要将PHP脚本文件和相关的资源文件上传到Web服务器上,并配置好Web服务器的环境和参数,以确保PHP脚本能够被正确解释和执行。常用的Web服务器包括Apache、Nginx等,可以根据具体需求选择合适的Web服务器进行部署。需要注意的是,部署PHP项目时需要考虑安全*和*能等因素,以确保项目的稳定*和可靠*。
php项目如何部署??
首先是要对数据结构进行规划,然后根据项目大小决定是否用php框架或模板技术,之后就是后台功能开发,最后再把数据在前台展示出来;这只是基本步骤,真正实施起来,涉及的东西是很多的,要注意的细节也很多
Thinkphp5项目在nginx服务器部署
1,切换到nginx的配置目录,找到nginx.conf文件
????cd?/usr/local/nginx/conf
??vim?nginx.conf
2,如果是单项目部署的话,只需要在nginx.conf文件里面加上以下
server{
????????listen80;
????????#域名,本地测试可以使用127.0.0.1或localhost
????????server_name;
????????#php项目根目录
????????root/home/data-/blog;
????????location/{
????????????????#定义首页索引文件的名称
????????????????indexindex.phpindex.htmlindex.htm;
???????????????#影藏入口文件
???????????????if(-f$request_filename/index.html){
????????????????????????????rewrite(.*)$1/index.htmlbreak;
????????????????}
????????????????if(-f$request_filename/index.php){
????????????????????????????rewrite(.*)$1/index.php;
????????????????}
????????????????if(!-f$request_filename){
????????????????????????????rewrite(.*)/index.php;
????????????????}
????????????????try_files$uri$uri//index.php?$query_string;
????????}
????????#PHP脚本请求全部转发到FastCGI处理.使用FastCGI协议默认配置.
????????#Fastcgi服务器和程序(PHP)沟通的协议
????????.location~.*\.php${
????????????????#设置监听端口
????????????????fastcgi_pass127.0.0.1:9000;
????????????????#设置nginx的默认首页文件
????????????????fastcgi_indexindex.php;
????????????????#设置脚本文件请求的路径
????????????????fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
????????????????#引入fastcgi的配置文件
????????????????includefastcgi_params;
???????????????fastcgi_split_path_info^(.+?\.php)(/.*)$;
????????????????set$path_info$fastcgi_path_info;
????????????????fastcgi_paramPATH_INFO$path_info;
????????????????try_files$fastcgi_script_name=404;
????????}
}
3,如果多项目部署,就需要配置vhost
第一步:编辑nginx.conf文件,在最后加上???include??vhost/*.conf;
第二步:进入vhost文件夹,创建??域名.conf??文件,如创建一个:quanma.meyat..conf
第三步:编辑quanma.meyat..conf文件,内容如下:
????????server
????????{
????????????????listen80;
????????????????server_namequanma.meyat.;
????????indexindex.htmlindex.htmindex.phpdefault.htmldefault.htmdefault.php;
????????????????root/data/root/default/quanma/public/;
????????????????#error_page404/404.html;
????????????????location/{
????????????????????????indexindex.htmlindex.php;
????????????????????????if(-f$request_filename/index.html){
????????????????????????????????rewrite(.*)$1/index.htmlbreak;
????????????????????????}
????????????????????????if(-f$request_filename/index.php){
????????????????????????????????rewrite(.*)$1/index.php;
????????????????????????}
????????????????????????if(!-f$request_filename){
????????????????????????????????rewrite(.*)/index.php;
????????????????????????}
????????????????????????try_files$uri$uri//index.php?$query_string;
????????????????}
????????????????location~[^/]\.php(/|$)
????????????????{
????????????????????????#menttry_files$uri=404;toenablepathinfo
????????????????????????#try_files$uri=404;
????????????????????????fastcgi_pass127.0.0.1:9000;
????????????????????????fastcgi_indexindex.php;
????????????????????????includefastcgi_params;
????????????????????????fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
????????????????????????fastcgi_split_path_info^(.+?\.php)(/.*)$;
????????????????????????set$path_info$fastcgi_path_info;
????????????????????????fastcgi_paramPATH_INFO$path_info;
????????????????????????try_files$fastcgi_script_name=404;
????????????????????????#includefastcgi.conf;
????????????????????????#includepathinfo.conf;
????????????}
????????????location~.*\.(gif|jpg|jpeg|png|bmp|swf)$
????????????{
????????????????????expires30d;
????????????}
????????????location~.*\.(js|css)?$
????????????{
????????????????????expires12h;
????????????}
????????????#Disallowaessto.ht,.svn,.bzr,.git,.hg,.cvsdirectories
????????????location~/\.(ht|svn|bzr|git|hg|cvs){
????????????????????denyall;
????????????}
????????????#aess_log/date/nginx/bmp..conf/aess.logmain;
}
服务器上怎么安装php程序
你好,如果你的服务器是Windows系统,那么你需要远程到你的服务器,进行启动IIS(asp环境),如果你需要php环境,你可以从xp.(小皮)或者bt.(宝塔)安装面板
如果你的服务器是Linux,建议使用宝塔
打开终端,不同Linux系统的输入指令不同:
Centos安装脚本
终端输入:yuminstall-ywgetwget-Oinstall.shshinstall.sh
Ubuntu/Deepin安装脚本
终端输入:wget-Oinstall.shsudobashinstall.sh
Debian安装脚本
终端输入:wget-Oinstall.shbashinstall.sh
Fedora安装脚本
终端输入wget-Oinstall.shbashinstall.sh
输入后进行安装就可以了
php项目如何部署在服务器上
一、阿里ECS服务器配置
???1.因为线上已经有几个站点了.所以要配置ngnix多站点
???2.阿里云ecs目录结构,ngxin在/etc/nginx/目录下,配置的地方主要是nginx.config文件。或者在conf.d新建一个配置文件然后在include到nginx.config文件中
?????
???3.nginx.config新建站点信息
server{
listen???80;
server_name?你的域名.;
root????站点的相对路径;
indexindex.phpindex.htmlindex.htm;
#charsetkoi8-r;
#aess_log?/var/log/nginx/host.aess.log?main;
#Loadconfigurationfilesforthedefaultserverblock.
include/etc/nginx/default.d/*.conf;
location/{
#try_files$uri$uri//index.php;
root?/opt//pcweb/ytyy_pc;
index?index.phpindex.htmlindex.htm;???????if(!-e$request_filename){?rewrite?^(.*)$/index.php?s=$1?last;?break;??}}??????url重写(可以没有)
#redirectservererrorpagestothestaticpage/40x.html
#
error_page?404???????/404.html;?40错误页面配置
location=/40x.html{
}
#redirectservererrorpagestothestaticpage/50x.html
#
error_page?500502503504?/50x.html;?50错误页面配置
location=/50x.html{
}
location~\.php${
root?????站点相对路径;
fastcgi_pass?127.0.0.1:9000;
fastcgi_index?index.php;
fastcgi_param?SCRIPT_FILENAME?$document_root$fastcgi_script_name;
include????fastcgi_params;
}
location~/\.ht{
deny?all;
}
}
配置文件的基本内容如上;
配置完成后测试配置文件是否正确
这样配置就可以使用了
然后重启nginx服务器?
这样nginx配置就结束了可以使用了。吧站点文件放到对应的目录下面。我gitclone过去的。
二.thinkphp项目文件转移
本来以为上传完就结束了。上传上去碰到的第一个问题就是访问页面报错,页面被电信的114页面劫持了。。。麻蛋看不到报错
万能百度大法
解决方法1.inter高级选项-隐私-站点??新加阻止站点
解决方法2:控制面板-网络和inter-本地连接-属*-ipv4?使用如下ip
终于搞定可以看到报错页面了。。。。。。麻蛋。再次开启万能百度大法
?
?
?得到最终结论是文件目录权限引起的。thinkphp的runtime目录没有写入权限。。thinkphp文件上传到阿里的好像都有这个问题。解决问题很简单
进入到项目文件目录
跟文件最高权限
chmod-R777[目录]?//linux修改文件权限
?
前端vue与后端Thinkphp在服务器的部署
vue在服务端部署时,我们都知道通过npmrunbuild指令打包好的dist文件,通过指定是可以浏览的,Thinkphp通过域名指向index.php文件才可以浏览。要使前端正常调用后端数据,有两种方法:1、前端跨域调用后端数据,2、前端打包文件部署在后端的服务器文件夹下(同域)。
web服务器:apache
一、跨域
在服务器配置站点:
在路径/home//??下创建test项目文件夹,用来放项目文件。??
找到d-vhosts.conf文件配置站点??
前端站点:??
????ServerName?test.test.??
????DocumentRoot?"/home//test/dist"????
????DirectoryIndex?index.html??
后端站点:??
????ServerName?test.testphp.??
????DocumentRoot?"/home//test/php"????
????DirectoryIndex?index.php??
将前端打包好的dist文件放在/home//test/文件夹下,运行可浏览,当路径改变时,刷新会出现404错误。此时dist文件下创建一个.htaess文件,当路径不存在时,路径指向能解决此问题。
??RewriteEngine?On??
??RewriteBase?/??
??RewriteRule?^index\.html$?-?[L]??
??RewriteCond?%{REQUEST_FILENAME}?!-f??
??RewriteCond?%{REQUEST_FILENAME}?!-d??
??RewriteRule?.?/index.html?[L]??
在/home//test文件夹下创建项目根目录php文件夹,将thinkphp文件放在php下。TP5的入口文件在public文件下,在这将public下的入口文件index.php挪到php文件夹下(个人习惯将入口文件放在项目根目录),后端绑定Index模块。
前端调用后端接口,存在跨域,跨域解决方法有好几种,在这我将在后端php做配置,解决跨域问题,在公用控制器设置跨域配置:
class?Common?extends?Controller??
{??
????public?$param;??
????//?设置跨域访问??
????public?function?_initialize()??
????{??
????????parent::_initialize();??
????????isset($_SERVER['HTTP_ORIGIN'])???header('Aess-Control-Allow-Origin:?'.$_SERVER['HTTP_ORIGIN'])?:?'';??
????????header('Aess-Control-Allow-Credentials:?true');??
????????header('Aess-Control-Allow-Methods:?GET,?POST,?PUT,?DELETE,?OPTIONS');??
????????header("Aess-Control-Allow-Headers:?Origin,?X-Requested-With,?Content-Type,?Aept,?authKey,?sessionId");??
$param?=??Request::instance()-param();??
$this-param?=?$param;??
????}??
}??
前端调用登录接口:this.axios.post('',{user:'',password:''})。
(可在webpack.base.conf.js文件下可定义接口:)
二、同域
后端配置同上,公共配置器中的header配置注释。将前端的dist文件下的所有文件(包含.htaess),放在php文件夹下。将后端index控制器的index方法的路径重定向php下的index.html文件:
namespace?\index\controller;??
use?think\Controller;??
class?Index?extends?Controller??
{??
????public?function?index()?{??
$this-redirect('/index.html');??
????}??
}??
前端调用登录接口:this.axios.post('/index.php/base/login',{user:'',password:''})
转自:
二、php网站怎么传到云服务器
要将网站上传到服务器上,方法有多种。上传时可以按网站目录传也可以打包成一个zip或
rar文件一次传。
可选择的方法有:
(1)FTP方式。如果你的网站上安装有FTP服务器(比如IIS上就有FTP服务器),可以使用文件夹栏中输入ftp://你的服务器ip的方式(或使用ftp客户端软件)连接上去,然后选择php网站文件上传即可。
(2)既然使用云服务器,应该可以通过远程桌面程序登录。那么可以按如图所示操作:
第一步,打开“远程桌面连接”程序(“开始”->“所有程序”->“附件”->“远程桌面连接”);
第二步,如上图显示,“本地资源”选项卡;
第三步,在选项卡中,本地设备和资源中的“详细信息”,弹出一个对话框;
第四步,在对话框中找到“驱动器”,左边的+号,就会在下面列出如图上所示的你的电脑上的分区(图片中是我电脑上的),选择你php网站所在的那个盘打个勾;
第五步,确定关闭对话框后,开始连接。
这样和原来一样连接远程服务器后,就能在云服务器的“我的电脑”中看到你本地电脑上刚勾选的那个盘了,然后在服务器上就能像操作你电脑一样,将文件从服务器复制粘贴到你的电脑上或从你的电脑上复制粘贴到服务器上了。
三、php项目如何部署在服务器上
一、阿里ECS服务器配置
1.因为线上已经有几个站点了.所以要配置ngnix多站点
2.阿里云ecs目录结构,ngxin在/etc/nginx/目录下,配置的地方主要是nginx.config文件。或者在conf.d新建一个配置文件然后在include到nginx.config文件中
3.nginx.config新建站点信息
server{
listen 80;
server_name 你的域名.;
root站点的相对路径;
index index.php index.html index.htm;
#charset koi8-r;
#aess_log/var/log/nginx/host.aess.log main;
# Load configuration files for the default server block.
include/etc/nginx/default.d/*.conf;
location/{
#try_files$uri$uri//index.php;
root/opt//pcweb/ytyy_pc;
index index.php index.html index.htm; if(!-e$request_filename){ rewrite ^(.*)$/index.php?s=$1 last; break;}} url重写(可以没有)
# redirect server error pages to the static page/40x.html
#
error_page 404/404.html; 40错误页面配置
location=/40x.html{
}
# redirect server error pages to the static page/50x.html
#
error_page 500 502 503 504/50x.html; 50错误页面配置
location=/50x.html{
}
location~ \.php${
root站点相对路径;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
include fastcgi_params;
}
location~/\.ht{
deny all;
}
}
配置文件的基本内容如上;
配置完成后测试配置文件是否正确
这样配置就可以使用了
然后重启nginx服务器
这样nginx配置就结束了可以使用了。吧站点文件放到对应的目录下面。我git clone过去的。
二.thinkphp项目文件转移
本来以为上传完就结束了。上传上去碰到的第一个问题就是访问页面报错,页面被电信的114页面劫持了。。。麻蛋看不到报错
万能百度大法
解决方法1.inter高级选项->隐私->站点新加阻止站点
解决方法2:控制面板->网络和inter->本地连接->属*->ipv4使用如下ip
终于搞定可以看到报错页面了。。。。。。麻蛋。再次开启万能百度大法
得到最终结论是文件目录权限引起的。thinkphp的runtime目录没有写入权限。。thinkphp文件上传到阿里的好像都有这个问题。解决问题很简单
进入到项目文件目录
跟文件最高权限
chmod-R 777 [目录]//linux修改文件权限