Linux-rhel6.4 编译安装PHP,Nginx与php连接

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

确定依赖包安装

gcc gcc-c++ libxml2 libxml2-devel bzip2 bzip2-devel libmcrypt libmcrypt-devel openssl openssl-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel readline readline-devel libxslt-devel perl perl-devel psmisc.x86_64 recode recode-devel libtidy libtidy-devel  

若没安装,挂载系统镜像,从Packages文件夹里面找到安装包安装,或者有yum源的话可直接yum install安装。


可利用镜像自己制作本地yum源:http://kurol.blog.51cto.com/11433546/1927721


从官网获取,编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@kurolz ~] # wget http://de2.php.net/get/php-5.5.38.tar.gz/from/this/mirror 
[root@kurolz ~] # tar -zxvf php-5.5.38.tar.gz
[root@kurolz php-5.5.38] # ./configure --prefix=/usr/local/php-5.5.0 --with-config-file-path=/usr/local/php-5.5.0/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64
 
......
creating main /internal_functions_cli .c
+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available  in  this     |
| distribution  in  the  file  LICENSE.  By continuing this installation |
| process, you are bound by the terms of this license agreement.     |
| If you  do  not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+
Thank you  for  using PHP.
config.status: creating php5.spec
config.status: creating main /build-defs .h
config.status: creating scripts /phpize
config.status: creating scripts /man1/phpize .1
config.status: creating scripts /php-config
config.status: creating scripts /man1/php-config .1
config.status: creating sapi /cli/php .1
config.status: creating sapi /fpm/php-fpm .conf
config.status: creating sapi /fpm/init .d.php-fpm
config.status: creating sapi /fpm/php-fpm .service
config.status: creating sapi /fpm/php-fpm .8
config.status: creating sapi /fpm/status .html
config.status: creating sapi /cgi/php-cgi .1
config.status: creating ext /phar/phar .1
config.status: creating ext /phar/phar .phar.1
config.status: creating main /php_config .h
config.status: executing default commands
 
[root@kurolz ~] # make
[root@kurolz ~] # make install
[root@kurolz ~] # cd php-5.5.38
[root@kurolz php-5.5.38] # cp php.ini-production /usr/local/php-5.5.0/etc/php.ini
[root@kurolz php-5.5.38] # cd /usr/local/php-5.5.0/etc/
[root@kurolz etc] # cp php-fpm.conf.default php-fpm.conf
[root@kurolz etc] # cd /usr/local/php-5.5.0/sbin
[root@kurolz sbin] # ./php-fpm


Nginx与php连接

    要点:  

        1:Nginx 默认支持 fastcgi  

        2:php编译开启模块:  

            --enable-fpm  

    连接:  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@kurolz ~] # vim /usr/local/nginx/conf/nginx.conf
      server {  
             listen       80;  
             server_name  localhost;  
             location / {
                 root   html;
                 index  index.html index.php;
             }
             .......
             location ~ \.php$ {
                 root   html;
                 fastcgi_pass   127.0.0.1:9000;
                 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                 include   fastcgi_params;
             }
         }


重启nginx:

1
2
[root@kurolz ~] # cd /usr/local/nginx/sbin
[root@kurolz sbin] # ./nginx -s reload


添加php测试文件:

1
2
3
[root@kurolz ~] # cd /usr/local/nginx/html
[root@kurolz ~] # touch info.php
[root@kurolz ~] # vim info.php
1
2
3
<?php
phpinfo();
?>


浏览器测试:

wKioL1kfGlWDkef3AAD-ahlCg6E388.png-wh_50



将pid文件存于var/run中

1
2
[root@kurolz ~] # vim /usr/local/php-5.5.0/etc/php-fpm.conf
pid = run /php-fpm .pid



配置开机启动php-fpm

并可用service  php-fpm  [start | restart | stop]开启、重启、关闭

1
[root@kurolz ~] # vim /etc/init.d/php-fpm


