首先,我们简单了解一下什么是PHP,PHP(Hypertext Preprocessor 超文本预处理器) 和Java语言一样,PHP也是属于高级语言,并不能直接在操作系统上运行。Java运行需要虚拟机,PHP运行也是需要Zend Engine引擎。与Java不同的是,Java属于编译与解析性语言,而PHP只是是解析性语言。所以,我们可以从语言性质上简单看出,Java运行之前先通过编译形成.class文件,所以运行效率会更快,PHP编写程序后检查语法通过,就可以直接运行,从而开发效率会更快。

去年,刚刚开始从Java转学PHP的时候,PHP的弱类型特效深深吸引了我,在Java中我们经常会遇到各种类型转换,或者考虑用什么样的类型去存储数据,这种严格的编程非常局限了开发的效率,当然这个缺点也是它的优势之处,更加严格的类型定义,让Java获得更快的运行速度。然后,我记得学到PHP+Mysql时候,我都非常惊讶!为什么PHP对数据库的操作这么简单,是我写错了吗?因为当初学Java的时候,Mysql的各种jar包搞到吐血。真的PHP的开发做得非常好,所以很多学PHP的程序员都会开一个玩笑:PHP是世界上最好的语言。其实说的并不是其他语言不好,而是作为程序员都喜欢那种自动化,更少的人工的方法去开发和维护程序。

以上都是个人的理解,不一定是正确的,如果说的不对,希望大家帮助指正。

回到正题:安装PHP,我们讲的安装不是在windows重复点击下一步的过程,这样就太没劲了。我今天想说的是,如何在Linux编译安装PHP,并理解PHP扩展。

在上次笔记中,我已经准备了Linux系统,并且配置好网络。
 

安装PHP,并开启FPM

 

# 更新系统

yum -y update

升级所有包,改变软件设置和系统设置,系统版本内核都升级

reboot
 

# 安装基础软件

yum -y install vim wget w3m gcc gcc-c++ make automake gdb cmake kernel-devel kernel-headers lsof zip unzip xz git tree nmap mailx tcpdump sysstat screen dtach ntp telnet man
 

# 安装依赖库

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel openldap-clients openldap-servers gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel freetype-devel bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* pcre-devel zlib-devel autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* perl gettext pcre-devel zlib-devel libXpm-devel libXpm icu icu4j libicu* wget lrzsz mysql-devel unzip libaio rsync openssh-clients ntp
 
# 安装 PHP
# 安装PHP基础环境
# PHP 配置文件:/usr/local/php/etc/php.ini
# PHP-FPM 配置文件:/usr/local/php/etc/php-fpm.conf
# 服务控制:service php-fpm (start|stop|restart|reload)
 

# 安装PHP依赖库

cd /usr/local/src
tar zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7/
./configure
make
make install
 
cd libltdl/
./configure --enable-ltdl-install
make
make install
 
yum install mysql-devel
ln -s /usr/lib64/libXpm.so* /usr/lib/
mkdir /usr/lib/mysql
ln -s /usr/lib64/mysql/libmysqlclient* /usr/lib/mysql
 

# 安装PHP

#tar zxf php-5.4.26.tar.gz
#cd php-5.4.26
 
# 下载src
mv mirror php-5.6.21.tar.gz
 
# 解压
tar zxf php-5.6.21.tar.gz
cd php-5.6.21
 
# 配置参数
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-libxml-dir \
--with-pcre-dir \
--with-mcrypt \
--with-openssl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-xpm-dir \
--with-gettext \
--with-freetype-dir \
--with-bz2 \
--with-iconv-dir \
--with-zlib \
--with-zlib-dir \
--with-curl \
--with-xmlrpc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-icu-dir=/usr \
--enable-pcntl \
--enable-intl \
--enable-sockets \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-ftp \
--enable-zip \
--enable-calendar \
--enable-mbstring \
--enable-exif \
--enable-soap \
--enable-wddx \
--enable-bcmath \
--enable-fd-setsize=4096 \
--disable-short-tags \
--disable-ipv6
# 编译
make
 
# 安装
make install
 
# 创建配置文件
#cp /usr/local/src/php-5.4.26/php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/src/php-5.6.21/php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
 
# 添加新用户/用户组
groupadd www
useradd -r -g www www -s /sbin/nologin
 
# 创建 php 运行所需要目录并设置权限
mkdir /var/run/php
mkdir /var/log/php
chown -R www:www /var/run/php/
chown -R www:www /var/log/php/
 
