PHP

LNMP环境下的PHP安装

CGI指的是通用网关接口,为HTTP服务器与其他机器上的程序服务通信交流的一种工具,性能差,所以被淘汰了。

FastCGI,是一个可以伸缩、高速的在HTTP服务器和动态脚本语言间通信的接口,在linux下,FastCGI的接口即为socket,这个socket可以是文件socket也可以是IP socket,主要优点是把动态语言和HTTP服务器分离开来。采用的是C/S架构。

PHP安装前环境准备:nginx和mysql是否启动

###检查nginx和MySQL是否在同一个目录下###
ls -ld /application/mysql/
ls -ld /application/nginx/

###检查端口启动情况###
netstat -lntup|grep -E "80|3306"

##测试访问Nginx和MySQL是否能正常访问###
wget 192.16.1.41 #(查看Nginx,wget自己的Nginx主机IP)
mysql -uroot -p

###检查安装PHP所需的lib库(开发区有可能需要使用)###
yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y
yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y
rpm -qa freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel
rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel
(由于libiconv-devel没有yum源安装包,需要手动安装)

###安装libiconv-devel###
mkdir -p /home/syz/tools
cd /home/syz/tools
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv
make
make install

cd ../

###安装PHP相关的扩展库(动态加载库libmcrypt-devel,加密扩展库mhash、mcrypt,都是开发所需)####
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo(安装第三方源仓库)
yum -y install libmcrypt-devel
yum -y install mhash
yum -y install mcrypt
rpm –qa libmcrypt-devel mhash mcrypt

###前面的准备好,就可以正式开始安装PHP了###

###开始安装PHP###
cd /application/mysql/tools
rz -y
php-5.5.32.tar.gz
tar xf php-5.5.32.tar.gz

###编译安装###
cd php-5.5.32

./configure \
--prefix=/application/php5.5.32 \ #(安装PHP路径)
--with-mysql=/application/mysql/ \ #(安装mysql路径)
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \ #(激活fastCGI进程)
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \ #(注意和主机名一致)
--with-fpm-group=www \ #(注意和主机名一致)
--enable-ftp \
--enable-opcache=no

echo $? #(输出结果为0表示安装正确)

注意:在非一体的LNMP环境(即Nginx和Mysql不在同一台机器上),编译PHP环境时,也是需要Mysql数据库环境的,但是高版本的PHP,例如5.3版本以上,内置了PHP需要的Mysql程序,因此该版本就不需要在Nginx服务器上安装Mysql软件了,只需要在编译PHP时指定相关的参数即可,这个PHP编译参数为--with-mysql=mysqlnd,表示PHP程序在编译时会调用内置的Mysql的库。(如果以上安装错误可以使用--with-mysql=mysqlnd替代--with-mysql=/application/mysql/,然后重新尝试安装)

###修改操作,为了解决5.3版本的bug,其他PHP版本可以不加###
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar

make
make install
echo $? #(输出结果为0表示安装正确)

###做软链接###
ln -s /application/php5.5.32/ /application/php
ls /application/php/

###PHP的两个生产环境(引擎配置文件)###
cp php.ini-production /application/php/lib/php.ini

#(如果编译的时候没有指定php.ini(解析文件)的路径,一般默认在安装目录/application/php/lib/下)

#将默认的php-fpm.conf.default改为正式的文件名php-fpm.conf(fastcgi配置文件)
cd /application/php/etc/
cp php-fpm.conf.default php-fpm.conf

###启动PHP程序(php-fpm)###
/application/php/sbin/php-fpm
lsof -i :9000
ps -ef|grep php-fpm

配置Nginx支持PHP程序请求访问

###切换到nginx配置目录下###
cd /application/nginx/conf/
cd extra/

###备份blog.conf###
cp blog.conf blog.conf.beifen

vim blog.conf

