php7详细安装教程(linux + nginx +PHP + mysql)

php下载网站:http://cn2.php.net/downloads.php
选择你需要的版本.

首先ssh连接远程服务器,

在/usr/local/下创建php文件:

cd /usr/local/

创建source文件夹,专门用作下载包路径.

mkdir source

创建php安装路径

mkdir php

进入下载文件夹:

cd source/

下载包:

wget http://cn2.php.net/distributions/php-7.2.6.tar.gz

解压(当前目录):

tar -zxvf php-7.2.6.tar.gz

查看解压文件夹,并进入

ls

php-7.2.6 php-7.2.6.tar.gz

移动php-7.2.6文件夹内文件到php里:

mv php-7.2.6/* /usr/local/php/

进入待安装目录php

cd /usr/local/php/

经过上面步骤基本上完成了下载文件,创建安装目录等操作.接下来需要做的是:

1 : 配置PHP安装需要的环境
2 : 初始化并安装PHP

配置PHP安装需要的环境:

逐个 执行下面命令,不要遗漏,也不要嫌麻烦:

yum -y install libxml2
yum -y install libxml2-devel
yum -y install openssl
yum -y install openssl-devel
yum -y install curl
yum -y install curl-devel
yum -y install libjpeg
yum -y install libjpeg-devel
yum -y install libpng
yum -y install libpng-devel
yum -y install freetype
yum -y install freetype-devel
yum -y install pcre
yum -y install pcre-devel
yum -y install libxslt
yum -y install libxslt-devel
yum -y install bzip2
yum -y install bzip2-devel
yum install gcc

执行配置(注意: 下面命令很长,是一行,复制时不要有换行):

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

一段时间后执行编译:

make

编译 时间比较长,耐心等待,
后执行安装:

make install

安装成功以后,接下来配置php-fpm:

cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
cp php.ini-production /etc/php.ini
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

设置权限:

chmod +x /etc/init.d/php-fpm

配置环境变量:

vim /etc/profile

在末尾追加:

PATH=$PATH:/usr/local/php/bin
export PATH

执行命令使得改动立即生效:

source /etc/profile

创建web用户及组(名称自己定,这里假设是www-data):

groupadd www-data
useradd -g www-data www-data

配置nginx,不然无法识别PHP文件:
(根据你自己安装nginx的目录)

vim /usr/local/nginx/conf/nginx.conf 

需要修改的几个点:

1 : root 路径是否修改,如果有需要改下
2 : 启动文件 添加index.php的支持
3 : 开启PHP配置, 如果需要https,在server里也要设置:
4 : 假设把网页存放路径设置为/home/www
5: 第一行用户改下
6 : HTTPS server : 这块根据需要https配置,否则https下打开PHP文件就是直接下载了
7 : fastcgi_param SCRIPT_FILENAME 后面修改为网页根路径

设置完成的nginx.conf 应该像下面这样:

                                                                                                          
user  www-data;                                                                                        
worker_processes  1;                                                                                      
                                                                                                          
#error_log  logs/error.log;                                                                               
#error_log  logs/error.log  notice;                                                                       
#error_log  logs/error.log  info;                                                                         
                                                                                                          
#pid        logs/nginx.pid;                                                                               
                                                                                                          
       
events {
    worker_connections  1024;                                                                             
}                                                                                                         
                                                                                                          
                                                                                                          
http {                                                                                                    
    include       mime.types;                                                                             
    default_type  application/octet-stream;                                                               
                                                                                                          
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                            
    #                  '$status $body_bytes_sent "$http_referer" '                                        
    #                  '"$http_user_agent" "$http_x_forwarded_for"';                                      
                                                                                                          
    #access_log  logs/access.log  main;                                                                   
                                                                                                          
    sendfile        on;                                                                                   
    #tcp_nopush     on;  
   #keepalive_timeout  0;                                                                                 
    keepalive_timeout  65;                                                                                 
                                                                                                           
    #gzip  on;                                                                                             
                                                                                                           
    server {                                                                                               
        listen       80;                                                                                   
        server_name  localhost;                                                                            
                                                                                                           
        #charset koi8-r;                                                                                   
                                                                                                           
        #access_log  logs/host.access.log  main;                                                           
                                                                                                           
        location / {                                                                                      
            root   /home/www;                                                                              
            index  index.html index.php index.htm;                                                         
        }                                                                                                  
                                                                                                           
        #error_page  404              /404.html;                                                           
                                                                                                           
        # redirect server error pages to the static page /50x.html                                         
        #                                                                                                  
        error_page   500 502 503 504  /50x.html;                                                          
        location = /50x.html {                                                                            
            root   /home/www;                                                                             
        }                                                                                                 

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80                                       
    #                  
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;                                                               
        #}                                                                                                
                                                                                                          
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000                              
        #                                                                                                  
        location ~ \.php$ {                                                                               
            root           /home/www;                                                                      
            fastcgi_pass   127.0.0.1:9000;                                                                 
            fastcgi_index  index.php;                                                                      
            #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;                           
                                                                                                           
                fastcgi_param  SCRIPT_FILENAME  /home/www/$fastcgi_script_name;                            
                include        fastcgi_params;                                                             
        #   include        fastcgi.conf;                                                                   
        }                                                                                                  
                          
        # deny access to .htaccess files, if Apache's document root                                        
        # concurs with nginx's one                                                                         
        #                                                                                                  
        #location ~ /\.ht {                                                                               
        #    deny  all;                                                                                   
        #}                                                                                                 
    }          

# another virtual host using mix of IP-, name-, and port-based configuration                          
    #                                                                                                     
    #server {                                                                                             
    #    listen       8000;                                                                               
    #    listen       somename:8080;                                                                      
    #    server_name  somename  alias  another.alias;                                                     

    #    location / {                                                                                     
    #        root   html;                                                                                 
    #        index  index.html index.htm;                                                                 
    #    }                                                                                                
    #}                                                                                                    


    # HTTPS server                                                                                        
    #                                                                                                     
    server {                                                                                              
        listen       443 ssl;                                                                             
        server_name  localhost;                                                                           
        ssl on;                                                                                           
        ssl_certificate      cert/1527654392270.pem;                                                      
        ssl_certificate_key  cert/1527654392270.key;                                                      
        root  /home/www;                                                                                  
    #    ssl_session_cache    shared:SSL:1m;                                                              
        ssl_session_timeout  5m;                                                                          

        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;          
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   
ssl_prefer_server_ciphers on;                                                                           
                                                                                                            
    #    ssl_ciphers  HIGH:!aNULL:!MD5;                                                                     
    #    ssl_prefer_server_ciphers  on;                                                                     
                                                                                                            
        location / {                                                                                        
            root  /home/www;                                                                              
           index  index.html index.php index.htm;                                                         
        }                                                                                                 
   
       
        location ~ .*\.(php|php7)?$ {                                                                              
            root           /home/www;                                                                     
            fastcgi_pass   127.0.0.1:9000;                                                                
            fastcgi_index  index.php;                                                                     
            #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;                          
            #                                                                                             

                fastcgi_param  HTTPS   on;                                                                
                fastcgi_param  SCRIPT_FILENAME  /home/www/$fastcgi_script_name;                           
                include        fastcgi_params;                                                                              
                                                                                                          

          }                                                                                               
    }                                                                                                     


}                                                                                                         

配置完成以后:
启动php-fpm:

/etc/init.d/php-fpm start

如果已经启动,报错的话,需要杀掉进程再执行:
unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)

查看进程():

netstat -nldp |grep 9000

返回信息:
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 20016/php-fpm: mast

杀掉进程():

kill 20016

再次启动(成功返回done):

/etc/init.d/php-fpm start

添加启动项:

chkconfig --add php-fpm

开启3,4,5:

chkconfig php-fpm --level 345 on

重新启动php-fpm:

service php-fpm restart

重新启动nginx (如果失败往下走):

service nginx restart

重新启动nginx

如果没有配置的上面命令执行会失败,使用下面安装路径启动:
/usr/local/nginx/sbin/nginx -s reload

到此差不多完成,最后一步:添加测试文件
用ftp在网站根路径下添加test.php
/home/www/test.php

文件信息:

<?php
phpinfo();
?>

然后再网站打开链接:
http://xxxxxxx/test.php
或者
https://xxxxxxx/test.php

图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351