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. linux 下安装与使用

    一 安装 ## 先用wget下载源文件 wget http://download.redis.io/releases/redis-3.2.9.tar.gz ## 我自己建个文件夹 mkdir /usr ...

  2. nginx中root与alias关键字的区别

    前言 近段时间秋招上岸了,于是每天疯狂补各种分布式基础,每天都在痛苦与快乐中度过. 在学习 nginx 的时候,遇到配置上的问题:root 与 alias 的区别,卡了大概三个小时,记录下来警醒自己不 ...

  3. 原生js星星评分源码

    html: <div id="fiveStars"> <div>到场时间:<img v-for="(star,index) in stars ...

  4. vue PC端页面引入vue-quill-editor富文本插件

    项目需要:在添加新类别的弹框中,要在输入框中输入多条描述信息,不同的描述信息要换行输入,输入后点击确定传给后端,接口返回成功后点击查看刚添加的新类别时,描述框中展现多条换行的描述信息也要跟填写时一样( ...

  5. OC开发系列-内存管理

    概述 移动设备的内存极其有限,每个app所有占用的内存是有限的.当app所占用的内存比较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间. 任何集成了NSObject的对象都需要手动进行 ...

  6. Java中date和calendar的用法

    获取现在系统的时间和日期看起来是一件非常神奇的事情,但是当使用date和calendar之后发现仍然非常神奇. 1.date 使用date日期之前需要导入包: import java.text.Sim ...

  7. Tips using Manjaro

    Set swappiness value The default swappiness value is set 60 as you can check it via the following co ...

  8. Codeforces 319C DP 斜率优化

    题意:在一颗森林有n颗数,编号从1到n,第i棵树高度是a[i].有一个伐木工想要砍伐这片森林,它的电锯每次可以将树的高度减少1,然后就必须要充电,充电的代价是他已经砍倒的树种编号最大的那颗树的代价(b ...

  9. vue 使用Better-Scroll

    注意点 1. 外层容器wrapper要设置高度,并且overflow:hidden. 2. wrapper里面的需要一个div包裹所有内容 3. 样式成功 4.  以上就是可以滚动的情况,wrappe ...

  10. linux,进行批量下载文件操作

     wget -i url.txt -P ./Photo 批量下载图片(一般是某个相册的图片) 首先先得到一张图片的地址如:www.example.com/pic/001.jpg 同相册的图片地址会有一 ...