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

简介:

确定依赖包安装

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;
相关文章
|
Oracle 关系型数据库 MySQL
Oracle Linux 8.10 编译安装sysbench
Oracle Linux 8.10 编译安装sysbench
542 34
|
应用服务中间件 PHP nginx
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
651 25
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
数据库连接 应用服务中间件 PHP
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
537 18
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
567 25
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
6769 68
|
NoSQL 关系型数据库 PHP
php连接数据库
要使用PHP连接PolarDB或MongoDB数据库,需先准备连接信息,并编写相应代码。对于PolarDB,需设置主机地址、端口、数据库名及凭据,使用`pg_connect`函数建立连接;而对于MongoDB副本集,需安装MongoDB PHP驱动,通过`MongoDB\Client`连接指定的副本集实例。请确保替换示例代码中的占位符为实际值,并正确配置副本集名称和主机信息。更多详细信息与示例代码,请参考相关链接。
404 74
|
应用服务中间件 PHP nginx
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
tengine 应用服务中间件 Linux
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。