将下列脚本写入/etc/init.d/php-fpm中,12-15行的路径自己修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh
        #
        # php-fpm - this script starts and stops the php-fpm daemin
        #
        # chkconfig: - 85 15
        # processname: php-fpm
        # config:      /usr/local/php/etc/php-fpm.conf
        set  -e
        PATH= /usr/local/sbin : /usr/local/bin : /sbin : /bin : /usr/sbin : /usr/bin
        DESC= "php-fpm daemon"
        NAME=php-fpm
        DAEMON= /usr/local/php-5 .5.0 /sbin/php-fpm 
        CONFIGFILE= /usr/local/php-5 .5.0 /etc/php-fpm .conf
        PIDFILE= /usr/local/php-5 .5.0 /var/run/php-fpm .pid
        SCRIPTNAME= /etc/init .d /php-fpm
        
        # If the daemon file is not found, terminate the script.
        test  -x $DAEMON ||  exit  0
        d_start(){
            $DAEMON -y $CONFIGFILE ||  echo  -n  " already running"
        }
        d_stop(){
            kill  -QUIT ` cat  $PIDFILE` ||  echo  -n  " no running"
        }
        d_reload(){
            kill  -HUP ` cat  $PIDFILE` ||  echo  -n  " could not reload"
        }
        case  "$1"  in
            start)
                echo  -n  "Starting $DESC: $NAME"
                d_start
                echo  "."
                ;;
            stop)
                echo  -n  "Stopping $DESC: $NAME"
                d_stop
                echo  "."
                ;;
            reload)
                echo  -n  "Reloading $DESC configuration..."
                d_reload
                echo  "Reloaded."
                ;;
            restart)
                echo  -n  "Restarting $DESC: $NAME"
                d_stop
                # Sleep for two seconds before starting again, this should give the nginx daemon some time to perform a graceful stop
                sleep  2
                d_start
                echo  "."
                ;;
            *)
                echo  "Usage: $SCRIPTNAME {start|stop|restart|force-reload)"  >&2
                exit  3
                ;;
        esac
        exit  0


赋予php-fpm任何用户可执行权限

1
[root@kurolz ~] # chmod a+w /etc/init.d/php-fpm


设置开机启动

1
[root@kurolz ~] # chkconfig php-fpm on




      本文转自谢育政 51CTO博客,原文链接:http://blog.51cto.com/kurolz/1927720 ,如需转载请自行联系原作者



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
Oracle 关系型数据库 MySQL
Oracle Linux 8.10 编译安装sysbench
Oracle Linux 8.10 编译安装sysbench
222 34
|
9月前
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
359 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
6月前
|
Ubuntu 网络协议 应用服务中间件
在 Ubuntu 上安装 Nginx
在 Ubuntu 上安装和配置 Nginx 非常简单。首先更新系统包,然后通过 `apt` 安装 Nginx,检查服务状态并配置防火墙规则。访问服务器 IP 测试是否成功显示默认页面。还可管理服务、创建虚拟主机及排查常见问题,适合新手快速上手部署高性能 Web 服务。
781 0
|
4月前
|
应用服务中间件 网络安全 nginx
配置Nginx以支持Websocket连接的方法。
通过上述配置,Nginx将能够理解WebSocket协议的特殊要求,代理Websocket流量到合适的后端服务器。注意,Websocket并不是HTTP,尽管它最初是通过HTTP请求启动的连接升级,因此保证Nginx了解并能够妥善处理这种升级流程是关键。
1096 10
|
5月前
|
安全 应用服务中间件 Linux
Debian操作系统如何安装Nginx并开启HTTP2
本指南介绍了在Linux系统中通过源码编译安装Nginx的完整流程。首先更新软件包列表并安装必要的编译依赖,接着下载指定版本的Nginx源码包(如1.24.0),检查文件完整性后解压。随后通过配置脚本指定安装路径与模块(如HTTP SSL模块),执行编译和安装命令。最后创建软链接以便全局调用,并提供启动、停止及重载Nginx的命令,同时提醒注意安全组设置以确保正常访问。
|
8月前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
236 18
|
8月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
9月前
|
Linux
SecureCRT连接Linux时乱码问题
本文详细介绍了在使用SecureCRT连接Linux服务器时出现乱码问题的解决方法,包括设置SecureCRT字符编码、检查和配置Linux服务器字符编码、调整终端设置等。通过这些方法,您可以有效解决SecureCRT连接Linux时的乱码问题,确保正常的终端显示和操作。希望本文能帮助您在实际操作中更好地解决类似问题,提高工作效率。
701 17
|
9月前
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
10月前
|
前端开发 应用服务中间件 nginx
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
933 25