在CentOS上部署PHP可以通过多种方式实现,以下是一些常见的方法:
添加Remi仓库:
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
启用Remi仓库:
sudo yum-config-manager --enable remi-php74
安装PHP及其扩展:
sudo yum install php php-mysqlnd php-gd php-curl php-xml php-mbstring php-zip
重启Web服务器(例如Apache或Nginx):
sudo systemctl restart httpd # 如果是Apache
sudo systemctl restart nginx # 如果是Nginx
安装PHP及其扩展:
sudo yum install php php-mysqlnd php-gd php-curl php-xml php-mbstring php-zip
重启Web服务器(例如Apache或Nginx):
sudo systemctl restart httpd # 如果是Apache
sudo systemctl restart nginx # 如果是Nginx
安装Docker:
sudo yum install docker
sudo systemctl start docker
sudo systemctl enable docker
拉取PHP镜像:
sudo docker pull php:7.4-fpm
运行PHP容器:
sudo docker run -d --name php-fpm-container -v /path/to/your/app:/var/www/html php:7.4-fpm
配置Nginx或Apache以使用PHP-FPM:
/etc/nginx/conf.d/default.conf文件,添加以下内容:location ~ \.php$ {
fastcgi_pass php-fpm-container:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
proxy_fcgi模块并配置httpd.conf或apache2.conf文件:LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>
重启Web服务器:
sudo systemctl restart httpd # 如果是Apache
sudo systemctl restart nginx # 如果是Nginx
安装依赖包:
sudo yum install gcc make autoconf libc-dev zlib-devel libxml2-dev bzip2-dev curl-devel libjpeg-devel libpng-dev freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel autoconf
下载PHP源码:
wget https://www.php.net/distributions/php-7.4.33.tar.gz
tar -zxvf php-7.4.33.tar.gz
cd php-7.4.33
配置和编译:
./configure --with-config-file-path=/etc/php.ini --enable-mbstring --with-curl --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-zlib --with-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd
make && sudo make install
配置PHP:
cp php.ini-production /etc/php.ini
重启Web服务器(例如Apache或Nginx):
sudo systemctl restart httpd # 如果是Apache
sudo systemctl restart nginx # 如果是Nginx
选择适合你需求的方法进行部署。如果你需要快速部署并且不介意使用第三方仓库,方法一是一个不错的选择。如果你需要更高的灵活性和控制,可以考虑方法三或方法四。