1. 安装包准备
https://www.php.net/distributions/php-8.0.22.tar.gz
我下载到 /usr/local/src 这个目录了
cd /usr/local/src
wget https://www.php.net/distributions/php-8.0.22.tar.gz
2. tar 解压 然后进到解压的文件夹
tar -zxvf php-8.0.22.tar.gz
cd php-8.0.22
3. 先安装一些依赖包 可能会少很多错误
yum install \
gcc gcc-c++ make cmake autoconfig \
zlib zlib-devel pcre pcre-devel \
libxml2-devel libxslt-devel \
bzip2-devel curl-devel libzip-devel\
sqlite-devel \
systemd-devel \
openssl-devel \
libffi-devel \
libpng libpng-devel libwebp libwebp-devel libjpeg libjpeg-devel libXpm libXpm-devel \
freetype-devel \
gmp-devel \
libldb-devel \
libc-client libc-client-devel \
openldap openldap-devel \
oniguruma oniguruma-devel \
net-snmp-devel readline-devel unixODBC-devel \
uw-imap uw-imap-devel uw-imap-static uw-imap-utils \
libicu-devel \
enchant2 enchant2-devel \
gd gd-devel \
libsodium libsodium-devel \
libtidy libtidy-devel
4. 运行 ./configure --help 命令来获得完整的可用选项清单 可以自己定义开启那些东西
./configure --help
然后运行 这些命令
./configure \
--prefix=/usr/local/php8 \
--enable-mbstring \
--enable-fpm \
--enable-gd \
--enable-dom \
--enable-phar \
--enable-posix \
--with-curl \
--with-gettext \
--with-iconv \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-zlib
出现这个 就说明已经可以准备安装了
5. make 一下 然后 make install
make
然后运行
make install
6. 出现这个就表示安装好了
安装目录在
/usr/local/php8/
7. 设置配置文件
cp php.ini-development /usr/local/php8/php.ini
创建 php-fpm的配置文件
cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行
cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
vim /usr/local/php8/etc/php-fpm.d/www.conf
把 23,24行改成
user = www-data
group = www-data
如果想改php端口的话 也可以在这里修改
然后 esc+:
wq 保存退出
8. 创建 www-data用户 并且不允许 ssh登录
useradd -r -s /usr/sbin/nologin www-data
9. 启动php-fpm
/usr/local/php8/sbin/php-fpm
然后 看一下 9000 端口号 如果自己修改了端口号就找一下 自己修改的端口号
ps -aux | grep 9000
已经启动了
10. 在自己的项目目录创建一个php文件 比如 我的
cd /data/htdocs/test
echo "<?php phpinfo();" > index.php
11. 新增 nginx 的网站配置 写自己的
比如在 nginx 的 http 里增加个 server
打开 nginx.conf 文件
在 http 方法里增加
server {
listen 80;
# 改成自己的域名
server_name xxx.com;
# 自己对应的目录
root "/data/htdocs/test";
location / {
index index.php index.html error/index.html;
error_page 400 /error/400.html;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
autoindex off;
}
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;
}
}
然后 保存退出
重启nginx
12. 打开自己对应的域名
安装完成
13. 设置环境变量 改成自己对应的路径
export PATH=/usr/local/php8/bin:$PATH
重新加载一下配置信息 应该用一个就行
source ~/.bashrc
source /etc/environment
php -v
这样就没问题
# 遇到的错误
# No package 'libxml-2.0' found
configure: error: Package requirements (libxml-2.0 >= 2.9.0) were not met:
No package 'libxml-2.0' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
解决方法
yum install libxml2-devel
# No package 'sqlite3' found
yum install sqlite-devel