在Ubuntu中安装PHP

Ubuntu实用工具系列文章,将介绍基于Linux ubuntu的各种工具软件的配置和使用。有些工具大家早已耳熟能详,有些工具经常用到但确依然陌生。我将记录我在使用操作系统时,安装及配置工具上面的一些方法,把使用心得记录下来也便于自己的以后查找和回忆。

关于作者:

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/linux-php-install/

linux-php

前言

PHP是一种高效的Web开发语言,可以嵌入在 HTML 并由服务器解释的脚本语言。PHP比CGI或者Perl更快速地执行动态网页,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

PHP已广泛地被使用在各种Web系统和应用中。

目录

  1. PHP在Windows中安装
  2. PHP在Linux Ubuntu中安装

1 PHP在Windows中安装

1.1 下载并解压PHP

在Windows中安装PHP环境非常简单,直接下载压缩文件(zip),解压即可。下载地址:http://windows.php.net/download/

解压目录:D:\toolkit\php-5.5.11

我们运行php.exe时,会弹出一个错误,计算机丢MSVCR110.ddl。

win-php

当遇到这个错误,我们需要安装VC11的相关组件,去微软官方去下载对应的组件。下载链接:http://www.microsoft.com/zh-CN/download/details.aspx?id=30679

下载对应的32位或64位的版本,双击安装下载的文件vcredist_x64.exe。我们再次双击php.exe,运行PHP正常。

安装后PHP环境后,我们还需要安装Web服务器,比如Apache, Nginx, ISS等。

1.2 下载并解压Nginx

我在这里介绍一下Nginx作为PHP的Web服务器的安装和配置。

下载Window版本的Nginx压缩文件(zip),下载地址:http://nginx.org/en/download.html

解压目录:D:\toolkit\nginx-1.5.11

+ Nginx服务器运行命令:Nginx安装目录/nginx.exe

1.3 让PHP在Nginx中运行

1.3.1 修改PHP配置文件

让我们先配置PHP环境

进入PHP目录D:\toolkit\php-5.5.11,复制php.ini-development文件并创建新文件php.ini

编辑php.ini


~ vi php.ini

;设置PHP工作目录
extension_dir = "D:/toolkit/php-5.5.11/ext"

;设置支持mysql
extension=php_mysql.dll
extension=php_mysqli.dll

;让Nginx找到PHP
cgi.fix_pathinfo=1

注: php.ini文件中,分号”;”为注释

启动PHP的CGI程序,监听9000端口:

在Window的命令行窗口输入


~ D:\toolkit\php-5.5.11>php-cgi.exe -b 127.0.0.1:9000 -c php.ini

1.3.2 修改Nginx配置文件

进入Nginx目录D:\toolkit\nginx-1.5.11,找到配置文件conf/nginx.conf

  • PHP文件运行目录,D:/workspace/php
  • 设置访问域名,php.me
  • 设置对.php文件,通过fastcgi转向127.0.0.1:9000解析

编辑文件conf/nginx.conf


~ vi conf/nginx.conf

http {

   # 忽略部分代码

   server {
       set $htdocs D:/workspace/php/;

       listen 80;
       server_name php.me;

       location / {
           root $htdocs;
           autoindex on;
           index index.php index.html;
       }

       location ~ \.php$ {
           include fastcgi_params;
           fastcgi_index index.php;
           fastcgi_pass 127.0.0.1:9000;
           fastcgi_param SCRIPT_FILENAME $htdocs$fastcgi_script_name;
       }
   }
}

启动Nginx服务器


~ D:\toolkit\nginx-1.5.11>nginx.exe

1.3.3 设置host

在host中把域名php.me映射为本机IP 127.0.0.1

编辑文件C:\Windows\System32\drivers\etc\hosts


~ vi C:\Windows\System32\drivers\etc\hosts

127.0.0.1   php.me

在命令行窗口用ping命令


~ ping php.me

正在 Ping php.me [127.0.0.1] 具有 32 字节的数据:
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64
来自 127.0.0.1 的回复: 字节=32 时间<1ms TTL=64

127.0.0.1 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

1.3.4 PHP测试文件

在目录 D:/workspace/php/ 中,新建一个PHP的文件env.php


~ vi env.php

<?php phpinfo(); ?>

1.3.5 在浏览器中,查看PHP运行情况

在浏览器中打开HTTP地址:http://php.me/env.php

php-env

这样我们就完成了,PHP在Window中的配置。

2 PHP在Linux Ubuntu中安装

相比Windows中略显繁琐的配置,在Ubuntu中几行命令就可以完成。

我们将同样构建PHP与Nginx结合的Web服务器环境。

2.1 下载并安装PHP

默认情况,Ubuntu中会自带PHP。


# 查看PHP的版本
~ php -version
PHP 5.3.10-1ubuntu3.10 with Suhosin-Patch (cli) (built: Feb 28 2014 23:14:25)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

# 安装PHP依赖库
~ sudo apt-get install php5-cli php5-cgi

2.2 下载并安装Nginx

下载并安装nginx


~ sudo apt-get install nginx

# 启动nginx
~ sudo /etc/init.d/nginx start