server {
        listen 80;
        server_name blog.etiantian.org;
        location / {
            root html/blog;
            index index.html index.htm;
        }
        location ~ .*\.(php|php5)?$ {
            root html/blog;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
}

###检查语法重启###
../../sbin/nginx -t
../../sbin/nginx -s reload

###定义PHP测试代码文件test_info.php(这个文件查看成功后,就删除,很危险)###
cd /application/nginx/html/blog/

vim test_info.php

<?php
phpinfo();
?>

cat test_info.php

###检查是否成功(记得首先得在windows下定义hosts)###
用ping blog.etiantian.org
打开web网址,输出blog.etiantian.org/test_info.php,出现php界面,表示Nginx到PHP的路通了,但是到数据库(Mysql)还需验证

测试PHP到MySQL是否成功

###编辑简单的PHP代码文件test_mysql.php###
cd /application/nginx/html/blog/

vim test_mysql.php

<?php
           $link_id=mysql_connect('localhost','root','syz123') or mysql_error();
           if($link_id) {
                       echo "mysql sucessful by syz !";
           }else{
                       echo mysql_error();
           }
?>

###检查是否成功####
web输入blog.etiantian.org/test_mysql.php,如果页面返回mysql successful by syz !(返回信息由test_mysql.php定义的为准)即为成功!

LNMP之PHP的更多相关文章

  1. 阿里云ECS安装lnmp环境-转载自:http://ninghao.net/blog/1368

    远程控制你的服务器 远程控制 Linux 类型的系统的服务器,比如 CentOS 系统的服务器,一般不像 Windows 服务器那样,使用图形界面的远程控制.我们需要使用命令行工具,远程连接到服务器, ...

  2. centos6.5下使用yum完美搭建LNMP环境(php5.6) 无脑安装

    准备工作 配置防火墙,开启80端口.3306端口删除原有的 iptables , 添加合适的配置 rm -rf /etc/sysconfig/iptables vi /etc/sysconfig/ip ...

  3. LAMP坏境和LNMP环境安装Nagios4.1.1和基本配置

    ----------------------------------------以下内容为笔者生产环境的监控,安装都是经过一步步测试的-------------------------------- ...

  4. lnmp 预设iptables设置

    「LNMP」iptables初始配置   首先使用命令iptables -P INPUT ACCEPT允许所有连接,否则容易把自己关在外边.然后使用iptables -F;iptables -X;ip ...

  5. 烂泥:学习centos之快速搭建LNMP环境

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 以前在centos下安装软件都是喜欢源码安装,不过昨天因为一个事情需要一个centos 下的LNMP环境.反倒不会搞了,今天特意记录下,以备后续使用. 一 ...

  6. 基于corosync+pacemaker+drbd+LNMP做web服务器的高可用集群

    实验系统:CentOS 6.6_x86_64 实验前提: 1)提前准备好编译环境,防火墙和selinux都关闭: 2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.1 ...

  7. 基于centos的lnmp搭建

    部署lnmp环境 安装配置mariadb配置php配置phpmyadmin配置php-fpm配置nginx配置测试 LNMP(linux,nginx,mariadb,php)部署,以下默认在root权 ...

  8. lnmp安装

    一.准备工作 需要的安装包都是从官网下载的,系统centos6.6 nginx-1.10.1.tar.gz php-5.6.24.tar.gz mysql-5.5.32.tar.gz 所有的包都一传入 ...

  9. [原创]Centos7 从零整合LNMP一体包

    按照前几章配置好后,我们就可以把这些工具打包啦.生成LNMP一体包. # export LD_LIBRARY_PATH=/package/libmemcached/lib:$LD_LIBRARY_PA ...

  10. 【CentOS】LNMP

    本文为博主JerryChan所有,如需转载,请联系博主747618706@qq.com,并附上博客链接/////////////////目录//////////////////一.LNMP的安装 1. ...

随机推荐

  1. libvirt虚拟机管理常用指令

    创建虚拟机 virt-install virt-install --connect qemu:///system -n $NAME -r $MEM -f $DISK -s $DISK_SIZE --v ...

  2. Android组件内核之Activity调用栈分析(一)

    阿里P7Android高级架构进阶视频免费学习请点击:https://space.bilibili.com/474380680 导语 我们陈述一下Activity,Activity是整个应用用户交互的 ...

  3. SpringMVC(IntelliJ IDEA)(详细操作)

    1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.

  4. pyhon if分支

    在python中,最常用的就是if判断,if判断可以分为单次判断和多次判断 单次判断 if   条件 : (条件成立执行我) else:(else也可以没有,最近的else对应最近的if语句) (条件 ...

  5. ActionEnter cannot be resolved to a type

    2014-6-13 23:50:57 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for ser ...

  6. 分布式-技术专区-Redis并发竞争key的解决方案详解

    Redis缓存的高性能有目共睹,应用的场景也是非常广泛,但是在高并发的场景下,也会出现问题:缓存击穿.缓存雪崩.缓存和数据一致性,以及今天要谈到的缓存并发竞争.这里的并发指的是多个redis的clie ...

  7. SpringBoot传递单一参数时@RequestParam和@RequestBody的区

    用SpringBoot框架做项目时,经常需要前端给后端传递参数,如果需要多条参数,通常的做法是把这些参数封装为一个对象来传递,前端用POST方式调用.但有时会遇到后端只需要一条参数(比如一个Strin ...

  8. Python第五节 元组

    Python第八节 元组补充 元组从形式上看,和列表唯一不同的在于,列表是中括号,元组是小括号 元组内的元素不可更改 一. 创建 创建直接在小括号内写元素,用逗号隔开就好 创建空元祖只写一个小括号 元 ...

  9. RK3288编译 Android 5.1 固件

    1 准备工作 编译 Android 对机器的配置要求较高: 64 位 CPU 16GB 物理内存+交换内存 30GB 空闲的磁盘空间用于构建,源码树另外占用大约 25GB Ubuntu 14.04 操 ...

  10. VMware虚拟机提示找不到vmnetbridge.dl文件的解决办法

    把vmware workstation删了重装,估计是异地安装包在安装时候出现的问题. 先把安装包拷贝到本地,然后控制面板上把已有的vmware workstation删除. 最后重新安装VMware ...