PHP教程系列2-搭建PHP环境

相比其他编程语言,PHP的开发环境是最好搭建的。这也是很多人说PHP傻瓜的原因,但是一个工具太好用肯定是优点,什么时候成缺点了?一些人的思考逻辑让人琢磨不透。

1. 在Windows下安装PHP

在Windows平台下安装PHP相比其他平台更容易些。

  1. 下载

    下载地址:https://windows.php.net/downloads/releases/archives/ (为了方便学习,建议下载 php-5.6.35-nts-Win32-VC11-x86.zip 版本)。

    下载列表中有TS和NTS两个版本。官方的解释是TS表示线程安全(Thread Safety),NTS表示非线程安全(None-Thread Safe),一看到『非线程安全』很多人会以为不安全。这是翻译的问题,无论是否有这种顾虑都建议使用NTS版本的PHP。

    为什么要使用非线程安全的PHP?

    一般在生产环境运行PHP都会配套使用 Linux + Nginx + php-fpm,这也是迄今为止最稳定并且运维成本最低的方案。 假设php-fpm每次只处理一个请求(php-fpm的运行原理会在之后章节单独讲解), 用户每次请求都会有一个php-fpm进程被创建,请求结束后php-fpm进程被销毁。这种直接利用操作系统管理进程的方式比较消耗资源,但是有个好处,如果某个请求出现致命错误并不会影响其他请求,操作系统的进程之间是隔离的。所以你很少听到PHP需要重启,而像Java,Node.js是无法避免重启风险的。我们可以说PHP在语言层面就能规避非进程安全引发的风险,但会带来额外的性能开销。在Apache服务器下由于运行方式的差异可能需要使用TS版本的PHP,这样会有更高的性能,但不能保证100%安全,也失去了PHP随用随走的优势。当前很流行的swoole框架也是单进程服务,如果底层发生错误、Server占用内存过大被内核Kill,都会导致服务不可用。

    如果选择了PHP或者Python,相当于选择了FastCGI的调用方式(主流),和Java与Node.js在工作方式上就会不同。当然Java也可以选择FastCGI,PHP一样可以选择多线程和单进程非阻塞IO模型,都有大规模实践过。通常需要根据业务和语言生态做出选择。那些喷PHP多进程多线程不行的,本身就没用过几天PHP,不要道听途说。

  2. 安装
    将压缩文件解压到 F:/webServer/ 文件夹,打开php文件目录。

    • 将 php.ini-develop 文件重命名为 php.ini
    • 将php.exe文件所在的目录加入到系统『环境变量』PATH中
    • 运行 CMD 命令提示行,输入php -v
    • 能看到php的版本信息,表示安装成功

如果提示应用程序无法正常启动(0xc000007b) 说明缺少对应的dll。假如下载的是 php-5.6.35-nts-Win32-VC11-x86.zip 文件,就要安装VC11的dll库。https://www.microsoft.com/en-us/download/details.aspx?id=30679 ,其他版本请参考这里:http://forum.wampserver.com/read.php?2,138295

2. 在Linux下安装PHP

Linux下安装PHP有多种方式,这里只介绍通过源码编译安装。

  1. 直接到Github下载了源码 https://github.com/php/php-src

    $ git clone https://github.com/php/php-src.git
    $ cd php-src
    $ git checkout php-5.6.35
    
  2. 安装需要用到的扩展程序 (这里使用Centos举例说明)

    $ sudo yum install -y \
    gcc-c++ autoconf \
    libjpeg libjpeg-devel libpng \
    libpng-devel libvpx libvpx-devel freetype freetype-devel \
    libpng libpng-devel libxml2 libxml2-devel \
    ncurses curl openssl-devel \
    zlib zlib-devel glibc glibc-devel \
    glib2 glib2-devel bzip2 bzip2-devel \
    gdbm-devel db4-devel libXpm-devel \
    libX11-devel gd-devel gmp-devel \
    readline-devel libxslt-devel \
    expat-devel xmlrpc-c xmlrpc-c-devel \
    libicu-devel libmcrypt-devel \
    libmemcached-devel bison
    
  3. 生成configure可执行文件

    $ cd php-src
    $ ./buildconf --force
    
  4. 生成Makefile文件 (重要)

    $ ./configure \
    --prefix=/home/www/php \
    --with-curl \
    --with-freetype-dir \
    --with-gd \
    --with-gettext \
    --with-iconv-dir \
    --with-kerberos \
    --with-libdir=lib64 \
    --with-libxml-dir \
    --with-mysqli \
    --with-openssl \
    --with-pcre-regex \
    --with-pdo-mysql \
    --with-pdo-sqlite \
    --with-gettext \
    --with-mcrypt \
    --with-pear \
    --with-iconv \
    --with-gmp \
    --with-jpeg-dir=/usr/lib64 \
    --with-png-dir=/usr/lib64 \
    --with-xmlrpc \
    --with-xsl \
    --with-zlib \
    --enable-fpm \
    --enable-bcmath \
    --enable-libxml \
    --enable-inline-optimization \
    --enable-gd-native-ttf \
    --enable-gd-jis-conv \
    --enable-mbregex \
    --enable-mbstring \
    --enable-opcache \
    --enable-pcntl \
    --enable-shmop \
    --enable-soap \
    --enable-sockets \
    --enable-sysvsem \
    --enable-xml \
    --enable-zip
    
  5. 编译&安装文件

    $ make -j8 
    $ make install -j8
    
  6. 为PHP设置软链接

    $ sudo ln -s /usr/local/bin/php /home/www/php/bin/php
    
  7. 测试是否安装成功

    $ php -v
    

    能显示版本信息表示安装成功。

3. 在Mac下安装PHP

Mac环境下可以选择与Linux一样的编译方式安装,这里不再重复。另一种安装方式就是通过brew命令安装

$ brew install php56
$ php -v

能显示版本信息表示安装成功。

4. 开箱即用

  1. 创建一个文件夹

    mkdir phpPro
    cd phpPro
    
  2. 写一行简单的php代码

    vim index.php
    
    <?php echo "Hello World! \r\n"; ?>
    
    
  3. 本地运行

    php index.php
    
    Hello World!
    
  4. 服务器运行

    php -S localhost:8000
    
    

    浏览器访问 http://localhost:8000/ 会看到效果。8000表示端口号,改成其他也行。

如果你喜欢我的文章,请关注我的博客 PHP教程系列2-搭建PHP环境

喜欢编程的朋友可以关注我的个人公众号,保证每周三篇原创。
《PHP教程系列2-搭建PHP环境》 程序员编程日志

    原文作者:我是大熊PHPer
    原文地址: https://www.jianshu.com/p/f717f3109374
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