# 查看Nginx运行状态
~ sudo /etc/init.d/nginx status
 * nginx is running

# 查看Nginx进程
~ ps -aux|grep nginx
root      2306  0.0  0.0  62860  1344 ?        Ss   15:31   0:00 nginx: master process /usr/sbin/nginx
www-data  2307  0.0  0.0  63216  1916 ?        S    15:31   0:00 nginx: worker process
www-data  2308  0.0  0.0  63216  1656 ?        S    15:31   0:00 nginx: worker process
www-data  2309  0.0  0.0  63216  1916 ?        S    15:31   0:00 nginx: worker process
www-data  2310  0.0  0.0  63216  1656 ?        S    15:31   0:00 nginx: worker process

2.3 下载并安装spawn

spawn是一个FastCGI的应用,可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。

安装spawn-fcgi


~ sudo apt-get install spawn-fcgi

启动spawn-fcgi


~ sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -C 5 -p 9000 -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid
spawn-fcgi: child spawned successfully: PID: 2940

# 查看进程
~ ps -axu|grep cgi
root      2940  0.0  0.0  55196  6292 ?        Ss   15:40   0:00 /usr/bin/php-cgi
root      2941  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2942  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2943  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2944  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi
root      2945  0.0  0.0  55196  2840 ?        S    15:40   0:00 /usr/bin/php-cgi

2.4 修改Nginx配置文件

  • PHP文件运行目录,/home/conan/php
  • 设置访问域名,ubuntu.php.me
  • 设置对.php文件,通过fastcgi转向127.0.0.1:9000解析

编辑文件:nginx.conf


~ sudo vi /etc/nginx/nginx.conf

http {

   # 忽略部分代码

   server {
       set $htdocs /home/conan/php;

       listen 80;
       server_name ubuntu.php.me;

       location / {
           root $htdocs;
           autoindex on;
           index index.php index.html;
       }

       location ~ \.php$ {
           include fastcgi_params;
           fastcgi_index index.php;
           fastcgi_pass 127.0.0.1:9000;
           fastcgi_param SCRIPT_FILENAME $htdocs$fastcgi_script_name;
       }
   }
}

重启nginx服务器


~ sudo /etc/init.d/nginx restart
Restarting nginx: nginx.

2.5 设置host

在host中把域名ubuntu.php.me映射为本机IP 127.0.0.1


~ sudo vi /etc/hosts

127.0.0.1       ubuntu.php.me

用ping测试ubuntu.php.me


~ ping ubuntu.php.me
PING ubuntu.php.me (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_req=1 ttl=64 time=0.040 ms
64 bytes from localhost (127.0.0.1): icmp_req=2 ttl=64 time=0.031 ms
64 bytes from localhost (127.0.0.1): icmp_req=3 ttl=64 time=0.067 ms

2.6 PHP测试文件

在目录 /home/conan/php 中,新建一个PHP的文件env.php


~ mkdir /home/conan/php

~ vi /home/conan/php/env.php

<?php phpinfo(); ?>

2.7 在浏览器中,查看PHP运行情况

在浏览器中打开HTTP地址:http://ubuntu.php.me/env.php

ubuntu-php

注:在浏览器端的host文件中,设置ubuntu.php.me域名对应到IP的映射。

这样我们完成了PHP在Ubuntu中的安装和配置了!

转载请注明出处:
http://blog.fens.me/linux-php-install/

打赏作者

This entry was posted in 其他语言

  • 为什么你装spawn 而不是php-fpm呢? 后者有什么性能问题吗

    • 没测过性能,spawn用了很多年了没什么问题,就一直用了。

  • 我电脑的系统是win7 在virtualbox里装了个centOS

    我现在想要让虚拟机连上外网 同时同时也能从win7访问centOS上的web服务器

    但现在两个系统都可以访问网络了 我也能从win7通过SSH远程登录centOS 可就是不能访问centOS上的网站

    这是哪儿出了问题? 有没有靠谱教程推荐,我在网上找到都没成功

    • 你要检查一下虚拟机的网络,是NAT还是桥接?按照你的这种这要,最好使用桥接的方式。虚拟机和宿主,都会分配到内网的路由IP上面。

      我没有写virtualbox的教程,KVM到是有配置教程。

      • 我是用桥接 宿主IP是 192.168.1.105 我给虚拟机设置静态IP是192.168.1.108 它的网关就是宿主的IP 这样对吗? 还是我理解有误? 网关就用我家里内网的网关?

        • 网关是路由地址,一般是192.168.1.1;如果能ping通,应该就可以访问。另外,上图中混杂模式,可以改成“全部允许”

      • 见下面截图

      • 知道怎么回事了 是centOS防火墙阻止外界对80端口的访问了 我居然忘了设置这个

  • ff2345

    我用php的system(“cat runGO.R|R –vanilla –args “.$_POST[‘enrich’],$stdout)调用R脚本,要到了要做几秒钟运算的时候就停住了,php返回 R执行了一半,然后php继续执行后面的命令了。是否是apache或者php的设置上出了些问题?

    • 我其实不建议用PHP调R,很不方便,用Java会好很多。

  • damngoto

    楼主介绍的很详细,一路走下来很流畅。特地登录道声谢谢!