目录
1. 一、安装依赖
1.1. 安装编译工具及依赖
CentOS Stream 8/9
bash
#sudo yum groupinstall 'Development Tools'
sudo yum install -y \
gcc gcc-c++ autoconf \
systemd-devel openssl-devel libcurl-devel \
oniguruma-devel zlib-devel \
libwebp-devel libjpeg-turbo-devel freetype-devel libpng-devel \
libxml2-devel libxslt-devel \
libsq3-devel libzip-devel file-develDebian/Ubuntu
bash
sudo apt install -y pkg-config gcc autoconf \
libsystemd-dev libssl-dev libcurl4-openssl-dev \
libonig-dev libzip-dev libsqlite3-dev \
libwebp-dev libjpeg-dev libfreetype6-dev libpng-dev \
libxml2-dev libxslt-dev libgmp-dev libsodium-dev1.2. 安装 libiconv
bash
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.18.tar.gz
tar -zxf libiconv-1.18.tar.gz &&\
cd libiconv-1.18 &&\
./configure --prefix=/usr/local/ &&\
make &&\
sudo make install &&\
sudo ln -s /usr/local/lib/libiconv.so.2.7.0 /usr/lib64/ &&\
sudo ldconfig1.3. 安装 libzip(已过时,选做)
1.3.1. 通过 RPM 安装
https://pkgs.org/download/libzip
bash
yum remove -y libzip
rpm -Uvh http://rpms.remirepo.net/enterprise/7/remi/x86_64//libzip-last-1.1.3-1.el7.remi.x86_64.rpm
rpm -Uvh http://rpms.remirepo.net/enterprise/7/remi/x86_64//libzip-last-devel-1.1.3-1.el7.remi.x86_64.rpm1.3.2. 手动编译安装
- 安装 cmake
bash
wget https://cmake.org/files/v3.26/cmake-3.26.1-linux-x86_64.sh && \
chmod +x cmake-3.26.1-linux-x86_64.sh && \
./cmake-3.26.1-linux-x86_64.sh
mv cmake-3.26.1-linux-x86_64 /usr/local/cmake
ln -s /usr/local/cmake/bin/cmake /usr/local/bin/cmake- 编译安装 libzip
bash
wget https://libzip.org/download/libzip-1.10.0.tar.gz &&\
tar -zxf libzip-1.10.0.tar.gz &&\
cd libzip-1.10.0 &&\
mkdir build &&\
cd build &&\
cmake .. &&\
make &&\
make install- 更新 lib
bash
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf.d/local.conf
ldconfig1.4. 安装 imap(已过时,选做)
centOS7 已经没有了 libc-client,需要编译安装
注:epel 源可以找到 libc-client-devel uw-imap-devel uw-imap-static uw-imap-utils,但直接安装还是会出现一些问题。
编译安装
bash
wget ftp://ftp.cac.washington.edu/imap/imap-2007f.tar.gz
tar -zxf imap-2007f.tar.gz
cd imap-2007f
make lr5 PASSWDTYPE=std SSLTYPE=unix.nopwd EXTRACFLAGS=-fPIC IP=4
mkdir -p /usr/local/imap-2007f/{include,lib,c-client}
cp c-client/*.h /usr/local/imap-2007f/include/ && \
cp c-client/*.c /usr/local/imap-2007f/lib/ && \
cp c-client/*.c /usr/local/imap-2007f/c-client/ && \
cp c-client/c-client.a /usr/local/imap-2007f/lib/libc-client.a && \
cp c-client/c-client.a /usr/local/imap-2007f/c-client/libc-client.a备注:在 64 位下编译时 make 参数需要带 EXTRACFLAGS=-fPIC ,在 32 位下则不需要。
1.5. 其他 (已过时,选做)
bash
yum install -y libicu-devel libmcrypt-devel pam-devel bison bison-devel re2clibmcrypt-devel 需要使用 epel 源
bash
dnf config-manager --set-enabled powertools
dnf install epel-release epel-next-release2. 二、安装 PHP
2.1. 下载软件包
bash
mkdir ~/packages && cd ~/packages && \
wget http://us.php.net/distributions/php-8.4.10.tar.gz && \
sudo tar zxf php-8.4.10.tar.gz -C /usr/local/src2.2. 新增用户和组 (选做)
bash
# On Ubuntu/Debian:
sudo addgroup --system --gid 37 www-data && \
sudo adduser \
--system \
--home /usr/local/php \
--shell /bin/false \
--uid 37 \
--gecos 'PHP Server' \
--gid 37 \
--disabled-password \
www-data
bash
# On Fedora/RHEL/CentOS:
sudo groupadd --system www-data && \
sudo adduser \
--system \
--shell /bin/bash \
--comment 'PHP server' \
--gid www-data \
--home-dir /usr/local/php \
--create-home \
www-data2.3. 编译安装
bash
cd /usr/local/src/php-8* && \
sudo ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/conf.d \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--with-fpm-systemd \
--with-openssl \
--with-zlib \
--enable-bcmath \
--enable-calendar \
--with-curl \
--enable-exif \
--enable-ftp \
--enable-gd \
--with-webp \
--with-jpeg \
--with-freetype \
--with-gettext \
--with-gmp \
--with-iconv=/usr/local \
--with-mhash \
--enable-mbstring \
--with-mysqli=mysqlnd \
--enable-pcntl \
--with-pdo-mysql=mysqlnd \
--enable-sockets \
--with-xsl \
--with-zip \
--enable-mysqlnd \
--with-sodium
bash
#make ZEND_EXTRA_LIBS='-liconv' -j4
sudo make -j4
sudo make install3. 三、php 配置
3.1. php-fpm.conf 设置
bash
sudo mkdir /var/log/php-fpm/ & \
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
bash
sudo vim /usr/local/php/etc/php-fpm.conf
bash
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm/error.log3.2. www.conf 设置
bash
sudo vim /usr/local/php/etc/php-fpm.d/www.conf
plain
[www]
user = www-data
group = www-data
listen = /dev/shm/php-fpm.sock
listen.allowed_clients = 127.0.0.1
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 30
pm.start_servers = 15
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 1024
pm.status_path = /status
ping.path = /ping
access.log = /var/log/php-fpm/$pool.access.log
slowlog = /var/log/php-fpm/$pool.log.slow
request_slowlog_timeout = 10s
request_terminate_timeout = 603.3. php.ini 设置
bash
sudo cp php.ini-production /usr/local/php/etc/php.ini
bash
sudo sed -i "s|;*date.timezone =.*|date.timezone = PRC|i" /usr/local/php/etc/php.ini && \
sudo sed -i "s|;*memory_limit =.*|memory_limit = 1024M|i" /usr/local/php/etc/php.ini && \
sudo sed -i "s|;*upload_max_filesize =.*|upload_max_filesize = 2G|i" /usr/local/php/etc/php.ini && \
sudo sed -i "s|;*max_file_uploads =.*|max_file_uploads = 50|i" /usr/local/php/etc/php.ini && \
sudo sed -i "s|;*post_max_size =.*|post_max_size = 2G|i" /usr/local/php/etc/php.ini3.4. 开机自启动
bash
sudo cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/ && \
sudo systemctl enable --now php-fpm3.5. 配置环境变量
bash
sudo vim /etc/profile
bash
PATH=$PATH:/usr/local/mysql/bin:/usr/local/php/bin:/usr/local/nginx/sbin
export PATH
bash
source /etc/profile4. 四、安装 PHP 扩展
4.1. PHPRedis
bash
git clone https://github.com/phpredis/phpredis.git && \
cd phpredis && \
/usr/local/php/bin/phpize && \
./configure --with-php-config=/usr/local/php/bin/php-config && \
make && sudo make install4.2. ImageMagick
https://pecl.php.net/package/imagick
安装依赖
bash
sudo yum install autoconf gcc gcc-c++ ImageMagick-devel下载安装
bash
wget https://pecl.php.net/get/imagick-3.7.0.tgz && \
tar xf imagick-3.7.0.tgz && \
cd imagick-3.7.0 && \
/usr/local/php/bin/phpize && \
./configure --with-php-config=/usr/local/php/bin/php-config && \
make && sudo make install4.3. php.ini添 加扩展
bash
sudo vim /usr/local/php/etc/php.ini
extension=redis
zend_extension=opcache
sudo systemctl restart php-fpm5. 五、安装 Composer
bash
curl -O https://getcomposer.org/composer.phar && \
sudo mv composer.phar /usr/local/bin/composer && \
sudo chmod +x /usr/local/bin/composer