在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 其他语言

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

13 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
ypchen

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

Conan Zhang

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

ypchen

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

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

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

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

Conan Zhang

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

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

ypchen

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

Conan Zhang

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

ypchen

见下面截图

ypchen

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

Conan Zhang

CentOS不熟,呵呵

ff2345

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

Conan Zhang

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

damngoto

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

Conan Zhang

🙂

13
0
Would love your thoughts, please comment.x
()
x