前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Linux系统上安装PHP7

在Linux系统上安装PHP7

原创
作者头像
Action
修改2021-08-21 21:42:31
1.6K0
修改2021-08-21 21:42:31
举报
文章被收录于专栏:WEB开发~

下载

下载到 /usr/local/src

代码语言:txt
复制
cd /usr/local/src

wget https://www.php.net/distributions/php-7.4.22.tar.gz

解压

代码语言:txt
复制
tar -zxvf  php-7.4.22.tar.gz

安装类库

代码语言:txt
复制
sudo yum install libxml2-devel

sudo yum install curl-devel

sudo yum install sqlite-devel

sudo yum -y install libpng

sudo yum -y install libpng-devel

sudo yum -y install freetype-devel

sudo yum -y install postgresql-devel

sudo yum install -y libxslt-devel*

设置安装目录

代码语言:txt
复制
./configure --prefix=/usr/local/php --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-pcre-regex --with-pdo-mysql --with-mysqli --with-openssl --with-fpm-user=www --with-fpm-group=www --enable-ftp --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-iconv --enable-fileinfo

报错

No package 'sqlite3' found

代码语言:txt
复制
yum install sqlite-devel

安装PHP7.4找不到包 No package 'oniguruma' found错误

代码语言:txt
复制
wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gz 

tar -xvf oniguruma-6.9.4.tar.gz

 cd oniguruma-6.9.4/

./autogen.sh

./configure --prefix=/usr --libdir=/lib64  //64位的系统一定要标识  --libdir=/lib64 否则还是不行
make && make install

编译安装

代码语言:txt
复制
make && make install

设置环境变量

代码语言:txt
复制
sudo ln -s /usr/local/php/bin/php /usr/bin/php

vi /home/www/.bash_profile   //编辑文件,添加以下全局变量

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

source ~/.bash_profile   

配置文件

拷贝配置文件

代码语言:txt
复制
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf


sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

打开php-fpm.conf

代码语言:txt
复制
sudo vi /usr/local/php/etc/php-fpm.conf

修改为:

代码语言:txt
复制
pid = /usr/local/php/var/run/php-fpm.pid

创建文件夹

代码语言:txt
复制
mkdir -p /usr/local/php/var/run/

启动文件

代码语言:txt
复制
sudo cp /usr/local/src/php-7.4.22/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

设置权限

代码语言:txt
复制
sudo chmod 755 /etc/init.d/php-fpm

启动php-fpm

代码语言:txt
复制
sudo /etc/init.d/php-fpm start

加入开机启动

代码语言:txt
复制
sudo chkconfig --add php-fpm

sudo chkconfig php-fpm on

Nginx 配置

代码语言:txt
复制
user  www www;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#error_log  "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G";

#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;
    #access_log  "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G"  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  192.168.3.81;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;

        location / {
            root   html;
            index  index.php index.html 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   html;
        }

        # 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(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
        # pass the Dubbo rpc to Dubbo provider server listening on 127.0.0.1:20880
        #
        #location /dubbo {
        #    dubbo_pass_all_headers on;
        #    dubbo_pass_set args $args;
        #    dubbo_pass_set uri $uri;
        #    dubbo_pass_set method $request_method;
        #
        #    dubbo_pass org.apache.dubbo.samples.tengine.DemoService 0.0.0 tengineDubbo dubbo_backend;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    # upstream for Dubbo rpc to Dubbo provider server listening on 127.0.0.1:20880
    #
    #upstream dubbo_backend {
    #    multi 1;
    #    server 127.0.0.1:20880;
    #}

    # 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_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

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

}

重新加载Nginx配置文件

代码语言:txt
复制
service nginx reload

检验php是否安装成功

vim /usr/local/nginx/html/index.php

代码语言:txt
复制
<?php
phpinfo();
?>

浏览器访问 192.168.3.81,出现下图,说明安装成功

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载
  • 解压
  • 安装类库
  • 设置安装目录
  • 报错
  • 编译安装
  • 设置环境变量
  • 配置文件
  • Nginx 配置
  • 重新加载Nginx配置文件
  • 检验php是否安装成功
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档