本文目录一览:
- 1、怎样在远程 Web 服务器上部署 PHP 应用程序
- 2、服务器上怎么安装php程序
- 3、服务器程序源代码分析之二:php-fpm
- 4、PHP部署开发服务器
- 5、php项目如何部署在服务器上
- 6、php程序怎么部署运行
怎样在远程 Web 服务器上部署 PHP 应用程序
用scp scp 文件名 1 远程用户名 @IP 地址 : 文件名 2
例如 scp /tmp/project/index.php servername:/webroot
把本地index.php文件传输到服务器上的webroot目录下 !
服务器上怎么安装php程序
你好,如果你的服务器是Windows系统,那么你需要远程到你的服务器,进行启动IIS(asp环境),如果你需要php环境,你可以从xp.cn(小皮)或者bt.cn(宝塔)安装面板
如果你的服务器是Linux,建议使用宝塔
打开终端,不同Linux系统的输入指令不同:
Centos安装脚本
终端输入:yum install -y wget wget -O install.sh sh install.sh
Ubuntu/Deepin安装脚本
终端输入:wget -O install.sh sudo bash install.sh
Debian安装脚本
终端输入:wget -O install.sh bash install.sh
Fedora安装脚本
终端输入wget -O install.sh bash install.sh
输入后进行安装就可以了
服务器程序源代码分析之二:php-fpm
php作为排名top2 互联网开发工具,非常流行,可以参考:中国最大的25个网站采用技术选型方案
php这个名称实际上有两层含义
直接定义:
php-fpm从php5.3.3开始已经进入到php源代码包,之前是作为patch存在的
很少人会去读php本身源代码,我6年前解决php内存泄露问题的时候做了些研究,最近再查看了一番,发现php的开发者很有诚意,这是一款非常出色的服务器软件,支持如下
在linux服务器上,如果不设置 events.mechanism ,那么默认就是采用epoll,所以
php-fpm的IO模型并发处理能力和nginx是完全一致
nginx以性能卓越闻名,大部分程序员都认为php效率低下,看了源代码,才知道这是传奇啊
在高性能部署的时候,大家往往会针对性的优化nginx 。我自己之前部署php程序也犯了错误,8G内存的server,php-fpm的max children都会设置128+,现在看来太多了,参考nginx的部署:
php-fpm配置为 3倍 cpu core number就可以了
php-fpm稳定性比nginx稍差 这是因为php-fpm内置了一个php解析器,php-fpm进程就和php程序捆绑了,如果php脚本写得不好,有死循环或者阻塞在某个远端资源上,会拖累加载它的php-fpm进程
而nginx和后端应用服务器之间通过网络连接,可以设置timeout,不容易堵死的
php-fpm的fastcgi是短连接 我原以为是长连接的,看了代码才知道也是短连接,处理一个request就关闭掉
php-fpm接口采用fastcgi 非常遗憾,php-fpm和fastcgi完全绑定了,无法独立使用 。只能部署在支持http-fcgi协议转换程序背后(nginx)。其实可以考虑在php-fpm代码包里面引入http协议支持,这样php-fpm可以独立运行,让nodejs无话可说
php-fpm等同于OpenResty OpenResty是一个国人开发的nginx模块,就是在nginx引入lua解释器. 实际上,它和php-fpm的唯一差别就是一个采用php语法,一个用lua,所以OpenResty要作为nginx增强包使用还可以,要选择它作为一个主要编程工具,没有任何必要
从架构上来说,php-fpm已经做到最好,超过大多数 python部署工具,我再也不黑它了
PHP部署开发服务器
当然是安装php服务器了
php是支持跨平台的,理论上是可以一次编译四处运行的,但是有些地方还是需要注意的 比如windows系统的盘符路径和其他系统是不一样的,当你的程序设计不好的时候上传下载的功能跨平台就不能用了
要发布网站首先你需要有独立的公网ip地址然后在路由器上做端口映射。顺便说一下那些所谓的共享宽带基本都是不可以的
只要满足3的条件当然可以
内网只要直接访问服务器的内网ip地址就ok了
php项目如何部署在服务器上
一、阿里ECS服务器配置
1.因为线上已经有几个站点了.所以要配置ngnix多站点
2.阿里云ecs目录结构,ngxin 在/etc/nginx/目录下,配置的地方主要是nginx.config文件。或者在conf.d新建一个配置文件然后在include到nginx.config文件中
3.nginx.config新建站点信息
server {
listen 80;
server_name www.你的域名.com;
root 站点的相对路径;
index index.php index.html index.htm;
#charset koi8-r;
#access_log /var/log/nginx/host.access.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/www/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.internet高级选项-隐私-站点 新加阻止站点
解决方法2:控制面板-网络和internet-本地连接-属性-ipv4 使用如下ip
终于搞定可以看到报错页面了。。。。。。麻蛋。再次开启万能百度大法
得到最终结论是文件目录权限引起的。thinkphp 的runtime目录没有写入权限。。thinkphp文件上传到阿里的好像都有这个问题。解决问题很简单
进入到项目文件目录
直接跟文件最高权限
chmod -R 777 [目录] //linux修改文件权限
php程序怎么部署运行
首先你要有windows2003和iis6.0(6.0以下就免谈了)。
然后要安装的东东依次为:php5.2,mysql5.0,phpmyadmin2.11
这些东西一个个去找实在是太麻烦了,幸好我们有wamp。
只要学会了安装wamp,那么就只剩下“配置”了。
下面所有牵涉到的文件路径都以wamp为准,php在wamp中的目录为wamp\bin\php\php5.2.5。
要让iis能够解析php,首先要把php.ini复制到c:\windows目录下,把php5isapi.dll复制到c:\windows\system32下。
然后从windows2003的管理工具中进入iis,新添加一个web服务扩展,扩展名可以任意填写,比如说“php服务扩展”,要求的文件则是php5isapi.dll,勾上“设置扩展状态为允许”。
然后新建一个网站,假设已经有了一个网站,右键“属性”,为网站创建一个“应用程序池”,执行权限为“脚本和可执行程序”,点击“配置”,添加一个
“应用程序扩展”,在新弹出的窗口中,可执行文件选择刚才的php5isapi.dll(最好是c:\windows\system32下的),”扩展
名”为.php,动作限制为“get,head,post,trace”,勾去“确认文件是否存在”
ok,这样php就基本上配置好了,可以去网站根目录下创建一个index.php,写入“
?php
phpinfo();?”,然后打开浏览器测试一下就可以了。
首先你必须修改php.ini,找到extension_dir这个参数,假设wamp安装在d盘,改成
extension_dir
=
“d:\wamp\bin\php\php5.2.5\ext\”,然后找到extension=php_mysql.dll和
extension=php_mysqli.dll,确保他们之前的逗号已经去掉。
接下就是关键了,在wamp\bin\php\php5.2.5目录下有一个关键的文件libmysql.dll,昨天困扰了许久,才想起以前配置
mysql的惨痛经历(都是wamp惹的祸,把php/mysql的安装搞的太简单了),这个文件一定要复制到c:\windows\system32目
录下去,否则就算在php.ini里面打开extension=php_mysql.dll也没有用,当浏览需要连接mysql的页面时,会报错说
“mysql”类型不存在。
我们就遇到了这样一个实际问题:54上已经在运行asp以及asp.net的网站,iis抢占了80端口,apache就不能使用了,这样难道你要别人在
单,在wamp中找到httpd.conf文件,将其中所有“80”字样替换成你想要的端口,重启apache就可以了。apache里面一共有4个地方
需要修改80:
listen
80,servername
localhost:80,namevirtualhost
*:80,前2个是默认的,后2个是配置了virtualhost才会出现。/pre
评论
加载更多