Installation of php from source (CentOS7)

gamzatti
Vote 0 Votes
CentOS7 + php 5.6.30 + httpd 2.4 でphpをソースからインストール
参考にしたページ
Cent6の手順はこちら
  • phpインストール
  • yum install httpd-devel
    yum install libxml2-devel
    
    # which apxs
    /usr/bin/apxs
    
    ./configure --with-apxs2=/usr/bin/apxs
    make
    make install
    
  • apache設定
  • /etc/httpd/conf/httpd.conf
    以下はもともと有効
    LoadModule php5_module        /usr/lib64/httpd/modules/libphp5.so
    
    末尾に以下を追記
    
        SetHandler application/x-httpd-php
    
    
    /usr/local/lib/php.ini 
    short_open_tag = On
    
    systemctl restart httpd
    
    [root@websv html]# httpd -v
    Server version: Apache/2.4.6 (CentOS)
    Server built:   Nov 14 2016 18:04:44
    [root@websv html]# php -v
    PHP 5.6.30 (cli) (built: Jan 21 2017 15:20:35) 
    

    2 Comments

    | Leave a comment

    ソースから入れたPHPでmbstringを有効にする手順

    - mbstringインストール
    yum install --enablerepo=remi,remi-php56 php-mbstring

    --> print_r(mb_get_info()); でモジュールがロードされていないとのエラー

    - 拡張モジュールがロードされているか確認
    # php -m
    /usr/lib64/php/modules
    に.so自体は存在する

    # rpm -ql php-mbstring
    /etc/php-zts.d/20-mbstring.ini
    /etc/php.d/20-mbstring.ini
    /usr/lib64/php-zts/modules/mbstring.so
    /usr/lib64/php/modules/mbstring.so
    /usr/share/doc/php-mbstring-5.6.30
    /usr/share/doc/php-mbstring-5.6.30/libmbfl_LICENSE
    /usr/share/doc/php-mbstring-5.6.30/oniguruma_COPYING
    /usr/share/doc/php-mbstring-5.6.30/ucgendat_LICENSE

    phpinfo()の結果では、Additional .ini files parsed がnoneになっている

    echo $PHP_INI_SCAN_DIR
    の結果は空

    php_ini_loaded_file()
    php_ini_scanned_files()
    いずれも空

    参考)
    http://php.net/manual/ja/configuration.file.php
    http://qiita.com/tukiyo3/items/cf05b35fed6ae3f2e46b

    - yumでphpを入れた環境と比較

    [root@#localhost sampleCode]# php --ini
    Configuration File (php.ini) Path: /etc
    Loaded Configuration File: /etc/php.ini
    Scan for additional .ini files in: /etc/php.d
    Additional .ini files parsed: /etc/php.d/curl.ini,
    ・・・
    /etc/php.d/mbstring.ini,

    - ソースから入れた環境
    [root@gamzatti prism]# php --ini
    Configuration File (php.ini) Path: /usr/local/lib
    Loaded Configuration File: (none)
    Scan for additional .ini files in: (none)
    Additional .ini files parsed: (none)

    --> 拡張モジュールがロードされていない

    - 拡張モジュールを有効にするオプションをつけてreconfigure

    ./configure --with-apxs2=/usr/bin/apxs --with-config-file-path=/etc/
    --with-config-file-scan-dir=/etc/php.d --enable-mbstring

    make
    make install

    参考)
    http://www.bnote.net/linux/php_reinst.shtml
    http://php.net/manual/en/mbstring.installation.php
    http://php.net/manual/ja/function.php-ini-scanned-files.php

    --> reconfigure後、mbstringが使えるようになった

    yumでphp,httpdをインストールした場合は、インストール後httpdの再起動のみでapache上でphpが実行できるはず。

    # yum info php
    ・・・中略・・・
    名前 : php
    バージョン : 5.4.16

    # yum install php

    # rpm -qa | grep php
    php-cli-5.4.16-42.el7.x86_64
    php-5.4.16-42.el7.x86_64
    php-common-5.4.16-42.el7.x86_64

    # php -v
    PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02)


    systemctl restart httpd

    Leave a comment

    About this Entry

    This page contains a single entry by gamzatti published on February 12, 2017 9:51 AM.

    Installation of php from source (CentOS6) was the previous entry in this blog.

    Implementation of SSL is the next entry in this blog.

    Find recent content on the main index or look in the archives to find all content.