# 设置 php-fpm 配置,修改以下参数项。 
# vim /usr/local/php/etc/php-fpm.conf
pid = /var/run/php/php-fpm.pid
error_log = /var/log/php/error.log
user = www
group = www
listen = 127.0.0.1:9000
pm = static
 
# php-fpm 加入系统服务并开机启动
#cp /usr/local/src/php-5.4.26/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
cp /usr/local/src/php-5.6.21/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# vim /etc/init.d/php-fpm
#php_fpm_PID=${prefix}/var/run/php-fpm.pid
php_fpm_PID=/var/run/php/php-fpm.pid
 
# 编辑 PHP 相关路径(/etc/init.d/php-fpm)
chmod u+x /etc/init.d/php-fpm
chkconfig --add php-fpm
service php-fpm start
chkconfig php-fpm on
 
ps -d 
表示我们正常安装成功了,已经启动了php-fpm.
 
 
PHP安装完成!
 

探索PHP+Nginx(二) 安装PHP的更多相关文章

  1. 第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置

    第四百零二节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署,uwsgi安装和启动,nginx的安装与启动,uwsgi与nginx的配置文件+虚拟主机配置 软件版本  uwsgi- ...

  2. Linux下Nginx的安装(二)

    一.安装Nginx ## 安装前准备 ## #GNU编译器集合 #Nginx编译需要PCRE #在Nginx的各种模块中需要使用gzip压缩 #在Nginx中,如果服务器提供安全网页时则会用到Open ...

  3. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  4. nginx 的安装

    一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl ...

  5. nginx笔记----安装

    nginx的安装 ./configure make && make install (一)准备条件: 1.GCC---gun编译器集合 Nginx是一个由C语言编写的程序,因此首先需要 ...

  6. Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  7. Nginx的安装及反向代理设置

    因为项目的缘故,接触到了Nginx的安装和反向代理设置,和大家分享下. 一.Nginx的下载.安装cd /homewget http://nginx.org/download/nginx-1.0.5. ...

  8. nginx初级安装配置

    nginx初级安装配置 转自:(lykyl原创)http://www.cnblogs.com/lykyl/archive/2012/11/21/2781077.html 实验环境:系统 CENTOS5 ...

  9. Linux下,Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

  10. Nginx基础学习(一)—Nginx的安装

    一.Nginx介绍 1.什么是Nginx?      Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开 ...

随机推荐

  1. Java宝典(一)

    -switch语句能作用在byte上,能否作用在long上,能否作用在String上? -在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或I ...

  2. Hive 5、Hive 的数据类型 和 DDL Data Definition Language)

    官方帮助文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL Hive的数据类型 -- 扩展数据类型data_t ...

  3. Uboot与Linux之间的参数传递

    U-boot会给Linux Kernel传递很多参数,如:串口,RAM,videofb等.而Linux kernel也会读取和处理这些参数.两者之间通过struct tag来传递参数. U-boot把 ...

  4. Live555 分析(二):服务端

    live555支持单播和组播,我们先分析单播的流媒体服务端,后面分析组播的流媒体服务端. 一.单播的流媒体服务端: // Create the RTSP server: RTSPServer* rts ...

  5. Python 异步IO、IO多路复用

    事件驱动模型 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  6. mysql常用操作命令

    本章内容:(引用原文:http://www.cnblogs.com/suoning/p/5769141.html) 查看\创建\使用\删除 数据库 用户管理及授权实战 局域网远程连接法 查看\创建\使 ...

  7. php创建带logo的二维码

    <?php /** php使用二维码 **/ class MyQrcode{ const SIZE = 150; const LEVEL = "L"; const MARGI ...

  8. Laravel 安装指南

    http://www.golaravel.com/article/laravel-installation-guide/ http://laravel.com/api/4.1/ http://ding ...

  9. 【解决方法】EasyUI DataGrid不显示滚动条时,没有数据的问题

    解决方法 于dataGrid例如,下面的代码被添加到的定义:  JavaScript Code  1 2 3 4 5 6 7 8 9 10 onLoadSuccess : function (data ...

  10. android——仿微拍贷滑动圆形菜单

    一次偶然机会接触到微拍贷的app,瞬间被其圆形可滑动菜单吸引了.一直琢磨着给弄出来. 现在弄出来了.先看看效果吧 如果你也喜欢这个菜单.去我的github找源码吧.太忙了.没时间贴代码和讲解了. ht ...