第一章 Centos7下PHP8.0編譯安裝

1、下載安裝包

#1.建立目錄
[root@jindada ~]$ mkdir /package

#2.下載PHP安裝包
[root@jindada ~]$ cd  /package
[root@jindada /package]$ wget https://www.php.net/distributions/php-8.0.0.tar.gz

#3.解壓安裝包
[root@jindada /package]$ tar -zxvf php-8.0.0.tar.gz

2、編譯安裝 php8

1.安裝依賴包

[root@jindada /package]$ yum -y install libxml2-devel sqlite-devel bzip2-devel libcurl-devel libpng-devel libjpeg-devel freetype-devel libicu-devel oniguruma-devel libxslt-devel

2.編譯安裝libzip-devel依賴包

因爲yum版本安裝libzip-devel依賴包太低,必須下載新版本安裝。
#1.下載依賴包
[root@jindada /package]$ wget https://nih.at/libzip/libzip-1.2.0.tar.gz

#2.解壓依賴包
[root@jindada /package]$ tar xf libzip-1.2.0.tar.gz

#3.配置依賴包
[root@jindada /package]$ cd libzip-1.2.0
[root@jindada /package]$ ./configure

#4.編譯安裝依賴包
[root@jindada /package]$ make&&make install

#5.配置環境變量
[root@jindada /package]$ vim /etc/profile.d/libzip.sh 
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

[root@jindada /package]$ source /etc/profile

3.配置PHP8.0

[root@jindada /package]$ cd /php-8.0.0
[root@jindada /package/php-8.0.0]$ ./configure --prefix=/usr/local/php-8.0.0 --with-config-file-path=/usr/local/php-8.0.0/etc --with-curl --with-freetype --enable-gd --with-jpeg  --with-gettext --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl --with-pdo-mysql  --with-pdo-sqlite --with-pear --enable-sockets --with-mhash --with-ldap-sasl --with-xsl --with-zlib --with-zip -with-bz2 --with-iconv  --enable-fpm --enable-pdo  --enable-bcmath  --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl  --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-sysvsem --enable-cli --enable-opcache --enable-intl --enable-calendar --enable-static --enable-mysqlnd --disable-fileinfo

4.配置成功後

+--------------------------------------------------------------------+
| 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.

5.編譯:

[root@jindada /package/php-8.0.0]$ make

#.make完成後的提示:
Build complete.
Don't forget to run 'make test'.

6.安裝

[root@jindada /package/php-8.0.0]$ make install

3、查看安裝版本

[root@jindada /package/php-8.0.0]$ /usr/local/php-8.0.0/bin/php --version
PHP 8.0.0 (cli) (built: Dec 29 2020 11:51:52) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies

4、配置軟鏈接

[root@jindada /package/php-8.0.0]$ ln -s /usr/local/php-8.0.0/ /usr/local/php

5、生成各個配置文件:

#1.生成php.ini配置文件:
[root@jindada /package/php-8.0.0]$ cp php.ini-production /usr/local/php/etc/php.ini

#2.生成www.conf配置文件
[root@jindada /package/php-8.0.0]$ cd /usr/local/php/etc/php-fpm.d/
[root@jindada /usr/local/php/etc/php-fpm.d]$ cp www.conf.default www.conf

#3.生成php-fpm的配置文件
[root@jindada /usr/local/php/etc/php-fpm.d]$ cd /usr/local/php/etc/       
[root@jindada /usr/local/php/etc]$ cp php-fpm.conf.default php-fpm.conf

6、配置PHP文件

#1.配置www.conf文件
[root@jindada /usr/local/php/etc]$ cd /usr/local/php/etc/php-fpm.d/
[root@jindada /usr/local/php/etc/php-fpm.d]$ vim www.conf
user = www
group = www

#2.配置php.ini文件
[root@jindada /usr/local/php/etc/php-fpm.d]$ cd /usr/local/php/etc/
[root@jindada /usr/local/php/etc]$ vim php.ini
post_max_size = 100M
upload_max_filesize = 100M

7、啓動php-fpm

1.生成php-fpm啓動文件

#1.建立啓動目錄
[root@jindada /package/php-8.0.0]$ mkdir /usr/local/php/daemon

#2.複製啓動文件
[root@jindada /package/php-8.0.0]$ cp /package/php-8.0.0/sapi/fpm/init.d.php-fpm /usr/local/php/daemon

#3.修改啓動文件權限
[root@jindada /package/php-8.0.0]$ chmod 740 /usr/local/php/daemon/init.d.php-fpm

2.配置system啓動

#1.配置system啓動
[root@jindada /package/php-8.0.0]$ vim /etc/systemd/system/php-fpm.service 
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=simple
PIDFile=/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID

[Install]
WantedBy=multi-user.target

#2.system重載
[root@jindada /package/php-8.0.0]$ systemctl daemon-reload

3.啓動php-fpm

#1.init.d啓動
[root@kubemaster ~]# /usr/local/soft/php8/daemon/php-fpm start
Starting php-fpm  done

#2.system啓動
[root@jindada /package/php-8.0.0]$ systemctl  start php-fpm.service 
[root@jindada /package/php-8.0.0]$ systemctl  status php-fpm.service 
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/etc/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since 二 2020-12-29 15:03:47 CST; 6s ago
 Main PID: 8072 (php-fpm)
   CGroup: /system.slice/php-fpm.service
           ├─8072 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
           ├─8073 php-fpm: pool www
           └─8074 php-fpm: pool www
12月 29 15:03:47 jindada systemd[1]: Started The PHP FastCGI Process Manager.

4.查看進程中是否已啓動

[root@jindada /package/php-8.0.0]$ ps -aux |grep php-fpm
root      8072  0.0  0.5 164660 10684 ?        Ss   15:03   0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
www       8073  0.0  0.2 164660  5008 ?        S    15:03   0:00 php-fpm: pool www
www       8074  0.0  0.2 164660  5008 ?        S    15:03   0:00 php-fpm: pool www
root      8354  0.0  0.0 112828   976 pts/1    R+   15:09   0:00 grep --color=auto php-fpm

5.查看php-fpm默認守護的端口:

root@jindada /package/php-8.0.0]$ netstat  -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      8072/php-fpm: maste
相關文章
相關標籤/搜索